gstringbuffer

gstringbuffer — an implementation of an audio ringbuffer

Synopsis


#include <gst/audio/gstringbuffer.h>


            GstRingBuffer;
            GstRingBufferClass;

Object Hierarchy


  GObject
   +----GstObject
         +----GstRingBuffer

Description

Details

GstRingBuffer

typedef struct {
  GCond                 *cond;
  gboolean               open;
  gboolean               acquired;
  GstBuffer             *data;
  GstRingBufferSpec      spec;
  GstRingBufferSegState *segstate;
  gint     		 samples_per_seg;     /* number of samples per segment */
  guint8		*empty_seg;

  gint			 state;		/* state of the buffer */
  gint			 segdone;       /* number of segments processed since last start */
  gint			 segbase;	/* segment corresponding to segment 0 */
  gint			 waiting;	/* when waiting for a segment to be freed */
} GstRingBuffer;


GstRingBufferClass

typedef struct {
  GstObjectClass parent_class;

  /* just open the device, don't set any params or allocate anything */
  gboolean     (*open_device)  (GstRingBuffer *buf);
  /* allocate the resources for the ringbuffer using the given specs */
  gboolean     (*acquire)      (GstRingBuffer *buf, GstRingBufferSpec *spec);
  /* free resources of the ringbuffer */
  gboolean     (*release)      (GstRingBuffer *buf);
  /* close the device */
  gboolean     (*close_device) (GstRingBuffer *buf);

  /* playback control */
  gboolean     (*start)        (GstRingBuffer *buf);
  gboolean     (*pause)        (GstRingBuffer *buf);
  gboolean     (*resume)       (GstRingBuffer *buf);
  gboolean     (*stop)         (GstRingBuffer *buf);

  /* number of samples queued in device */
  guint        (*delay)        (GstRingBuffer *buf);
} GstRingBufferClass;