Commit graph

120 commits

Author SHA1 Message Date
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
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
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
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
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
Wim Taymans
0f38451f20 Small documentation updates.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_send), (gst_rtspsrc_close), (gst_rtspsrc_play),
(gst_rtspsrc_pause):
* gst/rtsp/gstrtspsrc.h:
* sys/oss/gstosssink.c: (gst_oss_sink_open),
(gst_oss_sink_prepare), (gst_oss_sink_unprepare):
Small documentation updates.
2006-08-22 16:45:37 +00:00
Wim Taymans
6eedcfbc8c gst/rtsp/gstrtpdec.c: Add pads after setting them up.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtpdec_init), (gst_rtpdec_getcaps):
Add pads after setting them up.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_init), (gst_rtspsrc_finalize),
(gst_rtspsrc_free_stream), (gst_rtspsrc_media_to_caps),
(gst_rtspsrc_stream_setup_rtp),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_combine_flows), (gst_rtspsrc_loop),
(gst_rtspsrc_open), (gst_rtspsrc_close), (gst_rtspsrc_play),
(gst_rtspsrc_pause):
* gst/rtsp/gstrtspsrc.h:
Fix interleaved mode.
- Protect streaming with lock.
- Combine flows
- set caps on outgoing buffers.
- strip trailing \0 from data packets.
- Configure RTP/RTCP in stream.
Use DEBUG_OBJECT more.
2006-08-16 09:48:26 +00:00
Wim Taymans
bfd2b35dda Added documentation for the rtsp plugin. Fixes #345393.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* gst/rtsp/gstrtpdec.c: (gst_rtpdec_class_init):
* gst/rtsp/gstrtspsrc.c:
* gst/rtsp/gstrtspsrc.h:
Added documentation for the rtsp plugin. Fixes #345393.
2006-06-20 14:57:09 +00:00
Stefan Kost
1def669c0e Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/aalib/gstaasink.h:
* ext/annodex/gstcmmldec.h:
* ext/cairo/gsttimeoverlay.h:
* ext/dv/gstdvdec.h:
* ext/dv/gstdvdemux.h:
* ext/esd/esdmon.h:
* ext/esd/esdsink.h:
* ext/flac/gstflacenc.h:
* ext/gconf/gstgconfaudiosink.h:
* ext/gconf/gstgconfaudiosrc.h:
* ext/gconf/gstgconfvideosink.h:
* ext/gconf/gstgconfvideosrc.h:
* ext/gdk_pixbuf/gstgdkanimation.h:
* ext/gdk_pixbuf/pixbufscale.h:
* ext/hal/gsthalaudiosink.h:
* ext/hal/gsthalaudiosrc.h:
* ext/jpeg/gstjpegenc.h:
* ext/jpeg/gstsmokedec.h:
* ext/jpeg/gstsmokeenc.h:
* ext/libcaca/gstcacasink.h:
* ext/libmng/gstmngdec.h:
* ext/libmng/gstmngenc.h:
* ext/libpng/gstpngdec.h:
* ext/libpng/gstpngenc.h:
* ext/raw1394/gstdv1394src.h:
* ext/speex/gstspeexenc.h:
* gst/autodetect/gstautoaudiosink.h:
* gst/autodetect/gstautovideosink.h:
* gst/avi/gstavidemux.h:
* gst/cutter/gstcutter.h:
* gst/debug/efence.h:
* gst/debug/gstnavigationtest.h:
* gst/debug/gstnavseek.h:
* gst/flx/gstflxdec.h:
* gst/goom/gstgoom.h:
* gst/icydemux/gsticydemux.h:
* gst/id3demux/gstid3demux.h:
* gst/law/alaw-decode.h:
* gst/law/alaw-encode.h:
* gst/law/mulaw-decode.h:
* gst/law/mulaw-encode.h:
* gst/matroska/matroska-mux.h:
* gst/median/gstmedian.h:
* gst/oldcore/gstaggregator.h:
* gst/oldcore/gstfdsink.h:
* gst/oldcore/gstmd5sink.h:
* gst/oldcore/gstmultifilesrc.h:
* gst/oldcore/gstpipefilter.h:
* gst/oldcore/gstshaper.h:
* gst/oldcore/gststatistics.h:
* gst/rtp/gstasteriskh263.h:
* gst/rtp/gstrtpL16depay.h:
* gst/rtp/gstrtpL16pay.h:
* gst/rtp/gstrtpamrdepay.h:
* gst/rtp/gstrtpamrpay.h:
* gst/rtp/gstrtpdepay.h:
* gst/rtp/gstrtpgsmdepay.h:
* gst/rtp/gstrtpgsmpay.h:
* gst/rtp/gstrtph263pay.h:
* gst/rtp/gstrtph263pdepay.h:
* gst/rtp/gstrtph263ppay.h:
* gst/rtp/gstrtpmp4gpay.h:
* gst/rtp/gstrtpmp4vdepay.h:
* gst/rtp/gstrtpmp4vpay.h:
* gst/rtp/gstrtpmpadepay.h:
* gst/rtp/gstrtpmpapay.h:
* gst/rtp/gstrtppcmadepay.h:
* gst/rtp/gstrtppcmapay.h:
* gst/rtp/gstrtppcmudepay.h:
* gst/rtp/gstrtppcmupay.h:
* gst/rtp/gstrtpspeexdepay.h:
* gst/rtp/gstrtpspeexpay.h:
* gst/rtsp/gstrtpdec.h:
* gst/rtsp/gstrtspsrc.h:
* gst/smpte/gstsmpte.h:
* gst/udp/gstdynudpsink.h:
* gst/udp/gstmultiudpsink.h:
* gst/udp/gstudpsink.h:
* gst/udp/gstudpsrc.h:
* gst/videofilter/gstvideobalance.h:
* gst/videofilter/gstvideoflip.h:
* sys/oss/gstossdmabuffer.h:
* sys/oss/gstossmixerelement.h:
* sys/oss/gstosssink.h:
* sys/oss/gstosssrc.h:
* sys/osxvideo/osxvideosink.h:
* sys/sunaudio/gstsunaudiomixer.h:
* sys/sunaudio/gstsunaudiosink.h:
* sys/ximage/gstximagesrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 21:07:26 +00:00
Wim Taymans
d465618d5b gst/rtsp/README: Updated README.
Original commit message from CVS:
* gst/rtsp/README:
Updated README.

* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_set_property),
(gst_rtspsrc_get_property), (gst_rtspsrc_stream_setup_rtp):
* gst/rtsp/gstrtspsrc.h:
Make sure the RTP port is an even port an try to allocate
another if not.
Added retry property to control max retries for port allocation.
Make sure RTCP port is RTP port+1.
Cleanup when port allocation fails.
Fixes #319183.
2006-02-16 10:42:25 +00:00
Thomas Vander Stichele
3ecf433432 expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:44:58 +00:00
Wim Taymans
c831aef495 gst/rtsp/: Handle RTSP defaults better.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspdefs.c: (rtsp_method_as_text), (rtsp_find_method):
* gst/rtsp/rtspdefs.h:
* gst/rtsp/rtsptransport.c: (rtsp_transport_parse):
Handle RTSP defaults better.
Issue OPTIONS request to figure out what we are allowed to do.
Make the methods a bitfield so we can easily collect supported
options.
Fix rtsp_find_method.
Do proper RTSP connection shutdown.
2005-08-18 16:53:14 +00:00
Wim Taymans
91ce2b294e gst/rtsp/gstrtspsrc.*: Setup UDP sources correctly, receives raw data from RTSP compliant servers now.
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_add_element),
(gst_rtspsrc_set_state), (gst_rtspsrc_stream_setup_rtp),
(gst_rtspsrc_stream_configure_transport), (find_stream),
(gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_close),
(gst_rtspsrc_play), (gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Setup UDP sources correctly, receives raw data from RTSP
compliant servers now.
2005-05-11 09:18:25 +00:00
Wim Taymans
6f0ea35883 Ported to 0.9.
Original commit message from CVS:
Ported to 0.9.
Set up transports, init UDP ports, init RTP session managers.
2005-05-11 07:44:44 +00:00