identity: Non-live upstream have no max latency
[platform/upstream/gstreamer.git] / plugins / elements / gstinputselector.h
index 8a5248a..3dff175 100644 (file)
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
  
 #ifndef __GST_INPUT_SELECTOR_H__
@@ -48,29 +48,44 @@ typedef struct _GstInputSelectorClass GstInputSelectorClass;
                        GST_INPUT_SELECTOR_GET_LOCK(sel)))
 #define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
 
+/**
+ * GstInputSelectorSyncMode:
+ * @GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT: Sync using the current active segment.
+ * @GST_INPUT_SELECTOR_SYNC_MODE_CLOCK: Sync using the clock.
+ *
+ * The different ways that input-selector can behave when in sync-streams mode.
+ */
+typedef enum {
+  GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT,
+  GST_INPUT_SELECTOR_SYNC_MODE_CLOCK
+} GstInputSelectorSyncMode;
+
 struct _GstInputSelector {
   GstElement element;
 
   GstPad *srcpad;
 
   GstPad *active_sinkpad;
-  guint n_pads;
-  guint padcount;
+  guint n_pads;           /* number of pads */
+  guint padcount;         /* sequence number for pads */
   gboolean sync_streams;
+  GstInputSelectorSyncMode sync_mode;
+  gboolean cache_buffers;
+
+  gboolean have_group_id;
 
   GMutex lock;
   GCond cond;
-  gboolean blocked;
+  gboolean eos;
+  gboolean eos_sent;
   gboolean flushing;
 };
 
 struct _GstInputSelectorClass {
   GstElementClass parent_class;
-
-  gint64 (*block)      (GstInputSelector *self);
 };
 
-GType gst_input_selector_get_type (void);
+G_GNUC_INTERNAL GType gst_input_selector_get_type (void);
 
 G_END_DECLS