Commit graph

181 commits

Author SHA1 Message Date
Wim Taymans
732704c007 rtspsrc: Fix find_stream_by_* functions
Fix various version of find_stream_by_* by not trying to convert an int to a
pointer and vice versa, for portability reasons.

Fixes #581333
2009-05-04 18:55:12 +02:00
Chris Winter
752cfb16fe rtspsrc: fix dummy nat packet logic
Fix a typo in the dummy NAT packet sending code.

Fixes #581329
2009-05-04 18:32:05 +02:00
Mark Nauwelaerts
959a9b494b rtspsrc: avoid errors after server eof
Server eof (e.g. connection closed) is announced as connection closed,
so better record state and act accordingly to prevent (read/write)
errors during subsequent teardown/cleanup sequences.  #Fixes 580851.(c).
2009-05-04 17:01:35 +02:00
Mark Nauwelaerts
734548a34f rtspsrc: also set base_time on src after flush
timestamps following flush/seek should be consistent between
UDP and TCP interleaved case.  Fixes #580851.(b).
2009-05-04 17:01:28 +02:00
Mark Nauwelaerts
20c7be5741 rtspsrc: sanity checks on range info
A max range that overflows should not be trusted,
nor should a max range that equals the min range.
Fixes #580851.(a).
2009-05-04 17:01:20 +02:00
Wim Taymans
56656dd03d rtspsrc: use SKIP flag to use SCALE headers
We can use the SKIP seek flag to instruct the server to send data faster then
normal but with the same bandwidth.
Fixes #537609
2009-05-04 16:18:23 +02:00
Wim Taymans
de0a2575fc rtspsrc: release state lock before stopping task
We need to release the state lock before trying to wait for the task to end
because the task might also take the lock.

Fixes #577671
2009-04-29 18:09:07 +02:00
Patrick Radizi
5b86c66e8a rtspsrc: fix some more pad leaks
Fix some pad leaks.
See #577318.
2009-04-22 15:27:24 +02:00
Edward Hervey
4c60f9ef29 rtspsrc: Remove dead assignment.
t is being overwritten after, before it's used.
2009-04-18 18:51:29 +02:00
Edward Hervey
45c6690e26 rtspsrc: Remove dead assignment. 'res' isn't read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
817d7a30c3 rtspsrc: Remove unused variable. 'res' is never read. 2009-04-18 18:51:29 +02:00
Edward Hervey
08a090c89c rtspsrc: Remove dead variable. 'stream' is never read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
0cb5b42d54 Remove trivial unused variables detected by CLang static analyzer. 2009-04-18 18:51:28 +02:00
Josep Torra
dfb375daa1 rtspsrc: mark discont on the streams as was said the debug line
After a seek mark all streams with discont as it was said in the debug line.
Fixes that buffers after a seek are generated without a valid timestamp.
2009-04-18 14:32:40 +02:00
Josep Torra
ec2d6053a0 rtspsrc: map GST_RTSP_EEOF to EOS on server requests
Permit properly handle the EOS condition when server report it in a request.
2009-04-18 08:50:46 +02:00
Wim Taymans
b6bf3ba7d3 rtspsrc: allow http:// on the proxy setting
Allow and ignore http:// at the start of the proxy setting, like
souphttpsrc.
Fixes #573173
2009-04-02 22:41:01 +02:00
Wim Taymans
40f6ed8875 rtspsrc: don't leak the udpsrc pad
Fix memory leak in rtspsrc because we didn't unref the udpsrc pad.
See #577318
2009-04-02 21:08:48 +02:00
Tim-Philipp Müller
cb15d09c4a rtspsrc: don't emit ugly warnings with older rtpjitterbuffer versions
The on-npt-stop signals was added only recently to rtpjitterbuffer in
-bad, so check if the signal exists before g_signal_connect()ing to
it, to avoid warnings.
2009-04-01 12:29:33 +01:00
Wim Taymans
b037369d5b rtspsrc: add proxy support 2009-03-31 19:08:37 +02:00
Wim Taymans
fd18185d44 rtspsrc: link to the on_npt_stop signal to EOS
Connect to the on_npt_stop signal of the session manager to schedule the EOS
actions.
2009-03-27 17:49:15 +01:00
Tim-Philipp Müller
37634c2afb rtspsrc: better error message when the RTSP extension for Real streams is missing
Try to post a decent error message when it looks like we're failing
because the Real RTSP extension plugin is missing. Also add i18n
bits for rtspsrc so our error messages get translated.
2009-03-25 17:54:35 +00:00
Wim Taymans
8cf0e9ff87 rtspsrc: add some debug for the timestamps
When timestamping in TCP mode, log the first timestamp we put on the buffers.
2009-03-16 19:17:24 +01:00
Wim Taymans
7782c9f890 rtspsrc: don't send PAUSE when not connected
don't send a PAUSE request when we are no longer connected.
2009-03-12 20:39:35 +01:00
Wim Taymans
515d623dcc rtspsrc: fix timeout check
---
2009-03-11 18:00:02 +01:00
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