## GstCollectPads GstCollectPads |

## Functions

void | (*GstCollectDataDestroyNotify) ()
GstFlowReturn | (*GstCollectPadsBufferFunction) ()
GstFlowReturn | (*GstCollectPadsClipFunction) ()
gint | (*GstCollectPadsCompareFunction) ()
gboolean | (*GstCollectPadsEventFunction) ()
void | (*GstCollectPadsFlushFunction) ()
gboolean | (*GstCollectPadsQueryFunction) ()
GstFlowReturn | (*GstCollectPadsFunction) ()
#define | GST_COLLECT_PADS_STATE()
#define | GST_COLLECT_PADS_STATE_IS_SET()
#define | GST_COLLECT_PADS_STATE_SET()
#define | GST_COLLECT_PADS_STATE_UNSET()
#define | GST_COLLECT_PADS_GET_STREAM_LOCK()
#define | GST_COLLECT_PADS_STREAM_LOCK()
#define | GST_COLLECT_PADS_STREAM_UNLOCK()
#define | GST_COLLECT_PADS_DTS()
#define | GST_COLLECT_PADS_DTS_IS_VALID()
GstCollectPads * | gst_collect_pads_new ()
GstCollectData * | gst_collect_pads_add_pad ()
gboolean | gst_collect_pads_remove_pad ()
void | gst_collect_pads_start ()
void | gst_collect_pads_stop ()
guint | gst_collect_pads_available ()
guint | gst_collect_pads_flush ()
GstBuffer * | gst_collect_pads_peek ()
GstBuffer * | gst_collect_pads_pop ()
GstBuffer * | gst_collect_pads_read_buffer ()
GstBuffer * | gst_collect_pads_take_buffer ()
GstFlowReturn | gst_collect_pads_clip_running_time ()
gboolean | gst_collect_pads_query_default ()
gboolean | gst_collect_pads_event_default ()
gboolean | gst_collect_pads_src_event_default ()
void | gst_collect_pads_set_buffer_function ()
void | gst_collect_pads_set_clip_function ()
void | gst_collect_pads_set_compare_function ()
void | gst_collect_pads_set_event_function ()
void | gst_collect_pads_set_flush_function ()
void | gst_collect_pads_set_query_function ()
void | gst_collect_pads_set_flushing ()
void | gst_collect_pads_set_function ()
void | gst_collect_pads_set_waiting ()

## Types and Values

struct | GstCollectPads
struct | GstCollectData
enum | GstCollectPadsStateFlags

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstCollectPads

## Includes

    #include <gst/base/gstcollectpads.h>

## Description

## Functions

### GstCollectDataDestroyNotify ()

    void
    (*GstCollectDataDestroyNotify) (GstCollectData *data);

### GstCollectPadsBufferFunction ()

    GstFlowReturn
    (*GstCollectPadsBufferFunction) (GstCollectPads *pads,
                                     GstCollectData *data,
                                     GstBuffer *buffer,
                                     gpointer user_data);

### GstCollectPadsClipFunction ()

    GstFlowReturn
    (*GstCollectPadsClipFunction) (GstCollectPads *pads,
                                   GstCollectData *data,
                                   GstBuffer *inbuffer,
                                   GstBuffer **outbuffer,
                                   gpointer user_data);

### GstCollectPadsCompareFunction ()

    gint
    (*GstCollectPadsCompareFunction) (GstCollectPads *pads,
                                      GstCollectData *data1,
                                      GstClockTime timestamp1,
                                      GstCollectData *data2,
                                      GstClockTime timestamp2,
                                      gpointer user_data);

### GstCollectPadsEventFunction ()

    gboolean
    (*GstCollectPadsEventFunction) (GstCollectPads *pads,
                                    GstCollectData *pad,
                                    GstEvent *event,
                                    gpointer user_data);

### GstCollectPadsFlushFunction ()

    void
    (*GstCollectPadsFlushFunction) (GstCollectPads *pads,
                                    gpointer user_data);

### GstCollectPadsQueryFunction ()

    gboolean
    (*GstCollectPadsQueryFunction) (GstCollectPads *pads,
                                    GstCollectData *pad,
                                    GstQuery *query,
                                    gpointer user_data);

### GstCollectPadsFunction ()

    GstFlowReturn
    (*GstCollectPadsFunction) (GstCollectPads *pads,
                               gpointer user_data);

### GST_COLLECT_PADS_STATE()

    #define GST_COLLECT_PADS_STATE(data)                 (((GstCollectData *) data)->state)

### GST_COLLECT_PADS_STATE_IS_SET()

    #define GST_COLLECT_PADS_STATE_IS_SET(data,flag)     !!(GST_COLLECT_PADS_STATE (data) & flag)

### GST_COLLECT_PADS_STATE_SET()

    #define GST_COLLECT_PADS_STATE_SET(data,flag)        (GST_COLLECT_PADS_STATE (data) |= flag)

### GST_COLLECT_PADS_STATE_UNSET()

    #define GST_COLLECT_PADS_STATE_UNSET(data,flag)      (GST_COLLECT_PADS_STATE (data) &= ~(flag))

### GST_COLLECT_PADS_GET_STREAM_LOCK()

    #define GST_COLLECT_PADS_GET_STREAM_LOCK(pads) (&((GstCollectPads *)pads)->stream_lock)

### GST_COLLECT_PADS_STREAM_LOCK()

    #define GST_COLLECT_PADS_STREAM_LOCK(pads)     g_rec_mutex_lock(GST_COLLECT_PADS_GET_STREAM_LOCK (pads))

### GST_COLLECT_PADS_STREAM_UNLOCK()

    #define GST_COLLECT_PADS_STREAM_UNLOCK(pads)   g_rec_mutex_unlock(GST_COLLECT_PADS_GET_STREAM_LOCK (pads))

### GST_COLLECT_PADS_DTS()

    #define GST_COLLECT_PADS_DTS(data)                   (((GstCollectData *) data)->ABI.abi.dts)

### GST_COLLECT_PADS_DTS_IS_VALID()

    #define GST_COLLECT_PADS_DTS_IS_VALID(data)          (GST_CLOCK_STIME_IS_VALID (GST_COLLECT_PADS_DTS (data)))

### gst_collect_pads_new ()

    GstCollectPads *
    gst_collect_pads_new (void);

### gst_collect_pads_add_pad ()

    GstCollectData *
    gst_collect_pads_add_pad (GstCollectPads *pads,
                              GstPad *pad,
                              guint size,
                              GstCollectDataDestroyNotify destroy_notify,
                              gboolean lock);

### gst_collect_pads_remove_pad ()

    gboolean
    gst_collect_pads_remove_pad (GstCollectPads *pads,
                                 GstPad *pad);

### gst_collect_pads_start ()

    void
    gst_collect_pads_start (GstCollectPads *pads);

### gst_collect_pads_stop ()

    void
    gst_collect_pads_stop (GstCollectPads *pads);

### gst_collect_pads_available ()

    guint
    gst_collect_pads_available (GstCollectPads *pads);

### gst_collect_pads_flush ()

    guint
    gst_collect_pads_flush (GstCollectPads *pads,
                            GstCollectData *data,
                            guint size);

### gst_collect_pads_peek ()

    GstBuffer *
    gst_collect_pads_peek (GstCollectPads *pads,
                           GstCollectData *data);

### gst_collect_pads_pop ()

    GstBuffer *
    gst_collect_pads_pop (GstCollectPads *pads,
                          GstCollectData *data);

### gst_collect_pads_read_buffer ()

    GstBuffer *
    gst_collect_pads_read_buffer (GstCollectPads *pads,
                                  GstCollectData *data,
                                  guint size);

### gst_collect_pads_take_buffer ()

    GstBuffer *
    gst_collect_pads_take_buffer (GstCollectPads *pads,
                                  GstCollectData *data,
                                  guint size);

### gst_collect_pads_clip_running_time ()

    GstFlowReturn
    gst_collect_pads_clip_running_time (GstCollectPads *pads,
                                        GstCollectData *cdata,
                                        GstBuffer *buf,
                                        GstBuffer **outbuf,
                                        gpointer user_data);

### gst_collect_pads_query_default ()

    gboolean
    gst_collect_pads_query_default (GstCollectPads *pads,
                                    GstCollectData *data,
                                    GstQuery *query,
                                    gboolean discard);

### gst_collect_pads_event_default ()

    gboolean
    gst_collect_pads_event_default (GstCollectPads *pads,
                                    GstCollectData *data,
                                    GstEvent *event,
                                    gboolean discard);

### gst_collect_pads_src_event_default ()

    gboolean
    gst_collect_pads_src_event_default (GstCollectPads *pads,
                                        GstPad *pad,
                                        GstEvent *event);

### gst_collect_pads_set_buffer_function ()

    void
    gst_collect_pads_set_buffer_function (GstCollectPads *pads,
                                          GstCollectPadsBufferFunction func,
                                          gpointer user_data);

### gst_collect_pads_set_clip_function ()

    void
    gst_collect_pads_set_clip_function (GstCollectPads *pads,
                                        GstCollectPadsClipFunction clipfunc,
                                        gpointer user_data);

### gst_collect_pads_set_compare_function ()

    void
    gst_collect_pads_set_compare_function (GstCollectPads *pads,
                                           GstCollectPadsCompareFunction func,
                                           gpointer user_data);

### gst_collect_pads_set_event_function ()

    void
    gst_collect_pads_set_event_function (GstCollectPads *pads,
                                         GstCollectPadsEventFunction func,
                                         gpointer user_data);

### gst_collect_pads_set_flush_function ()

    void
    gst_collect_pads_set_flush_function (GstCollectPads *pads,
                                         GstCollectPadsFlushFunction func,
                                         gpointer user_data);

### gst_collect_pads_set_query_function ()

    void
    gst_collect_pads_set_query_function (GstCollectPads *pads,
                                         GstCollectPadsQueryFunction func,
                                         gpointer user_data);

### gst_collect_pads_set_flushing ()

    void
    gst_collect_pads_set_flushing (GstCollectPads *pads,
                                   gboolean flushing);

### gst_collect_pads_set_function ()

    void
    gst_collect_pads_set_function (GstCollectPads *pads,
                                   GstCollectPadsFunction func,
                                   gpointer user_data);

### gst_collect_pads_set_waiting ()

    void
    gst_collect_pads_set_waiting (GstCollectPads *pads,
                                  GstCollectData *data,
                                  gboolean waiting);

## Types and Values

### struct GstCollectPads

    struct GstCollectPads {
      GSList        *data;                  /* list of CollectData items */
    };

### struct GstCollectData

    struct GstCollectData {
      /* with STREAM_LOCK of @collect */
      GstCollectPads        *collect;
      GstPad                *pad;
      GstBuffer             *buffer;
      guint                  pos;
      GstSegment             segment;

          gint64 dts;
    };

### enum GstCollectPadsStateFlags

#### Members

GST_COLLECT_PADS_STATE_EOS |  |
GST_COLLECT_PADS_STATE_FLUSHING |  |
GST_COLLECT_PADS_STATE_NEW_SEGMENT |  |
GST_COLLECT_PADS_STATE_WAITING |  |
GST_COLLECT_PADS_STATE_LOCKED |  |