summaryrefslogtreecommitdiffstats
path: root/gst/switch/gstswitch.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2007-12-17 14:43:04 +0000
committerAndy Wingo <wingo@pobox.com>2007-12-17 14:43:04 +0000
commit9db3f63b135acd7866bedc9a7e097da3a6b294bb (patch)
tree57fb39b6713f74ac4d13a9a5c8503a1e8633764e /gst/switch/gstswitch.h
parent07cdfe9e63526b277a2ebbee53fb37431997036c (diff)
downloadgst-plugins-bad-9db3f63b135acd7866bedc9a7e097da3a6b294bb.tar.gz
gst-plugins-bad-9db3f63b135acd7866bedc9a7e097da3a6b294bb.tar.bz2
gst-plugins-bad-9db3f63b135acd7866bedc9a7e097da3a6b294bb.zip
gst/switch/gstswitch.*: Replace with files from gststreamselector.[ch], registered as the "switch" plugin, with "GstS...
Original commit message from CVS: 2007-12-17 Andy Wingo <wingo@pobox.com> * gst/switch/gstswitch.h: * gst/switch/gstswitch.c: Replace with files from gststreamselector.[ch], registered as the "switch" plugin, with "GstSwitch" types. Patch 1/12.
Diffstat (limited to 'gst/switch/gstswitch.h')
-rw-r--r--gst/switch/gstswitch.h72
1 files changed, 25 insertions, 47 deletions
diff --git a/gst/switch/gstswitch.h b/gst/switch/gstswitch.h
index c9ca0ec0..a7c4b22f 100644
--- a/gst/switch/gstswitch.h
+++ b/gst/switch/gstswitch.h
@@ -1,5 +1,6 @@
/* GStreamer
* Copyright (C) 2003 Julien Moutte <julien@moutte.net>
+ * Copyright (C) 2005 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -17,67 +18,44 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef __GST_SWITCH_H__
-#define __GST_SWITCH_H__
+#ifndef __GST_STREAM_SELECTOR_H__
+#define __GST_STREAM_SELECTOR_H__
#include <gst/gst.h>
G_BEGIN_DECLS
-#define GST_TYPE_SWITCH \
- (gst_switch_get_type())
-#define GST_SWITCH(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_SWITCH, GstSwitch))
-#define GST_SWITCH_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_SWITCH, GstSwitchClass))
-#define GST_IS_SWITCH(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_SWITCH))
-#define GST_IS_SWITCH_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_SWITCH))
-
-typedef struct _GstSwitch GstSwitch;
-typedef struct _GstSwitchClass GstSwitchClass;
-
-struct _GstSwitch {
+#define GST_TYPE_STREAM_SELECTOR \
+ (gst_stream_selector_get_type())
+#define GST_STREAM_SELECTOR(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_SELECTOR, GstStreamSelector))
+#define GST_STREAM_SELECTOR_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_STREAM_SELECTOR, GstStreamSelectorClass))
+#define GST_IS_STREAM_SELECTOR(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_SELECTOR))
+#define GST_IS_STREAM_SELECTOR_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_STREAM_SELECTOR))
+
+typedef struct _GstStreamSelector GstStreamSelector;
+typedef struct _GstStreamSelectorClass GstStreamSelectorClass;
+
+struct _GstStreamSelector {
GstElement element;
-
- GstPad *active_sinkpad;
+
GstPad *srcpad;
- GstPad *previous_sinkpad;
+ GstPad *active_sinkpad;
guint nb_sinkpads;
- /* this hash table stores for key of the pad pointer
- * the last new segment event received for this pad
- * so when switching we can send new segment events
- */
- GHashTable *newsegment_events;
- /* flag to decide whether we need to send a new segment event
- * before we receive the next buffer */
- gboolean need_to_send_newsegment;
- /* flag to decide whether to queue buffers received from current
- * pads */
- gboolean queue_buffers;
- GstClockTime stop_value;
- GstClockTime start_value;
- GstClockTime current_start;
- GstClockTime last_ts;
- /* this hash tables stores for key of the pad pointer
- * a GList of stored buffers that need to be sent once the
- * new segment has been sent
- */
- GHashTable *stored_buffers;
- GMutex *switch_mutex;
-};
-#define GST_SWITCH_LOCK(obj) g_mutex_lock(obj->switch_mutex)
-#define GST_SWITCH_UNLOCK(obj) g_mutex_unlock(obj->switch_mutex)
+ GstSegment segment;
+};
-struct _GstSwitchClass {
+struct _GstStreamSelectorClass {
GstElementClass parent_class;
};
-GType gst_switch_get_type (void);
+GType gst_stream_selector_get_type (void);
G_END_DECLS
-#endif /* __GST_SWITCH_H__ */
+#endif /* __GST_STREAM_SELECTOR_H__ */