Commit graph

181 commits

Author SHA1 Message Date
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
Jan Schmidt
216f6e0593 gst/: Fix compiler warnings shown with Forte.
Original commit message from CVS:
* gst/audiofx/audiodynamic.c: (gst_audio_dynamic_class_init):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(new_session_pad), (request_pt_map), (gst_rtspsrc_do_stream_eos),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_parse_rtpinfo),
(gst_rtspsrc_handle_message):
Fix compiler warnings shown with Forte.
2007-09-17 17:35:13 +00:00
Wim Taymans
7eb37e2575 gst/rtsp/gstrtspsrc.c: Give meaningfull error when all streams failed to configure for some reason.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams),
(gst_rtspsrc_dup_printf):
Give meaningfull error when all streams failed to configure for some
reason.
2007-09-17 02:05:14 +00:00
Wim Taymans
14e218c083 gst/rtsp/gstrtspsrc.c: Use new basesink async property to make sparse RTCP packet not wait for preroll.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_dup_printf):
Use new basesink async property to make sparse RTCP packet not wait for
preroll.
2007-08-29 21:43:08 +00:00
Wim Taymans
a221e91936 gst/rtsp/gstrtspsrc.c: Make sure we generate and parse floating point values in the POSIX locale instead of the curre...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_dup_printf),
(gst_rtspsrc_get_float), (gst_rtspsrc_play):
Make sure we generate and parse floating point values in the POSIX
locale instead of the current locale.
2007-08-23 16:27:36 +00:00
Wim Taymans
5592bdd459 gst/rtsp/gstrtspsrc.*: Fix method detection again.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_do_seek),
(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
(gst_rtspsrc_play):
* gst/rtsp/gstrtspsrc.h:
Fix method detection again.
Keep track of when we must send a Range header.
Use segment values for Range, Speed and Scale headers.
Parse Speed and Scale headers to update the segment values.
2007-08-22 15:01:29 +00:00
Wim Taymans
60bf53248b gst/rtsp/gstrtspsrc.c: Refactor the udp and interleaved loop function a bit.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_loop_send_cmd),
(gst_rtspsrc_loop):
Refactor the udp and interleaved loop function a bit.
2007-08-18 19:44:55 +00:00
Wim Taymans
0dcafb0635 gst/rtsp/gstrtspsrc.*: Protect connection activity with a new lock, avoids deadlocks when going to PAUSED. Fixes #455...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_connection_send),
(gst_rtspsrc_connection_receive), (gst_rtspsrc_sink_chain),
(gst_rtspsrc_handle_request), (gst_rtspsrc_send_keep_alive),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_try_send), (gst_rtspsrc_pause):
* gst/rtsp/gstrtspsrc.h:
Protect connection activity with a new lock, avoids deadlocks when going
to PAUSED. Fixes #455808.
2007-08-17 17:08:11 +00:00
Wim Taymans
98fb7c070f gst/rtsp/gstrtspsrc.c: Fix stray %u in debug line as spotted by Saur on IRC.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_do_stream_eos):
Fix stray %u in debug line as spotted by Saur on IRC.
2007-08-17 15:28:40 +00:00
Wim Taymans
6ef7055041 gst/rtsp/gstrtspsrc.*: Improve timeout handling.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_set_property),
(gst_rtspsrc_flush), (gst_rtspsrc_sink_chain),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_loop_send_cmd),
(gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods), (gst_rtspsrc_parse_range),
(gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_pause),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Improve timeout handling.
Use the same socket for sending and receiving RTCP packets so that some
servers can track clients better.
Improve connection closed handling. Try to reconnect.
Don't overwrite our content base with NULL.
Improve debugging.
Improve range parsing and handling.
Remove flushing hack now that core does the right thing.
2007-08-17 14:15:19 +00:00
Wim Taymans
41f0496738 gst/rtsp/gstrtpdec.*: Add (dummy) SSRC management signals.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_marshal_VOID__UINT_UINT),
(gst_rtp_dec_class_init):
* gst/rtsp/gstrtpdec.h:
Add (dummy) SSRC management signals.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
(find_stream), (gst_rtspsrc_create_stream), (new_session_pad),
(request_pt_map), (gst_rtspsrc_do_stream_eos), (on_bye_ssrc),
(on_timeout), (gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_push_event), (gst_rtspsrc_push_event),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_parse_rtpinfo),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Add connection-speed property.
Add find_stream helper functions.
Handle stream EOS based on BYE messages or SSRC timeout.
Returns SUCCESS from the state change function as we hide our async
elements from the parent.
2007-08-16 11:47:19 +00:00
Wim Taymans
a654ab9f49 gst/rtsp/gstrtspsrc.c: Fix default clock-rate for realmedia.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (get_default_rate_for_pt),
(gst_rtspsrc_parse_rtpmap), (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_udp_sink):
Fix default clock-rate for realmedia.
Fix parsing of transport.
Don't try to link NULL pads.
2007-08-03 16:08:56 +00:00
Wim Taymans
9ace67724c gst/rtsp/gstrtspsrc.c: If we don't hav a session manager, set the caps on outgoing buffers ourselves.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_activate_streams),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_parse_methods),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_prepare_transports):
If we don't hav a session manager, set the caps on outgoing buffers
ourselves.
Force PAUSE/PLAY methods for now until the extensions can overwrite.
Append final bit of the transport string even when it does not contain a
placeholder.
2007-07-27 16:56:45 +00:00
Wim Taymans
a8ee445da6 gst/rtsp/: Clean up the interface list.
Original commit message from CVS:
* gst/rtsp/gstrtspext.c: (gst_rtsp_ext_list_free),
(gst_rtsp_ext_list_connect):
* gst/rtsp/gstrtspext.h:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_send_cb):
Clean up the interface list.
Allow connecting to interface signals for the extensions.
Remove old extension code.
Free list on cleanup.
Allow extensions to send additional RTSP messages.
2007-07-27 11:21:20 +00:00
Wim Taymans
9fa21084bf gst/rtsp/: Use rank to filter out extensions.
Original commit message from CVS:
* gst/rtsp/gstrtspext.c: (gst_rtsp_ext_list_filter),
(gst_rtsp_ext_list_stream_select):
* gst/rtsp/gstrtspext.h:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams):
Use rank to filter out extensions.
Add url to stream_select interface call.
2007-07-26 15:48:47 +00:00
Wim Taymans
fa9c47f14d gst/rtsp/: Use shiny new RTSP and SDP library.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/base64.c:
* gst/rtsp/base64.h:
* gst/rtsp/gstrtspext.c: (gst_rtsp_ext_list_filter),
(gst_rtsp_ext_list_init), (gst_rtsp_ext_list_get),
(gst_rtsp_ext_list_detect_server), (gst_rtsp_ext_list_before_send),
(gst_rtsp_ext_list_after_send), (gst_rtsp_ext_list_parse_sdp),
(gst_rtsp_ext_list_setup_media),
(gst_rtsp_ext_list_configure_stream),
(gst_rtsp_ext_list_get_transports),
(gst_rtsp_ext_list_stream_select):
* gst/rtsp/gstrtspext.h:
* gst/rtsp/gstrtspsrc.c: (gst_rtsp_lower_trans_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_create_stream),
(gst_rtspsrc_parse_rtpmap), (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_flush), (gst_rtspsrc_do_seek),
(gst_rtspsrc_sink_chain), (gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_mcast),
(gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_handle_request), (gst_rtspsrc_send_keep_alive),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_loop_send_cmd), (gst_rtsp_auth_method_to_string),
(gst_rtspsrc_parse_auth_hdr), (gst_rtspsrc_setup_auth),
(gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_prepare_transports), (gst_rtspsrc_setup_streams),
(gst_rtspsrc_parse_range), (gst_rtspsrc_open), (gst_rtspsrc_close),
(gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_change_state), (gst_rtspsrc_uri_set_uri):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtsp.h:
* gst/rtsp/rtspconnection.c:
* gst/rtsp/rtspconnection.h:
* gst/rtsp/rtspdefs.c:
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtspext.h:
* gst/rtsp/rtspextwms.c:
* gst/rtsp/rtspextwms.h:
* gst/rtsp/rtspmessage.c:
* gst/rtsp/rtspmessage.h:
* gst/rtsp/rtsprange.c:
* gst/rtsp/rtsprange.h:
* gst/rtsp/rtsptransport.c:
* gst/rtsp/rtsptransport.h:
* gst/rtsp/rtspurl.c:
* gst/rtsp/rtspurl.h:
* gst/rtsp/sdp.h:
* gst/rtsp/sdpmessage.c:
* gst/rtsp/sdpmessage.h:
* gst/rtsp/test.c:
Use shiny new RTSP and SDP library.
Implement RTSP extensions using the new interface.
Remove a lot of old code.
2007-07-25 18:50:08 +00:00
Wim Taymans
627f99396a gst/rtsp/gstrtspsrc.c: Cast stack args to the proper types. Fixes #451249.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_configure_caps):
Cast stack args to the proper types. Fixes #451249.
2007-06-27 11:36:24 +00:00
Wim Taymans
cf20f497cc gst/rtsp/gstrtspsrc.*: For container formats we only need to activate one of the streams so that we correctly signal ...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(new_session_pad), (gst_rtspsrc_setup_streams):
* gst/rtsp/gstrtspsrc.h:
For container formats we only need to activate one of the streams so
that we correctly signal no-more-pads. Fixes #451015.
2007-06-27 11:04:47 +00:00
Wim Taymans
587d209252 gst/rtsp/gstrtspsrc.c: Init value to avoid infinte loops.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_methods):
Init value to avoid infinte loops.
2007-05-24 08:14:00 +00:00
Peter Kjellerstedt
77cc870bbc gst/rtsp/: Fix for new API.
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_auth),
(gst_rtspsrc_try_send), (gst_rtspsrc_parse_methods),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open),
(gst_rtspsrc_play):
(rtsp_connection_send), (rtsp_connection_receive):
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_after_send):
Fix for new API.
* gst/rtsp/rtspconnection.c: (add_auth_header),
Only add authorisation and session headers when sending messages.
* gst/rtsp/rtspmessage.c: (key_value_foreach), (rtsp_message_init),
(rtsp_message_init_request), (rtsp_message_init_response),
(rtsp_message_unset), (rtsp_message_add_header),
(rtsp_message_remove_header), (rtsp_message_get_header),
(rtsp_message_append_headers), (dump_key_value),
(rtsp_message_dump):
* gst/rtsp/rtspmessage.h:
Add support for multiple headers of the same type by storing the parsed
headers in a GArray instaed of a hashtable.
2007-05-24 08:10:42 +00:00
Tim-Philipp Müller
263e0458f1 gst/rtsp/gstrtspsrc.c: Printf format fix.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp):
Printf format fix.
2007-05-20 14:05:42 +00:00
Wim Taymans
fc99abef7f gst/rtsp/gstrtspsrc.c: Don't crash when an unsupported transport error was returned by the server, just try to config...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_setup_streams):
Don't crash when an unsupported transport error was returned by the
server, just try to configure the next stream. Fixes #439255.
2007-05-18 13:27:39 +00:00
Wim Taymans
e04f7a828f gst/rtsp/gstrtspsrc.*: Add TCP timeout property and use it for all TCP connection.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
(gst_rtspsrc_stream_configure_udp), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
Add TCP timeout property and use it for all TCP connection.
* gst/rtsp/rtspconnection.c: (rtsp_connection_connect),
(rtsp_connection_write), (rtsp_connection_next_timeout),
(rtsp_connection_reset_timeout):
Make connect and writes cancelable and make them use the timeout.
2007-05-18 11:39:12 +00:00
Wim Taymans
e4720e286c gst/rtsp/gstrtspsrc.c: Refactor timeout handling.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send_keep_alive),
(gst_rtspsrc_loop_interleaved), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams):
Refactor timeout handling.
Also send keep-alive when dealing with TCP transport.
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(rtsp_connection_free), (rtsp_connection_next_timeout),
(rtsp_connection_reset_timeout):
* gst/rtsp/rtspconnection.h:
Use a timer to handle the session timeouts, add some methods to deal
with timeouts.
2007-05-18 10:36:12 +00:00
Wim Taymans
ccd7a136a9 gst/rtsp/gstrtspsrc.c: Ignore streams that fail the setup command, we will retry with a different transport later on.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams):
Ignore streams that fail the setup command, we will retry with a
different transport later on.
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_parse_sdp),
(rtsp_ext_wms_configure_stream):
Fix encoding name case.
2007-05-17 14:56:39 +00:00
Wim Taymans
789ef04027 gst/rtsp/gstrtspsrc.c: When we try to execute a method that is not supported by the server, don't error out but remov...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send):
When we try to execute a method that is not supported by the server,
don't error out but remove the method from the accepted methods so that
we never try to perform this method again.
2007-05-14 16:19:58 +00:00
Wim Taymans
63b73eff7d gst/rtsp/gstrtspsrc.c: Parse range correctly.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_parse_range):
Parse range correctly.
* gst/rtsp/rtspurl.c: (rtsp_url_get_request_uri):
The baseurl now always has a '/' at the start.
2007-05-14 11:11:42 +00:00
Wim Taymans
fc2f6baf0d gst/rtsp/gstrtspsrc.c: Factor out caps configuration and configure more stuff such as the time ranges and speed/scale...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_configure_caps),
(gst_rtspsrc_parse_range), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play):
Factor out caps configuration and configure more stuff such as the time
ranges and speed/scale values.
* gst/rtsp/rtsptransport.c:
Add Copyright after non-trival fixes.
2007-05-14 09:01:05 +00:00
Wim Taymans
02fa0a7992 gst/rtsp/: Preliminary seek support.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_flush),
(gst_rtspsrc_do_seek), (gst_rtspsrc_perform_seek),
(gst_rtspsrc_handle_src_event),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_configure_tcp), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspdefs.h:
Preliminary seek support.
Activate internal pads so that we can receive events on them.
Don't try to parse a range string when it's NULL.
2007-05-11 15:09:39 +00:00
Wim Taymans
d29215b257 gst/rtsp/: Add code to parse time ranges.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_query),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_open):
* gst/rtsp/rtsprange.c: (parse_npt_time), (parse_npt_range),
(parse_clock_range), (parse_smpte_range), (rtsp_range_parse),
(rtsp_range_free):
* gst/rtsp/rtsprange.h:
Add code to parse time ranges.
Report DURATION on the stream when possible.
2007-05-09 11:23:39 +00:00
Wim Taymans
9e37243eca gst/rtsp/gstrtspsrc.c: Let more error state trickle down so that we can catch more error cases.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send_keep_alive),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_change_state):
Let more error state trickle down so that we can catch more error
cases.
Handle keep-alive a little smarter by selecting a method the server
actually supports.
Fix a race in UDP streaming shutdown.
2007-05-04 15:17:14 +00:00
Wim Taymans
5f2fbbd76b gst/rtsp/gstrtspsrc.c: Ignore errors when trying to use the keep-alive messages.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send_keep_alive):
Ignore errors when trying to use the keep-alive messages.
2007-05-04 13:04:31 +00:00
Wim Taymans
fb80e57990 gst/rtsp/gstrtspsrc.c: Send RTCP messages back to the server over the TCP connection.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_handle_src_query), (gst_rtspsrc_sink_chain),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_free_udp), (gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_mcast),
(gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_stream_configure_transport):
Send RTCP messages back to the server over the TCP connection.
* gst/rtsp/rtspconnection.c: (rtsp_connection_write),
(rtsp_connection_send), (rtsp_connection_read), (read_body),
(rtsp_connection_receive):
* gst/rtsp/rtspconnection.h:
Factor out and expose lowlevel _write and _read methods.
Implement sending data messages to the server.
2007-05-04 12:31:32 +00:00
Wim Taymans
17011e9a41 gst/rtsp/gstrtspsrc.c: Refactor transport configuration code.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
(gst_rtspsrc_alloc_udp_ports), (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_handle_src_query),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_free_udp), (gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_mcast),
(gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_push_event),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play),
(gst_rtspsrc_pause):
Refactor transport configuration code.
Create internal pads for TCP transport so that we can implement events
and queries.
Handle events and queries.
Parse range from the SDP.
Fix race in pause handler where the connection could still be flushing.
2007-05-03 13:48:54 +00:00
Wim Taymans
24e51b3c73 gst/rtsp/gstrtspsrc.*: Fix race when multiple udp sources post timeouts, just act on the first received timeout.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (new_session_pad), (request_pt_map),
(gst_rtspsrc_loop_send_cmd), (gst_rtspsrc_try_send),
(gst_rtspsrc_send), (gst_rtspsrc_async_open), (gst_rtspsrc_close),
(gst_rtspsrc_play), (gst_rtspsrc_handle_message),
(gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Fix race when multiple udp sources post timeouts, just act on the first
received timeout.
Protect stream list with a recursive lock to fix some races.
Flush connection when we need to do a reconnect or stop.
Make state lock recursive.
* gst/rtsp/rtspconnection.c: (rtsp_connection_connect),
(rtsp_connection_close):
Some small cleanups.
2007-05-02 19:32:58 +00:00
Wim Taymans
92396be152 gst/rtsp/gstrtspsrc.*: Fix sending RTCP to the right place.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_handle_request), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_loop_send_cmd), (gst_rtspsrc_try_send),
(gst_rtspsrc_open), (gst_rtspsrc_handle_message):
* gst/rtsp/gstrtspsrc.h:
Fix sending RTCP to the right place.
Fix bug in reffing the wrong UDP element.
Use new pad names for the session manager.
Implement handling server requests in interleaved and UDP modes.
Handle session keep-alive in UDP modes.
Remove GCond for handling UDP timeouts.
* gst/rtsp/rtspconnection.c: (rtsp_connection_connect),
(rtsp_connection_send), (rtsp_connection_read), (read_body),
(rtsp_connection_receive), (rtsp_connection_close):
* gst/rtsp/rtspconnection.h:
Store connection IP address for later.
Add timeout args to all operations that might block forever.
Parse session timeout.
Only close sockets when not already closed.
* gst/rtsp/rtspdefs.c:
* gst/rtsp/rtspdefs.h:
Add timeout return value and error string.
* gst/rtsp/rtspmessage.c: (rtsp_message_init_response):
Add small comment.
2007-05-02 13:32:57 +00:00
Wim Taymans
066598d8de gst/udp/gstmultiudpsink.c: Add code to drop membership of a multicast group.
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (leave_multicast),
(gst_multiudpsink_add), (gst_multiudpsink_remove):
Add code to drop membership of a multicast group.
* gst/udp/gstudpsink.c: (gst_udpsink_update_uri),
(gst_udpsink_set_uri):
Implement URI handler.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo):
Use URI handler to make udpsink instace.
Improve code to configure port and destination.
2007-04-29 14:43:37 +00:00
Wim Taymans
6a790cb75a gst/rtsp/gstrtspsrc.c: Ignore ASYNC state messages from the udpsink, it's irrelevant for the parent.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play),
(gst_rtspsrc_handle_message):
Ignore ASYNC state messages from the udpsink, it's irrelevant for the
parent.
2007-04-27 16:44:17 +00:00
Wim Taymans
530f214bd5 gst/rtsp/gstrtspsrc.*: Protect state changes with a lock.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_open), (gst_rtspsrc_close),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play),
(gst_rtspsrc_pause):
* gst/rtsp/gstrtspsrc.h:
Protect state changes with a lock.
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(parse_line):
* gst/rtsp/rtspconnection.h:
Remove some unused stuff.
2007-04-26 10:08:27 +00:00
Wim Taymans
6937be1a09 gst/rtsp/gstrtpdec.*: Add dummy latency property to be backwards compat with rtpbin.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_class_init),
(gst_rtp_dec_init), (gst_rtp_dec_set_property),
(gst_rtp_dec_get_property):
* gst/rtsp/gstrtpdec.h:
Add dummy latency property to be backwards compat with rtpbin.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo):
* gst/rtsp/gstrtspsrc.h:
Add latency property and configure in the session manager.
Don't set invalid clock-base and seqnum-base on caps, some servers
sometimes don't send them.
2007-04-25 15:55:32 +00:00
Wim Taymans
1beeda3ff2 gst/rtsp/gstrtspsrc.*: Parse server address from SDP.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
(gst_rtspsrc_stream_free), (request_pt_map),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
Parse server address from SDP.
Hook up a udpsink to send RTCP back to the server.
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* gst/rtsp/rtsptransport.h:
Add some docs.
2007-04-25 08:36:46 +00:00
Wim Taymans
b752470823 docs/plugins/gst-plugins-good-plugins-sections.txt: Fix docs.
Original commit message from CVS:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
Fix docs.
* gst/rtsp/URLS:
Add some more example urls.
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_marshal_BOXED__UINT_UINT),
(gst_rtp_dec_chain_rtp):
Better debugging.
* gst/rtsp/gstrtspsrc.c: (request_pt_map),
(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_parse_rtpinfo):
Remove unused code.
2007-04-13 09:32:21 +00:00
Wim Taymans
86a4c1c6b0 gst/rtsp/gstrtpdec.*: Make backward compat with rtpbin by adding the request-pt-map signals.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_marshal_BOXED__UINT_UINT),
(gst_rtp_dec_class_init), (gst_rtp_dec_chain_rtp):
* gst/rtsp/gstrtpdec.h:
Make backward compat with rtpbin by adding the request-pt-map signals.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(new_session_pad), (request_pt_map),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_stream_configure_caps),
(gst_rtspsrc_activate_streams):
* gst/rtsp/gstrtspsrc.h:
Implement request-pt-map signals instead of setting caps on the buffers
for the session manager.
2007-04-12 08:21:28 +00:00
Peter Kjellerstedt
50f88db3ad gst/: Fix some compiler warnings. Fixes #428182.
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
* gst/rtp/gstrtpL16depay.c:
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_process):
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_get_mode),
(gst_rtp_speex_depay_setcaps):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_loop_udp):
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_init_send):
Fix some compiler warnings. Fixes #428182.
2007-04-10 10:01:14 +00:00
Wim Taymans
f80444aaec gst/rtsp/: Morph RTPDec into something compatible with RTPBin as a fallback.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtpdec.c: (find_session_by_id), (create_session),
(free_session), (gst_rtp_dec_base_init), (gst_rtp_dec_class_init),
(gst_rtp_dec_init), (gst_rtp_dec_finalize),
(gst_rtp_dec_query_src), (gst_rtp_dec_chain_rtp),
(gst_rtp_dec_chain_rtcp), (gst_rtp_dec_set_property),
(gst_rtp_dec_get_property), (gst_rtp_dec_provide_clock),
(gst_rtp_dec_change_state), (create_recv_rtp), (create_recv_rtcp),
(create_rtcp), (gst_rtp_dec_request_new_pad),
(gst_rtp_dec_release_pad):
* gst/rtsp/gstrtpdec.h:
* gst/rtsp/gstrtsp.c: (plugin_init):
Morph RTPDec into something compatible with RTPBin as a fallback.
Various other style fixes.
* gst/rtsp/gstrtspsrc.c: (find_stream_by_id),
(find_stream_by_udpsrc), (gst_rtspsrc_stream_free),
(gst_rtspsrc_cleanup), (gst_rtspsrc_media_to_caps),
(new_session_pad), (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_setup_auth),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Implement RTPBin session manager handling.
Don't try to add empty properties to caps.
Implement fallback session manager, handling.
Don't combine errors from RTCP streams, just ignore them.
* gst/rtsp/rtsptransport.c: (rtsp_transport_get_manager):
* gst/rtsp/rtsptransport.h:
Implement fallback session manager.
Make RTPBin the default one when available.
2007-04-06 12:54:16 +00:00
Wim Taymans
8f5fb88b5a gst/rtsp/gstrtspsrc.*: Handle default clock-rates for static payload types, rearrange stuff so that the rtpmap field ...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (find_stream_by_setup),
(gst_rtspsrc_create_stream), (gst_rtspsrc_stream_free),
(get_default_rate_for_pt), (gst_rtspsrc_parse_rtpmap),
(gst_rtspsrc_media_to_caps),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_stream_configure_caps),
(gst_rtspsrc_activate_streams), (gst_rtspsrc_parse_rtpinfo):
* gst/rtsp/gstrtspsrc.h:
Handle default clock-rates for static payload types, rearrange stuff so
that the rtpmap field in the sdp can override the defaults.
Parse RTP-Info field to get the seqnum and timebase fields that should
go in the caps.
Delay configuring caps after we got the RTP-Info from the PLAY reply from
the server.
2007-03-25 15:34:42 +00:00
Wim Taymans
beef8e0136 gst/rtsp/gstrtspsrc.c: When activated, remove the udpsrc timeout, we have dataflow and timeouts will later be handled...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_activate_streams):
When activated, remove the udpsrc timeout, we have dataflow and timeouts
will later be handled by the jitterbuffer.
2007-03-09 17:05:17 +00:00
Jan Schmidt
de1357a407 Fix a bunch of leaks shown by the newly-added states test.
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_finalize):
* ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_class_init),
(gst_gconf_audio_sink_dispose), (gst_gconf_audio_sink_finalize):
* ext/gconf/gstgconfaudiosrc.c: (gst_gconf_audio_src_base_init),
(gst_gconf_audio_src_class_init), (gst_gconf_audio_src_dispose),
(gst_gconf_audio_src_finalize), (do_toggle_element):
* ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init),
(gst_gconf_video_sink_class_init), (gst_gconf_video_sink_finalize),
(do_toggle_element):
* ext/gconf/gstgconfvideosrc.c: (gst_gconf_video_src_base_init),
(gst_gconf_video_src_class_init), (gst_gconf_video_src_dispose),
(gst_gconf_video_src_finalize), (do_toggle_element):
* ext/gconf/gstswitchsink.c: (gst_switch_sink_class_init),
(gst_switch_sink_reset), (gst_switch_sink_set_child):
* ext/hal/gsthalaudiosink.c: (gst_hal_audio_sink_base_init):
* ext/hal/gsthalaudiosrc.c: (gst_hal_audio_src_base_init):
* ext/shout2/gstshout2.c: (gst_shout2send_class_init),
(gst_shout2send_init), (gst_shout2send_finalize):
* gst/debug/testplugin.c: (gst_test_class_init),
(gst_test_finalize):
* gst/flx/gstflxdec.c: (gst_flxdec_class_init),
(gst_flxdec_dispose):
* gst/multipart/multipartmux.c: (gst_multipart_mux_finalize):
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize):
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_free_context):
* gst/rtsp/rtspextwms.h:
* gst/smpte/gstsmpte.c: (gst_smpte_class_init),
(gst_smpte_finalize):
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_finalize):
* gst/udp/gstudpsink.c: (gst_udpsink_class_init),
(gst_udpsink_finalize):
* gst/wavparse/gstwavparse.c: (gst_wavparse_dispose),
(gst_wavparse_sink_activate):
* sys/oss/gstosssink.c: (gst_oss_sink_finalise):
* sys/oss/gstosssrc.c: (gst_oss_src_class_init),
(gst_oss_src_finalize):
* sys/v4l2/gstv4l2object.c: (gst_v4l2_object_destroy):
* sys/v4l2/gstv4l2object.h:
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init),
(gst_v4l2src_finalize):
* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get):
Fix a bunch of leaks shown by the newly-added states test.
2007-03-04 13:52:03 +00:00
Wim Taymans
84c6cb989a gst/rtsp/gstrtspsrc.c: Errors from the udp sources are not fatal unless all of them are in error.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (find_stream_by_channel),
(find_stream_by_udpsrc), (gst_rtspsrc_handle_message):
Errors from the udp sources are not fatal unless all of them are in
error.
2007-03-01 18:47:28 +00:00
Wim Taymans
dc212cdb3d gst/rtsp/gstrtpdec.c: Make state change to PAUSED NO_PREROLL because that's what it will be in the future and rtspsrc...
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtpdec_change_state):
Make state change to PAUSED NO_PREROLL because that's what it will be in
the future and rtspsrc relies on it.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_change_state):
Don't error out when we don't get an error from the state change
function.
2007-03-01 09:29:34 +00:00
Jan Schmidt
66df66daa2 gst/rtsp/: Implement simple Basic Authentication support so that urls like rtsp://user:pass@hostname/rtspstream work ...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
(gst_rtspsrc_create_stream), (rtsp_auth_method_to_string),
(gst_rtspsrc_parse_auth_hdr), (gst_rtspsrc_setup_auth),
(gst_rtspsrc_send), (gst_rtspsrc_try_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_uri_set_uri):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(append_auth_header), (rtsp_connection_send),
(rtsp_connection_free), (rtsp_connection_set_auth):
* gst/rtsp/rtspconnection.h:
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtspurl.c: (rtsp_url_get_request_uri):
* gst/rtsp/rtspurl.h:
Implement simple Basic Authentication support so that urls like
rtsp://user:pass@hostname/rtspstream work on hosts that require
authentication.
2007-02-23 18:12:27 +00:00
Wim Taymans
7fd025043d gst/rtsp/URLS: Add example H264 rtsp url.
Original commit message from CVS:
* gst/rtsp/URLS:
Add example H264 rtsp url.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
Don't convert values to lowercase or we might mess up base64 encoded
properties.
2007-02-16 12:32:01 +00:00
Sébastien Moutte
9c8ea35617 gst/avi/gstavimux.c: Comment a #if 0 in caps template definition as VS6 seems to do not support it.
Original commit message from CVS:
* gst/avi/gstavimux.c:
Comment a #if 0 in caps template definition as VS6 seems to
do not support it.
* gst/rtsp/gstrtspsrc.c:(gst_rtspsrc_loop_udp):
Use gst_guint64_to_gdouble for conversion.
* gst/rtsp/rtspconnection.c:(rtsp_connection_send):
Move variables declaration before the first instruction.
* gst/rtsp/rtspdefs.c:(rtsp_strresult):
Don't use hstrerror for error log on G_OS_WIN32 build as it's not supported.
And don't include netdb.h for G_OS_WIN32
* gst/rtsp/sdpmessage.c:(sdp_parse_line):
This initialization SDPMedia nmedia = {.media = NULL }; is not supported
by VS6 then use an other way to initialize SDPMedia structure.
* gst/udp/gstdynudpsink.h:
* gst/udp/gstdynudpnetutils.h:
Do not include <sys/time.h> for G_OS_WIN32
* gst/udp/gstudpsrc.c:
Define socklen_t as int for G_OS_WIN32
* win/common/config.h.in:
Undef HAVE_NETINET_IN_H
* win32/vs6/gst_plugins_good.dsw:
* win32/vs6/libgstrtp.dsp:
* win32/vs6/libgstrtsp.dsp:
* win32/vs6/libgstautogen.dsp:
* win32/vs6/libgstaudiofx.dsp:
* win32/vs6/libgstudp.dsp:
Add and update project files.
* win32/common/gstudp-enumtypes.c:
* win32/common/gstudp-enumtypes.h:
Add a copy of udp enumtypes to win32/common as in core
and base.
2007-02-11 12:57:47 +00:00
Wim Taymans
2de7376aaf gst/rtsp/gstrtspsrc.c: Convert SDP fields to upper/lowercase following the rules in the SDP to caps document.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_activate_streams):
Convert SDP fields to upper/lowercase following the rules in the SDP to
caps document.
2007-01-25 14:40:15 +00:00
Wim Taymans
a6a9207c42 gst/rtsp/gstrtspsrc.*: Only unblock the udp pads when we linked and activated them all.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (pad_blocked),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_udp):
* gst/rtsp/gstrtspsrc.h:
Only unblock the udp pads when we linked and activated them all.
Fixes #395688.
2007-01-24 16:25:55 +00:00
Wim Taymans
1f51fd9785 gst/rtsp/gstrtspsrc.c: Unblock pads after adding the pads to the element so that autopluggers get a change to link so...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (pad_unblocked), (pad_blocked):
Unblock pads after adding the pads to the element so that autopluggers
get a change to link something. Possibly fixes #395688.
2007-01-24 12:26:41 +00:00
Lutz Mueller
cfed610d01 gst/rtsp/gstrtspsrc.c: Check for stream pad before activating.
Original commit message from CVS:
Patch by: Lutz Mueller <lutz at topfrose dot de>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_activate_streams):
Check for stream pad before activating.
2007-01-11 09:30:59 +00:00
Peter Kjellerstedt
12ab127d12 gst/rtsp/: Allow url to be NULL to be able to use it for server connections.
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst/rtsp/COPYING.MIT:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(gst_rtspsrc_stream_free), (gst_rtspsrc_cleanup),
(gst_rtspsrc_alloc_udp_ports), (pad_unblocked), (pad_blocked),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_prepare_transports), (gst_rtspsrc_setup_streams),
(gst_rtspsrc_open), (gst_rtspsrc_close):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(rtsp_connection_connect), (rtsp_connection_send), (read_line),
(parse_request_line), (parse_line), (rtsp_connection_read),
(rtsp_connection_close):
* gst/rtsp/rtspdefs.c: (rtsp_init_status), (rtsp_strresult),
(rtsp_method_as_text), (rtsp_header_as_text),
(rtsp_status_as_text), (rtsp_find_header_field),
(rtsp_find_method):
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_after_send),
(rtsp_ext_wms_configure_stream):
* gst/rtsp/rtspmessage.c: (rtsp_message_new), (rtsp_message_init),
(rtsp_message_new_request), (rtsp_message_init_request),
(rtsp_message_new_response), (rtsp_message_init_response),
(rtsp_message_init_data), (rtsp_message_unset),
(rtsp_message_free), (rtsp_message_add_header),
(rtsp_message_get_header), (rtsp_message_set_body),
(rtsp_message_get_body), (dump_mem), (rtsp_message_dump):
* gst/rtsp/rtspmessage.h:
* gst/rtsp/sdpmessage.c: (sdp_message_get_attribute_val_n),
(sdp_media_get_attribute_val_n), (read_string), (read_string_del),
(sdp_parse_line), (sdp_message_parse_buffer), (print_media),
(sdp_message_dump):
Allow url to be NULL to be able to use it for server connections.
Can now send responses as well as requests.
No longer hangs in an endless loop if EOF is received.
Can now convert a status code to a text string.
Return RTSP_HDR_INVALID for unknown headers.
Return RTSP_INVALID for unknown methods.
Copy CSeq and Session headers from the request.
Only free memory corresponding to the currently set message type.
Added const to function arguments as appropriate.
Avoid a compiler warning when initializing nmedia.
Use guint rather than gint to avoid compiler warnings.
Fix crasher in wms extension.
Factor out stream setup from open_connection.
Delay activation of streams when actual data is received from the
server, this prepares us to do proper protocol switching.
Added new license.
Fixes #380895.
2007-01-10 15:19:48 +00:00
Wim Taymans
f249d639f8 gst/rtsp/: Add method so that extensions can choose to disable the setup of a stream.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspext.h:
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_configure_stream),
(rtsp_ext_wms_get_context):
Add method so that extensions can choose to disable the setup of
a stream.
Make the WMS extension skip setup of x-wms-rtx streams. Fixes #377792.
2006-11-28 11:52:27 +00:00
Wim Taymans
b14738fb20 gst/rtsp/: Reuse already existing enum for lower transport.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtsp_lower_trans_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_open),
(gst_rtspsrc_uri_get_protocols), (gst_rtspsrc_uri_set_uri):
* gst/rtsp/rtspconnection.c: (rtsp_connection_create):
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtspurl.c: (rtsp_url_parse):
* gst/rtsp/rtspurl.h:
Reuse already existing enum for lower transport.
Add rtspt and rtspu protocols.
Send redirect to rtspt when udp times out.
2006-10-18 16:18:55 +00:00
Josep Torra Valles
c4e7ebfe35 Fix a bunch of problems discovered by the Forte compiler, mostly type mixups and pointer arithmetics with void pointe...
Original commit message from CVS:
Patch by: Josep Torra Valles  <josep at fluendo com>
* ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform):
* ext/esd/esdsink.c: (gst_esdsink_write):
* ext/flac/gstflacdec.c: (gst_flac_dec_length),
(gst_flac_dec_read_seekable), (gst_flac_dec_chain),
(gst_flac_dec_send_newsegment):
* ext/flac/gstflacenc.c: (gst_flac_enc_seek_callback),
(gst_flac_enc_tell_callback):
* ext/jpeg/smokecodec.c: (find_best_size), (smokecodec_encode),
(smokecodec_parse_header), (smokecodec_decode):
* gst/avi/gstavimux.c: (gst_avi_mux_write_avix_index):
* gst/debug/efence.c: (gst_fenced_buffer_alloc):
* gst/goom/Makefile.am:
* gst/goom/gstgoom.c:
* gst/icydemux/gsticydemux.c: (gst_icydemux_typefind_or_forward):
* gst/rtsp/gstrtspsrc.c:
* gst/rtsp/rtspconnection.c: (rtsp_connection_read):
* gst/udp/gstudpsink.c:
* gst/udp/gstudpsrc.c:
* gst/wavparse/gstwavparse.c: (gst_wavparse_change_state):
* sys/sunaudio/gstsunaudiomixertrack.h:
Fix a bunch of problems discovered by the Forte compiler, mostly type
mixups and pointer arithmetics with void pointers. Fixes #362603.
2006-10-16 18:22:47 +00:00
Wim Taymans
7accf76da8 gst/rtsp/URLS: Added some other URL.
Original commit message from CVS:
* gst/rtsp/URLS:
Added some other URL.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp),
(gst_rtspsrc_handle_request), (gst_rtspsrc_send),
(gst_rtspsrc_open), (gst_rtspsrc_play),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Work on fallback to TCP connection when the UDP socket times out.
Handler server requests, just reply with OK for now.
* gst/rtsp/rtspdefs.c: (rtsp_strresult):
* gst/rtsp/rtspdefs.h:
Added some more Real extension headers.
* gst/rtsp/rtspurl.c: (rtsp_url_parse):
Fix parsing of urls with a ':' that is not part of the hostname:port
part of the url.
2006-10-11 16:21:53 +00:00
Tim-Philipp Müller
58b341970f gst/rtsp/gstrtspsrc.c: Activate pads before adding them to the source.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport):
Activate pads before adding them to the source.
2006-10-07 21:15:40 +00:00
Wim Taymans
a600d31120 gst/rtsp/gstrtspsrc.*: Rework how the transport string is constructed, try to share channels and udp ports.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_init),
(gst_rtspsrc_create_stream), (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_alloc_udp_ports),
(gst_rtspsrc_stream_configure_transport), (find_stream_by_channel),
(gst_rtspsrc_push_event), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_configure_transports), (gst_rtspsrc_open),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Rework how the transport string is constructed, try to share channels
and udp ports.
Make most of the stuff less dependant on RTP as we are also going to use
it for RDT.
Add support for transport specific session managers.
* gst/rtsp/rtspconnection.c: (rtsp_connection_flush):
Implement _flush().
* gst/rtsp/rtspdefs.c: (rtsp_strresult):
* gst/rtsp/rtspdefs.h:
Add generic error return code.
* gst/rtsp/rtspext.h:
Add support for pluggable tranport strings.
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_before_send),
(rtsp_ext_wms_after_send), (rtsp_ext_wms_parse_sdp),
(rtsp_ext_wms_get_context):
Detect WMServer and activate the extension.
* gst/rtsp/rtsptransport.c: (rtsp_transport_get_mime),
(rtsp_transport_get_manager), (rtsp_transport_parse):
* gst/rtsp/rtsptransport.h:
Added methods to get mime/manager for certain transports.
2006-10-06 12:55:53 +00:00
Tim-Philipp Müller
82f5a3508c Printf format fixes.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c:
(gst_cairo_time_overlay_update_font_height):
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
* ext/libpng/gstpngdec.c: (user_endrow_callback):
* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
(gst_avi_demux_stream_data):
* gst/cutter/gstcutter.c: (gst_cutter_chain):
* gst/debug/efence.c: (gst_efence_buffer_alloc),
(gst_fenced_buffer_copy):
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_handle_message):
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
Printf format fixes.
2006-10-05 16:37:33 +00:00
Wim Taymans
63c87f1899 gst/rtsp/: Factor out extension in separate module.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtpdec.c: (gst_rtpdec_getcaps),
(gst_rtpdec_chain_rtp), (gst_rtpdec_chain_rtcp):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_create_stream),
(gst_rtspsrc_parse_rtpmap),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
(gst_rtspsrc_play), (gst_rtspsrc_handle_message):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspdefs.c: (rtsp_strresult):
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtspext.h:
* gst/rtsp/rtspextwms.c: (rtsp_ext_wms_parse_sdp),
(rtsp_ext_wms_get_context):
* gst/rtsp/rtspextwms.h:
* gst/rtsp/rtsptransport.c: (rtsp_transport_init), (parse_mode),
(rtsp_transport_parse):
* gst/rtsp/rtsptransport.h:
Factor out extension in separate module.
Fix getcaps to filter against the padtemplate.
Use Content-Base if the server gives one.
Rework the transport parsing a bit for future extensions.
Added some Real Header field definitions.
2006-10-04 17:24:40 +00:00
Wim Taymans
6e08550345 gst/rtsp/URLS: Add some more URLs.
Original commit message from CVS:
* gst/rtsp/URLS:
Add some more URLs.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_init), (gst_rtspsrc_finalize),
(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
(gst_rtspsrc_stream_setup_rtp), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_loop_send_cmd),
(gst_rtspsrc_loop), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_handle_message), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Add timeout property to control UDP timeouts.
Fix error messages.
Also start a loop function when operating in UDP mode so that we can
do some more stuff async.
Handle element messages from udpsrc to detect timeouts. If a timeout
happens we currently generate an error.
API: rtspsrc::timeout property.
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create):
Really implement the timeout in microseconds and not milliseconds.
2006-09-29 15:37:29 +00:00
Wim Taymans
e8c59d9da3 gst/rtsp/gstrtspsrc.c: Fix flag registration.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type):
Fix flag registration.
* gst/rtsp/rtspconnection.c: (rtsp_connection_read):
Reading 0 also means 'no more commands'
2006-09-29 08:15:05 +00:00
Peter Kjellerstedt
b234d9b0f9 gst/: Include stdlib.h in some more places, makes things compile with uClibc and -Werror (#357592).
Original commit message from CVS:
Patch by: Peter Kjellerstedt  <pkj at axis com>
* gst/alpha/gstalpha.c:
* gst/rtp/gstrtpamrdepay.c:
* gst/rtsp/gstrtspsrc.c:
* gst/udp/gstudpsrc.c:
* gst/videomixer/videomixer.c:
Include stdlib.h in some more places, makes things compile
with uClibc and -Werror (#357592).
2006-09-25 11:47:42 +00:00
Wim Taymans
23ec2eb189 gst/rtsp/: Improve error reporting.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop), (gst_rtspsrc_send),
(gst_rtspsrc_open):
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(rtsp_connection_connect), (rtsp_connection_read), (read_body),
(rtsp_connection_receive):
* gst/rtsp/rtspdefs.c: (rtsp_strresult):
* gst/rtsp/rtspdefs.h:
Improve error reporting.
2006-09-23 15:31:56 +00:00
Wim Taymans
a365a29c77 gst/rtsp/URLS: Added some test URLS.
Original commit message from CVS:
* gst/rtsp/URLS:
Added some test URLS.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(gst_rtspsrc_loop), (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
When creating streams, give access to the complete SDP.
Fix some leaks.
Collect and merge global stream properties in stream caps.
Preliminary support for WMServer.
* gst/rtsp/rtspconnection.c: (rtsp_connection_create),
(rtsp_connection_connect), (rtsp_connection_read), (read_body),
(rtsp_connection_receive):
* gst/rtsp/rtspconnection.h:
Make connection interruptable.
Refactor to make it reconnectable.
Don't fail on short reads when reading data packets.
* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_set_port),
(rtsp_url_get_port):
* gst/rtsp/rtspurl.h:
Add methods for getting/setting the port.
* gst/rtsp/sdpmessage.c: (sdp_message_get_attribute_val_n),
(sdp_message_get_attribute_val), (sdp_media_get_attribute),
(sdp_media_get_attribute_val_n), (sdp_media_get_attribute_val),
(sdp_media_get_format), (sdp_parse_line),
(sdp_message_parse_buffer):
Fix headers.
Add methods for getting multiple attributes with the same name.
Increase buffer size when parsing.
Fix parsing of a=foo fields.
* gst/rtsp/test.c: (main):
Update to new connection API.
* gst/rtsp/rtspmessage.c: (rtsp_message_new_response),
(rtsp_message_init_response), (rtsp_message_init_data),
(rtsp_message_unset), (rtsp_message_free), (rtsp_message_dump):
* gst/rtsp/rtspmessage.h:
* gst/rtsp/rtsptransport.c: (rtsp_transport_free):
* gst/rtsp/rtsptransport.h:
* gst/rtsp/sdp.h:
* gst/rtsp/sdpmessage.h:
* gst/rtsp/gstrtsp.c:
* gst/rtsp/gstrtsp.h:
* gst/rtsp/gstrtpdec.c:
* gst/rtsp/gstrtpdec.h:
* gst/rtsp/rtsp.h:
* gst/rtsp/rtspdefs.c:
* gst/rtsp/rtspdefs.h:
Dual licensed under MIT and LGPL now.
2006-09-20 16:06:27 +00:00
Wim Taymans
a7d7309e18 gst/rtsp/gstrtspsrc.*: Reorganize stream parsing and creation.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (find_stream_by_pt),
(gst_rtspsrc_create_stream), (gst_rtspsrc_free_stream),
(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
(gst_rtspsrc_stream_configure_transport), (find_stream_by_channel),
(gst_rtspsrc_push_event), (gst_rtspsrc_loop), (gst_rtspsrc_send),
(gst_rtspsrc_parse_methods), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play):
* gst/rtsp/gstrtspsrc.h:
Reorganize stream parsing and creation.
Detect container formats in interleaved mode.
Keep more state about the streams.
Assume a server also supports PLAY if it does not say.
Add unicast and interleaved properties to TCP transport requests to make
some servers happy (WMServer).
* gst/rtsp/sdpmessage.h:
Add some defines for the standard Bandwidth types.
2006-09-19 17:25:15 +00:00
Wim Taymans
a437e9f0ed gst/rtsp/gstrtspsrc.*: Small cleanups, added documentation.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_send), (gst_rtspsrc_parse_methods),
(gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_play),
(gst_rtspsrc_pause), (gst_rtspsrc_change_state),
(gst_rtspsrc_uri_get_uri), (gst_rtspsrc_uri_set_uri):
* gst/rtsp/gstrtspsrc.h:
Small cleanups, added documentation.
Try to clean up the requests and responses.
Refactor parsing the supported methods.
* gst/rtsp/rtspconnection.c: (rtsp_connection_open),
(rtsp_connection_create), (rtsp_connection_send),
(parse_response_status), (parse_request_line),
(rtsp_connection_receive), (rtsp_connection_close),
(rtsp_connection_free):
* gst/rtsp/rtsptransport.c: (rtsp_transport_new),
(rtsp_transport_init), (rtsp_transport_parse),
(rtsp_transport_free):
* gst/rtsp/rtspurl.c: (rtsp_url_parse):
* gst/rtsp/sdpmessage.c: (sdp_message_new), (sdp_message_init),
(sdp_message_clean), (sdp_message_free), (sdp_media_new),
(sdp_media_init), (sdp_message_parse_buffer), (sdp_message_dump):
Use g_return_val some more.
* gst/rtsp/rtspdefs.h:
Add more enum values to track initial states.
* gst/rtsp/rtspmessage.c: (rtsp_message_new_request),
(rtsp_message_init_request), (rtsp_message_new_response),
(rtsp_message_init_response), (rtsp_message_init_data),
(rtsp_message_unset), (rtsp_message_free),
(rtsp_message_add_header), (rtsp_message_remove_header),
(rtsp_message_get_header), (rtsp_message_set_body),
(rtsp_message_take_body), (rtsp_message_get_body),
(rtsp_message_steal_body), (rtsp_message_dump):
* gst/rtsp/rtspmessage.h:
Reorder arguments, object goes as the first one.
Use g_return_val some more.
2006-09-18 17:37:46 +00:00
Wim Taymans
108dbd54cf gst/rtsp/gstrtspsrc.*: Export sometimes source pad with correct caps on the template, create the ghostpad from the te...
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_base_init),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_push_event),
(gst_rtspsrc_loop), (gst_rtspsrc_uri_set_uri):
* gst/rtsp/gstrtspsrc.h:
Export sometimes source pad with correct caps on the template, create
the ghostpad from the template.
Remove RTCP template as we never expose RTCP.
Protect against invalid body size.
Avoid memcpy when creating the output buffer.
Properly post an error and send EOS when the loop function is shut down.
2006-09-18 14:00:41 +00:00
Lutz Mueller
cac807b641 gst/rtsp/gstrtspsrc.*: Make sure we can never set an invalid location.
Original commit message from CVS:
Based on patch by: Lutz Mueller <lutz at topfrose dot de>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_init), (gst_rtspsrc_set_property), (gst_rtspsrc_open),
(gst_rtspsrc_uri_get_uri), (gst_rtspsrc_uri_set_uri):
* gst/rtsp/gstrtspsrc.h:
Make sure we can never set an invalid location.
* gst/rtsp/rtspmessage.c: (rtsp_message_steal_body):
* gst/rtsp/rtspmessage.h:
Added _steal_body method for future use.
* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_free):
Make freeing of NULL url return immediatly.
2006-09-18 11:29:12 +00:00
Lutz Mueller
afd156ad0c gst/rtsp/gstrtspsrc.*: Use boilerplate.
Original commit message from CVS:
Based on patch by: Lutz Mueller <lutz at topfrose dot de>
* gst/rtsp/gstrtspsrc.c: (_do_init), (gst_rtspsrc_class_init),
(gst_rtspsrc_init), (gst_rtspsrc_stream_setup_rtp),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_play),
(gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Use boilerplate.
Make rtspsrc subclass GstBin to make state changes easier.
Add Range header field on the PLAY request.
2006-09-18 10:42:52 +00:00
Thijs Vermeir
7484c92dfe gst/rtsp/: Small cleanups. when multicast is selected as the transport, create UDP sources and connect to the multica...
Original commit message from CVS:
Based on patch by: Thijs Vermeir <thijs dot vermeir at barco dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_set_state),
(gst_rtspsrc_media_to_caps), (gst_rtspsrc_stream_setup_rtp),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause):
* gst/rtsp/rtspconnection.c: (inet_aton):
Small cleanups.
when multicast is selected as the transport, create UDP sources and
connect to the multicast group.
Move parsing and setting of caps to a common place.
Fixes #349894.
2006-09-18 08:59:17 +00:00