summaryrefslogtreecommitdiffstats
path: root/gst/interleave/interleave.h
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-05-26 10:28:47 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-05-26 10:28:47 +0000
commit22b3fb381c8fd033d10fc54578ba0aa1ff634ea8 (patch)
treeba8269a14a0340d2cd0d4750a425065033e5a3bd /gst/interleave/interleave.h
parent52bc66555f6542d93480e7564a985037b30e75e2 (diff)
gst/interleave/deinterleave.c: Add another example launch line.
Original commit message from CVS: * gst/interleave/deinterleave.c: Add another example launch line. * gst/interleave/interleave.c: (interleave_24), (gst_interleave_finalize), (gst_interleave_base_init), (gst_interleave_class_init), (gst_interleave_init), (gst_interleave_request_new_pad), (gst_interleave_release_pad), (gst_interleave_change_state), (__remove_channels), (__set_channels), (gst_interleave_sink_getcaps), (gst_interleave_set_process_function), (gst_interleave_sink_setcaps), (gst_interleave_sink_event), (gst_interleave_src_query_duration), (gst_interleave_src_query), (forward_event_func), (forward_event), (gst_interleave_src_event), (gst_interleave_collected): * gst/interleave/interleave.h: Major rewrite of interleave using GstCollectpads. This new version also supports almost all raw audio formats and has better caps negotiation. Fixes bug #506594. Also update docs and add some more examples. * tests/check/elements/interleave.c: (interleave_chain_func), (GST_START_TEST), (src_handoff_float32), (sink_handoff_float32), (interleave_suite): Add some more extensive unit tests for interleave.
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