![]() | ![]() | ![]() | GStreamer 0.10 Library Reference Manual | ![]() |
---|
GstAdapterGstAdapter — |
#include <gst/base/gstadapter.h> GstAdapter; GstAdapter* gst_adapter_new (void); void gst_adapter_clear (GstAdapter *adapter); void gst_adapter_push (GstAdapter *adapter, GstBuffer *buf); const guint8* gst_adapter_peek (GstAdapter *adapter, guint size); void gst_adapter_flush (GstAdapter *adapter, guint flush); guint gst_adapter_available (GstAdapter *adapter); guint gst_adapter_available_fast (GstAdapter *adapter); guint8* gst_adapter_take (GstAdapter *adapter, guint nbytes);
GstAdapter* gst_adapter_new (void);
Creates a new GstAdapter.
Returns : | a new GstAdapter |
void gst_adapter_clear (GstAdapter *adapter);
Removes all buffers from adapter
.
adapter : | a GstAdapter |
void gst_adapter_push (GstAdapter *adapter, GstBuffer *buf);
Adds the data from buf
to the data stored inside adapter
and takes
ownership of the buffer.
adapter : | a GstAdapter |
buf : | a GstBuffer to add to queue in the adapter |
const guint8* gst_adapter_peek (GstAdapter *adapter, guint size);
Gets the first size
bytes stored in the adapter
. The returned pointer is
valid until the next function is called on the adapter.
Note that setting the returned pointer as the data of a GstBuffer is
incorrect for general-purpose plugins. The reason is that if a downstream
element stores the buffer so that it has access to it outside of the bounds
of its chain function, the buffer will have an invalid data pointer after
your element flushes the bytes. In that case you should use
gst_adapter_take()
, which returns a freshly-allocated buffer that you can set
as GstBuffer malloc_data.
Returns NULL if size
bytes are not available.
adapter : | a GstAdapter |
size : | the number of bytes to peek |
Returns : | a pointer to the first size bytes of data, or NULL.
|
void gst_adapter_flush (GstAdapter *adapter, guint flush);
Flushes the first flush
bytes in the adapter
. The caller must ensure that
at least this many bytes are available.
See also: gst_adapter_peek()
.
adapter : | a GstAdapter |
flush : | the number of bytes to flush |
guint gst_adapter_available (GstAdapter *adapter);
Gets the maximum amount of bytes available, that is it returns the maximum
value that can be supplied to gst_adapter_peek()
without that function
returning NULL.
adapter : | a GstAdapter |
Returns : | number of bytes available in adapter
|
guint gst_adapter_available_fast (GstAdapter *adapter);
Gets the maximum number of bytes available without the need to do expensive operations (like copying the data into a temporary buffer).
adapter : | a GstAdapter |
Returns : | number of bytes available in adapter without expensive operations
|
guint8* gst_adapter_take (GstAdapter *adapter, guint nbytes);
Returns a freshly allocated buffer containing the first nbytes
bytes of the
adapter
.
Caller owns returned value.
adapter : | a GstAdapter |
nbytes : | the number of bytes to take |
Returns : | oven-fresh hot data, or NULL if nbytes bytes are not available
|
<< GstPushSrc | GstCollectPads >> |