summaryrefslogtreecommitdiff
path: root/gst/gstpad.h
diff options
context:
space:
mode:
authorErik Walthinsen <omega@temple-baptist.org>2001-04-26 01:53:20 +0000
committerErik Walthinsen <omega@temple-baptist.org>2001-04-26 01:53:20 +0000
commit583f6660fa5920bd971aa96be3c4638b9866e2c8 (patch)
tree8b473a06bb67f8df4f296ef5d179c773196e3d33 /gst/gstpad.h
parent99aa793b1c9ba7a4c3ec98dfabfa33d75c948c29 (diff)
Merged from HEAD to INCSCHED1 on 200104251BRANCH-INCSCHED1-200104251
Original commit message from CVS: Merged from HEAD to INCSCHED1 on 200104251
Diffstat (limited to 'gst/gstpad.h')
-rw-r--r--gst/gstpad.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/gst/gstpad.h b/gst/gstpad.h
index aa253112ba..9390d9960a 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -100,6 +100,7 @@ typedef GstBuffer* (*GstPadPullRegionFunction) (GstPad *pad, GstRegionType type
typedef gboolean (*GstPadEOSFunction) (GstPad *pad);
typedef GstPadNegotiateReturn (*GstPadNegotiateFunction) (GstPad *pad, GstCaps **caps, gpointer *data);
typedef void (*GstPadNewCapsFunction) (GstPad *pad, GstCaps *caps);
+typedef GstBufferPool* (*GstPadBufferPoolFunction) (GstPad *pad);
typedef enum {
GST_PAD_UNKNOWN,
@@ -155,6 +156,7 @@ struct _GstRealPad {
GstPadNegotiateFunction negotiatefunc;
GstPadNewCapsFunction newcapsfunc;
+ GstPadBufferPoolFunction bufferpoolfunc;
GList *ghostpads;
};
@@ -205,6 +207,7 @@ struct _GstGhostPadClass {
#define GST_RPAD_EOSFUNC(pad) (((GstRealPad *)(pad))->eosfunc)
#define GST_RPAD_NEGOTIATEFUNC(pad) (((GstRealPad *)(pad))->negotiatefunc)
#define GST_RPAD_NEWCAPSFUNC(pad) (((GstRealPad *)(pad))->newcapsfunc)
+#define GST_RPAD_BUFFERPOOLFUNC(pad) (((GstRealPad *)(pad))->bufferpoolfunc)
#define GST_RPAD_REGIONTYPE(pad) (((GstRealPad *)(pad))->regiontype)
#define GST_RPAD_OFFSET(pad) (((GstRealPad *)(pad))->offset)
@@ -258,6 +261,31 @@ struct _GstPadTemplateClass {
void (*pad_created) (GstPadTemplate *templ, GstPad *pad);
};
+#define GST_PADTEMPLATE_NEW(padname, dir, pres, a...) \
+ gst_padtemplate_new ( \
+ padname, \
+ dir, \
+ pres, \
+ a , \
+ NULL)
+
+#define GST_PADTEMPLATE_FACTORY(name, padname, dir, pres, a...) \
+static GstPadTemplate* \
+name (void) \
+{ \
+ static GstPadTemplate *templ = NULL; \
+ if (!templ) { \
+ templ = GST_PADTEMPLATE_NEW ( \
+ padname, \
+ dir, \
+ pres, \
+ a ); \
+ } \
+ return templ; \
+}
+
+#define GST_PADTEMPLATE_GET(fact) (fact)()
+
GtkType gst_pad_get_type (void);
GtkType gst_real_pad_get_type (void);
@@ -276,6 +304,7 @@ void gst_pad_set_qos_function (GstPad *pad, GstPadQoSFunction qos);
void gst_pad_set_eos_function (GstPad *pad, GstPadEOSFunction eos);
void gst_pad_set_negotiate_function (GstPad *pad, GstPadNegotiateFunction nego);
void gst_pad_set_newcaps_function (GstPad *pad, GstPadNewCapsFunction newcaps);
+void gst_pad_set_bufferpool_function (GstPad *pad, GstPadBufferPoolFunction bufpool);
gboolean gst_pad_set_caps (GstPad *pad, GstCaps *caps);
GstCaps* gst_pad_get_caps (GstPad *pad);
@@ -303,6 +332,8 @@ GstPadTemplate* gst_pad_get_padtemplate (GstPad *pad);
GstPad* gst_pad_get_peer (GstPad *pad);
+GstBufferPool* gst_pad_get_bufferpool (GstPad *pad);
+
gboolean gst_pad_connect (GstPad *srcpad, GstPad *sinkpad);
void gst_pad_disconnect (GstPad *srcpad, GstPad *sinkpad);