## GstBufferPool GstBufferPool |

## Functions

#define | GST_BUFFER_POOL_IS_FLUSHING()
GstBufferPool * | gst_buffer_pool_new ()
gboolean | gst_buffer_pool_config_get_params ()
void | gst_buffer_pool_config_set_params ()
gboolean | gst_buffer_pool_config_validate_params ()
gboolean | gst_buffer_pool_config_get_allocator ()
void | gst_buffer_pool_config_set_allocator ()
guint | gst_buffer_pool_config_n_options ()
void | gst_buffer_pool_config_add_option ()
const gchar * | gst_buffer_pool_config_get_option ()
gboolean | gst_buffer_pool_config_has_option ()
const gchar ** | gst_buffer_pool_get_options ()
gboolean | gst_buffer_pool_has_option ()
GstStructure * | gst_buffer_pool_get_config ()
gboolean | gst_buffer_pool_set_config ()
gboolean | gst_buffer_pool_set_active ()
gboolean | gst_buffer_pool_is_active ()
void | gst_buffer_pool_set_flushing ()
GstFlowReturn | gst_buffer_pool_acquire_buffer ()
void | gst_buffer_pool_release_buffer ()

## Types and Values

| GstBufferPool
struct | GstBufferPoolClass
enum | GstBufferPoolAcquireFlags
struct | GstBufferPoolAcquireParams

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstBufferPool

## Includes

    #include <gst/gst.h>

## Description

## Functions

### GST_BUFFER_POOL_IS_FLUSHING()

    #define GST_BUFFER_POOL_IS_FLUSHING(pool)  (g_atomic_int_get (&pool->flushing))

### gst_buffer_pool_new ()

    GstBufferPool *
    gst_buffer_pool_new (void);

### gst_buffer_pool_config_get_params ()

    gboolean
    gst_buffer_pool_config_get_params (GstStructure *config,
                                       GstCaps **caps,
                                       guint *size,
                                       guint *min_buffers,
                                       guint *max_buffers);

### gst_buffer_pool_config_set_params ()

    void
    gst_buffer_pool_config_set_params (GstStructure *config,
                                       GstCaps *caps,
                                       guint size,
                                       guint min_buffers,
                                       guint max_buffers);

### gst_buffer_pool_config_validate_params ()

    gboolean
    gst_buffer_pool_config_validate_params
                                   (GstStructure *config,
                                    GstCaps *caps,
                                    guint size,
                                    guint min_buffers,
                                    guint max_buffers);

### gst_buffer_pool_config_get_allocator ()

    gboolean
    gst_buffer_pool_config_get_allocator (GstStructure *config,
                                          GstAllocator **allocator,
                                          GstAllocationParams *params);

### gst_buffer_pool_config_set_allocator ()

    void
    gst_buffer_pool_config_set_allocator (GstStructure *config,
                                          GstAllocator *allocator,
                                          const GstAllocationParams *params);

### gst_buffer_pool_config_n_options ()

    guint
    gst_buffer_pool_config_n_options (GstStructure *config);

### gst_buffer_pool_config_add_option ()

    void
    gst_buffer_pool_config_add_option (GstStructure *config,
                                       const gchar *option);

### gst_buffer_pool_config_get_option ()

    const gchar *
    gst_buffer_pool_config_get_option (GstStructure *config,
                                       guint index);

### gst_buffer_pool_config_has_option ()

    gboolean
    gst_buffer_pool_config_has_option (GstStructure *config,
                                       const gchar *option);

### gst_buffer_pool_get_options ()

    const gchar **
    gst_buffer_pool_get_options (GstBufferPool *pool);

### gst_buffer_pool_has_option ()

    gboolean
    gst_buffer_pool_has_option (GstBufferPool *pool,
                                const gchar *option);

### gst_buffer_pool_get_config ()

    GstStructure *
    gst_buffer_pool_get_config (GstBufferPool *pool);

### gst_buffer_pool_set_config ()

    gboolean
    gst_buffer_pool_set_config (GstBufferPool *pool,
                                GstStructure *config);

### gst_buffer_pool_set_active ()

    gboolean
    gst_buffer_pool_set_active (GstBufferPool *pool,
                                gboolean active);

### gst_buffer_pool_is_active ()

    gboolean
    gst_buffer_pool_is_active (GstBufferPool *pool);

### gst_buffer_pool_set_flushing ()

    void
    gst_buffer_pool_set_flushing (GstBufferPool *pool,
                                  gboolean flushing);

### gst_buffer_pool_acquire_buffer ()

    GstFlowReturn
    gst_buffer_pool_acquire_buffer (GstBufferPool *pool,
                                    GstBuffer **buffer,
                                    GstBufferPoolAcquireParams *params);

### gst_buffer_pool_release_buffer ()

    void
    gst_buffer_pool_release_buffer (GstBufferPool *pool,
                                    GstBuffer *buffer);

## Types and Values

### GstBufferPool

    typedef struct _GstBufferPool GstBufferPool;

### struct GstBufferPoolClass

    struct GstBufferPoolClass {
      GstObjectClass    object_class;

      const gchar ** (*get_options)    (GstBufferPool *pool);
      gboolean       (*set_config)     (GstBufferPool *pool, GstStructure *config);

      gboolean       (*start)          (GstBufferPool *pool);
      gboolean       (*stop)           (GstBufferPool *pool);

      GstFlowReturn  (*acquire_buffer) (GstBufferPool *pool, GstBuffer **buffer,
                                        GstBufferPoolAcquireParams *params);
      GstFlowReturn  (*alloc_buffer)   (GstBufferPool *pool, GstBuffer **buffer,
                                        GstBufferPoolAcquireParams *params);
      void           (*reset_buffer)   (GstBufferPool *pool, GstBuffer *buffer);
      void           (*release_buffer) (GstBufferPool *pool, GstBuffer *buffer);
      void           (*free_buffer)    (GstBufferPool *pool, GstBuffer *buffer);
      void           (*flush_start)    (GstBufferPool *pool);
      void           (*flush_stop)     (GstBufferPool *pool);
    };

### enum GstBufferPoolAcquireFlags

#### Members

GST_BUFFER_POOL_ACQUIRE_FLAG_NONE |  |
GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT |  |
GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT |  |
GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT |  |
GST_BUFFER_POOL_ACQUIRE_FLAG_LAST |  |

### struct GstBufferPoolAcquireParams

    struct GstBufferPoolAcquireParams {
      GstFormat                 format;
      gint64                    start;
      gint64                    stop;
      GstBufferPoolAcquireFlags flags;
    };