diff options
author | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-26 01:53:20 +0000 |
---|---|---|
committer | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-26 01:53:20 +0000 |
commit | 583f6660fa5920bd971aa96be3c4638b9866e2c8 (patch) | |
tree | 8b473a06bb67f8df4f296ef5d179c773196e3d33 /gst/gstpad.h | |
parent | 99aa793b1c9ba7a4c3ec98dfabfa33d75c948c29 (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.h | 31 |
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); |