summaryrefslogtreecommitdiffstats
path: root/gst/selector/gstinputselector.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/selector/gstinputselector.h')
-rw-r--r--gst/selector/gstinputselector.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/gst/selector/gstinputselector.h b/gst/selector/gstinputselector.h
index daefced8..58a671d5 100644
--- a/gst/selector/gstinputselector.h
+++ b/gst/selector/gstinputselector.h
@@ -40,6 +40,14 @@ G_BEGIN_DECLS
typedef struct _GstInputSelector GstInputSelector;
typedef struct _GstInputSelectorClass GstInputSelectorClass;
+#define GST_INPUT_SELECTOR_GET_LOCK(sel) (((GstInputSelector*)(sel))->lock)
+#define GST_INPUT_SELECTOR_GET_COND(sel) (((GstInputSelector*)(sel))->cond)
+#define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_UNLOCK(sel) (g_mutex_unlock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_WAIT(sel) (g_cond_wait (GST_INPUT_SELECTOR_GET_COND(sel), \
+ GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
+
struct _GstInputSelector {
GstElement element;
@@ -49,12 +57,13 @@ struct _GstInputSelector {
guint n_pads;
guint padcount;
- GstSegment segment;
+ GstSegment segment; /* the output segment */
+ gboolean pending_close; /* if we should push a close first */
- GCond *blocked_cond;
+ GMutex *lock;
+ GCond *cond;
gboolean blocked;
- gboolean pending_stop;
- GstSegment pending_stop_segment;
+ gboolean flushing;
/* select all mode, send data from all input pads forward */
gboolean select_all;