summaryrefslogtreecommitdiffstats
path: root/gst/rtsp/gstrtspsrc.h
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2006-08-16 09:48:26 +0000
committerWim Taymans <wim.taymans@gmail.com>2006-08-16 09:48:26 +0000
commit6eedcfbc8c493079db829b5f67ccd1bd791c1313 (patch)
tree698ae29c418336a8acc2ed4c8262690e9eb75510 /gst/rtsp/gstrtspsrc.h
parent64faced49c74be6cfb7c8b215e7e782dec6ed5ee (diff)
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.
Diffstat (limited to 'gst/rtsp/gstrtspsrc.h')
-rw-r--r--gst/rtsp/gstrtspsrc.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index fa19677d..424c512a 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -55,19 +55,23 @@ typedef struct _GstRTSPStream GstRTSPStream;
struct _GstRTSPStream {
gint id;
+ GstRTSPSrc *parent;
+
+ GstFlowReturn last_ret;
+
+ /* for interleaved mode */
gint rtpchannel;
gint rtcpchannel;
+ GstCaps *caps;
- GstRTSPSrc *parent;
-
- /* our udp sources */
+ /* our udp sources for RTP */
GstElement *rtpsrc;
GstElement *rtcpsrc;
/* our udp sink back to the server */
GstElement *rtcpsink;
- /* the rtp decoder */
+ /* the RTP decoder */
GstElement *rtpdec;
GstPad *rtpdecrtp;
GstPad *rtpdecrtcp;
@@ -76,23 +80,25 @@ struct _GstRTSPStream {
struct _GstRTSPSrc {
GstElement element;
- gboolean interleaved;
- GstTask *task;
+ /* task and mutex for interleaved mode */
+ gboolean interleaved;
+ GstTask *task;
+ GStaticRecMutex *stream_rec_lock;
- gint numstreams;
- GList *streams;
+ gint numstreams;
+ GList *streams;
- gchar *location;
- gboolean debug;
- guint retry;
+ gchar *location;
+ gboolean debug;
+ guint retry;
- GstRTSPProto protocols;
+ GstRTSPProto protocols;
/* supported options */
- gint options;
+ gint options;
- RTSPConnection *connection;
- RTSPMessage *request;
- RTSPMessage *response;
+ RTSPConnection *connection;
+ RTSPMessage *request;
+ RTSPMessage *response;
};
struct _GstRTSPSrcClass {