summaryrefslogtreecommitdiffstats
path: root/gst/interleave/interleave.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/interleave/interleave.h')
-rw-r--r--gst/interleave/interleave.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/gst/interleave/interleave.h b/gst/interleave/interleave.h
index 915871eb..65006954 100644
--- a/gst/interleave/interleave.h
+++ b/gst/interleave/interleave.h
@@ -3,8 +3,9 @@
* 2000 Wim Taymans <wtay@chello.be>
* 2005 Wim Taymans <wim@fluendo.com>
* 2007 Andy Wingo <wingo at pobox.com>
+ * 2008 Sebastian Dröge <slomo@circular-chaos.org>
*
- * interleave.c: interleave samples, based on gstsignalprocessor.c
+ * interleave.c: interleave samples, mostly based on adder
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -26,6 +27,7 @@
#define __INTERLEAVE_H__
#include <gst/gst.h>
+#include <gst/base/gstcollectpads.h>
G_BEGIN_DECLS
@@ -40,18 +42,34 @@ G_BEGIN_DECLS
typedef struct _GstInterleave GstInterleave;
typedef struct _GstInterleaveClass GstInterleaveClass;
+typedef void (*GstInterleaveFunc) (gpointer out, gpointer in, guint stride, guint nframes);
+
struct _GstInterleave
{
GstElement element;
/*< private >*/
+ GstCollectPads *collect;
+
+ gint channels;
+ gint rate;
+ gint width;
+
GstCaps *sinkcaps;
- guint channels;
- GstPad *src;
- GstActivateMode mode;
+ GstClockTime timestamp;
+ guint64 offset;
- guint pending_in;
+ gboolean segment_pending;
+ guint64 segment_position;
+ gdouble segment_rate;
+ GstSegment segment;
+
+ GstPadEventFunction collect_event;
+
+ GstInterleaveFunc func;
+
+ GstPad *src;
};
struct _GstInterleaveClass