summaryrefslogtreecommitdiffstats
path: root/gst/rtsp/gstrtspsrc.h
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2006-09-29 15:37:29 +0000
committerWim Taymans <wim.taymans@gmail.com>2006-09-29 15:37:29 +0000
commit6e0855034567eb50e9e2b1d897e6d0f39f10ec4b (patch)
tree401843efc4c586a03eee96a910abb017bd731d79 /gst/rtsp/gstrtspsrc.h
parentfcd901a5bf0edad1eb198758da293d0ec34269cf (diff)
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.
Diffstat (limited to 'gst/rtsp/gstrtspsrc.h')
-rw-r--r--gst/rtsp/gstrtspsrc.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index 53504cff..21fb073e 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -61,10 +61,16 @@ G_BEGIN_DECLS
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTSPSRC))
#define GST_IS_RTSPSRC_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTSPSRC))
+#define GST_RTSPSRC_CAST(obj) \
+ ((GstRTSPSrc *)(obj))
typedef struct _GstRTSPSrc GstRTSPSrc;
typedef struct _GstRTSPSrcClass GstRTSPSrcClass;
+#define GST_RTSP_LOOP_GET_COND(rtsp) (GST_RTSPSRC_CAST(rtsp)->loop_cond)
+#define GST_RTSP_LOOP_WAIT(rtsp) (g_cond_wait(GST_RTSP_LOOP_GET_COND (rtsp), GST_OBJECT_GET_LOCK (rtsp)))
+#define GST_RTSP_LOOP_SIGNAL(rtsp) (g_cond_signal(GST_RTSP_LOOP_GET_COND (rtsp)))
+
/**
* GstRTSPProto:
* @GST_RTSP_PROTO_UDP_UNICAST: Use unicast UDP transfer.
@@ -126,16 +132,21 @@ struct _GstRTSPSrc {
GstSegment segment;
gboolean running;
+ /* cond to signal loop */
+ GCond *loop_cond;
+ gint loop_cmd;
+
gint numstreams;
GList *streams;
GstStructure *props;
gchar *location;
RTSPUrl *url;
+ GstRTSPProto protocols;
gboolean debug;
guint retry;
+ guint64 timeout;
- GstRTSPProto protocols;
/* supported methods */
gint methods;