filesink: Flush buffers before directly writing out buffers with the SYNC_AFTER flag
[platform/upstream/gstreamer.git] / plugins / elements / gstidentity.h
index 00dffdf..e902732 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
  *                    2000 Wim Taymans <wtay@chello.be>
  *
- * gstidentity.h: 
+ * gstidentity.h:
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -16,8 +16,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.
  */
 
 
@@ -26,6 +26,7 @@
 
 
 #include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
 
 G_BEGIN_DECLS
 
@@ -38,37 +39,56 @@ G_BEGIN_DECLS
   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_IDENTITY,GstIdentityClass))
 #define GST_IS_IDENTITY(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_IDENTITY))
-#define GST_IS_IDENTITY_CLASS(obj) \
+#define GST_IS_IDENTITY_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_IDENTITY))
 
 typedef struct _GstIdentity GstIdentity;
 typedef struct _GstIdentityClass GstIdentityClass;
 
+/**
+ * GstIdentity:
+ *
+ * Opaque #GstIdentity data structure
+ */
 struct _GstIdentity {
-  GstElement    element;
-
-  GstPad       *sinkpad;
-  GstPad       *srcpad;
+  GstBaseTransform      element;
 
-  gboolean      loop_based;
-  guint         duplicate;
+  /*< private >*/
+  GstClockID     clock_id;
+  gboolean       flushing;
   gint                  error_after;
   gfloat        drop_probability;
+  gint          datarate;
   guint         sleep_time;
   gboolean      silent;
   gboolean      dump;
+  gboolean      sync;
+  gboolean      check_imperfect_timestamp;
+  gboolean      check_imperfect_offset;
+  gboolean      single_segment;
+  GstBufferFlags drop_buffer_flags;
+  GstClockTime   prev_timestamp;
+  GstClockTime   prev_duration;
+  guint64        prev_offset;
+  guint64        prev_offset_end;
   gchar        *last_message;
-  GstCaps      *srccaps;
+  guint64        offset;
+  gboolean       signal_handoffs;
+  GstClockTime   upstream_latency;
+  GCond          blocked_cond;
+  gboolean       blocked;
+  GstClockTimeDiff  ts_offset;
+  gboolean       drop_allocation;
 };
 
 struct _GstIdentityClass {
-  GstElementClass parent_class;
+  GstBaseTransformClass parent_class;
 
   /* signals */
   void (*handoff) (GstElement *element, GstBuffer *buf);
 };
 
-GType gst_identity_get_type(void);
+G_GNUC_INTERNAL GType gst_identity_get_type (void);
 
 G_END_DECLS