filesink: Flush buffers before directly writing out buffers with the SYNC_AFTER flag
[platform/upstream/gstreamer.git] / plugins / elements / gstidentity.h
index f186a49..e902732 100644 (file)
@@ -1,5 +1,8 @@
-/* Gnome-Streamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+/* GStreamer
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *                    2000 Wim Taymans <wtay@chello.be>
+ *
+ * gstidentity.h:
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -13,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.
  */
 
 
 #define __GST_IDENTITY_H__
 
 
-#include <config.h>
 #include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
 
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-GstElementDetails gst_identity_details;
+G_BEGIN_DECLS
 
 
 #define GST_TYPE_IDENTITY \
   (gst_identity_get_type())
 #define GST_IDENTITY(obj) \
-  (GTK_CHECK_CAST((obj),GST_TYPE_IDENTITY,GstIdentity))
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_IDENTITY,GstIdentity))
 #define GST_IDENTITY_CLASS(klass) \
-  (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_IDENTITY,GstIdentityClass))
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_IDENTITY,GstIdentityClass))
 #define GST_IS_IDENTITY(obj) \
-  (GTK_CHECK_TYPE((obj),GST_TYPE_IDENTITY))
-#define GST_IS_IDENTITY_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_IDENTITY)))
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_IDENTITY))
+#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 {
-  GstFilter filter;
-
-  GstPad *sinkpad;
-  GstPad *srcpad;
-
-  gint control;
+  GstBaseTransform      element;
+
+  /*< 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;
+  guint64        offset;
+  gboolean       signal_handoffs;
+  GstClockTime   upstream_latency;
+  GCond          blocked_cond;
+  gboolean       blocked;
+  GstClockTimeDiff  ts_offset;
+  gboolean       drop_allocation;
 };
 
 struct _GstIdentityClass {
-  GstFilterClass parent_class;
-};
-
-GtkType gst_identity_get_type(void);
-GstElement *gst_identity_new(gchar *name);
-void gst_identity_chain(GstPad *pad,GstBuffer *buf);
+  GstBaseTransformClass parent_class;
 
+  /* signals */
+  void (*handoff) (GstElement *element, GstBuffer *buf);
+};
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_GNUC_INTERNAL GType gst_identity_get_type (void);
 
+G_END_DECLS
 
 #endif /* __GST_IDENTITY_H__ */