| GStreamer 0.10 Library Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
GstByteWriterGstByteWriter — Writes different integer, string and floating point types to a memory buffer and allows reading |
#include <gst/base/gstbytewriter.h>
GstByteWriter;
GstByteWriter * gst_byte_writer_new (void);
GstByteWriter * gst_byte_writer_new_with_buffer (GstBuffer *buffer,
gboolean initialized);
GstByteWriter * gst_byte_writer_new_with_data (guint8 *data,
guint size,
gboolean initialized);
GstByteWriter * gst_byte_writer_new_with_size (guint size,
gboolean fixed);
void gst_byte_writer_init (GstByteWriter *writer);
void gst_byte_writer_init_with_buffer (GstByteWriter *writer,
GstBuffer *buffer,
gboolean initialized);
void gst_byte_writer_init_with_data (GstByteWriter *writer,
guint8 *data,
guint size,
gboolean initialized);
void gst_byte_writer_init_with_size (GstByteWriter *writer,
guint size,
gboolean fixed);
void gst_byte_writer_free (GstByteWriter *writer);
GstBuffer * gst_byte_writer_free_and_get_buffer (GstByteWriter *writer);
guint8 * gst_byte_writer_free_and_get_data (GstByteWriter *writer);
void gst_byte_writer_reset (GstByteWriter *writer);
guint8 * gst_byte_writer_reset_and_get_data (GstByteWriter *writer);
GstBuffer * gst_byte_writer_reset_and_get_buffer
(GstByteWriter *writer);
guint gst_byte_writer_get_pos (const GstByteWriter *writer);
gboolean gst_byte_writer_set_pos (const GstByteWriter *writer,
guint pos);
guint gst_byte_writer_get_remaining (const GstByteWriter *writer);
guint gst_byte_writer_get_size (const GstByteWriter *writer);
gboolean gst_byte_writer_ensure_free_space (GstByteWriter *writer,
guint size);
gboolean gst_byte_writer_put_int8 (GstByteWriter *writer,
gint8 val);
gboolean gst_byte_writer_put_int16_be (GstByteWriter *writer,
gint16 val);
gboolean gst_byte_writer_put_int16_le (GstByteWriter *writer,
gint16 val);
gboolean gst_byte_writer_put_int24_be (GstByteWriter *writer,
gint32 val);
gboolean gst_byte_writer_put_int24_le (GstByteWriter *writer,
gint32 val);
gboolean gst_byte_writer_put_int32_be (GstByteWriter *writer,
gint32 val);
gboolean gst_byte_writer_put_int32_le (GstByteWriter *writer,
gint32 val);
gboolean gst_byte_writer_put_int64_be (GstByteWriter *writer,
gint64 val);
gboolean gst_byte_writer_put_int64_le (GstByteWriter *writer,
gint64 val);
gboolean gst_byte_writer_put_uint8 (GstByteWriter *writer,
guint8 val);
gboolean gst_byte_writer_put_uint16_be (GstByteWriter *writer,
guint16 val);
gboolean gst_byte_writer_put_uint16_le (GstByteWriter *writer,
guint16 val);
gboolean gst_byte_writer_put_uint24_be (GstByteWriter *writer,
guint32 val);
gboolean gst_byte_writer_put_uint24_le (GstByteWriter *writer,
guint32 val);
gboolean gst_byte_writer_put_uint32_be (GstByteWriter *writer,
guint32 val);
gboolean gst_byte_writer_put_uint32_le (GstByteWriter *writer,
guint32 val);
gboolean gst_byte_writer_put_uint64_be (GstByteWriter *writer,
guint64 val);
gboolean gst_byte_writer_put_uint64_le (GstByteWriter *writer,
guint64 val);
gboolean gst_byte_writer_put_float32_be (GstByteWriter *writer,
gfloat val);
gboolean gst_byte_writer_put_float32_le (GstByteWriter *writer,
gfloat val);
gboolean gst_byte_writer_put_float64_be (GstByteWriter *writer,
gdouble val);
gboolean gst_byte_writer_put_float64_le (GstByteWriter *writer,
gdouble val);
#define gst_byte_writer_put_string (writer, data)
gboolean gst_byte_writer_put_string_utf16 (GstByteWriter *writer,
const guint16 *data);
gboolean gst_byte_writer_put_string_utf32 (GstByteWriter *writer,
const guint32 *data);
gboolean gst_byte_writer_put_string_utf8 (GstByteWriter *writer,
const gchar *data);
gboolean gst_byte_writer_put_data (GstByteWriter *writer,
const guint8 *data,
guint size);
gboolean gst_byte_writer_fill (GstByteWriter *writer,
const guint8 value,
guint size);
GstByteWriter provides a byte writer and reader that can write/read different integer and floating point types to/from a memory buffer. It provides functions for writing/reading signed/unsigned, little/big endian integers of 8, 16, 24, 32 and 64 bits and functions for reading little/big endian floating points numbers of 32 and 64 bits. It also provides functions to write/read NUL-terminated strings in various character encodings.
typedef struct {
GstByteReader parent;
guint alloc_size;
gboolean fixed;
gboolean owned;
} GstByteWriter;
A byte writer instance.
GstByteReader |
GstByteReader parent |
guint |
Allocation size of the data |
gboolean |
If TRUE no reallocations are allowed
|
gboolean |
If FALSE no reallocations are allowed and copies of data are returned
|
GstByteWriter * gst_byte_writer_new (void);
Creates a new, empty GstByteWriter instance
Returns : |
a new, empty GstByteWriter instance |
Since 0.10.26
GstByteWriter * gst_byte_writer_new_with_buffer (GstBuffer *buffer, gboolean initialized);
Creates a new GstByteWriter instance with the given
buffer. If initialized is TRUE it is possible to
read the complete buffer from the GstByteWriter from the beginning.
buffer must be writable
|
Buffer used for writing |
|
If TRUE the complete data can be read from the beginning
|
Returns : |
a new GstByteWriter instance |
Since 0.10.26
GstByteWriter * gst_byte_writer_new_with_data (guint8 *data, guint size, gboolean initialized);
Creates a new GstByteWriter instance with the given
memory area. If initialized is TRUE it is possible to
read size bytes from the GstByteWriter from the beginning.
|
Memory area for writing |
|
Size of data in bytes
|
|
If TRUE the complete data can be read from the beginning
|
Returns : |
a new GstByteWriter instance |
Since 0.10.26
GstByteWriter * gst_byte_writer_new_with_size (guint size, gboolean fixed);
Creates a new GstByteWriter instance with the given initial data size.
|
Initial size of data |
|
If TRUE the data can't be reallocated
|
Returns : |
a new GstByteWriter instance |
Since 0.10.26
void gst_byte_writer_init (GstByteWriter *writer);
Initializes writer to an empty instance
|
GstByteWriter instance |
Since 0.10.26
void gst_byte_writer_init_with_buffer (GstByteWriter *writer, GstBuffer *buffer, gboolean initialized);
Initializes writer with the given
buffer. If initialized is TRUE it is possible to
read the complete buffer from the GstByteWriter from the beginning.
buffer must be writable
|
GstByteWriter instance |
|
Buffer used for writing |
|
If TRUE the complete data can be read from the beginning
|
Since 0.10.26
void gst_byte_writer_init_with_data (GstByteWriter *writer, guint8 *data, guint size, gboolean initialized);
Initializes writer with the given
memory area. If initialized is TRUE it is possible to
read size bytes from the GstByteWriter from the beginning.
|
GstByteWriter instance |
|
Memory area for writing |
|
Size of data in bytes
|
|
If TRUE the complete data can be read from the beginning
|
Since 0.10.26
void gst_byte_writer_init_with_size (GstByteWriter *writer, guint size, gboolean fixed);
Initializes writer with the given initial data size.
|
GstByteWriter instance |
|
Initial size of data |
|
If TRUE the data can't be reallocated
|
Since 0.10.26
void gst_byte_writer_free (GstByteWriter *writer);
Frees writer and all memory allocated by it.
|
GstByteWriter instance |
Since 0.10.26
GstBuffer * gst_byte_writer_free_and_get_buffer (GstByteWriter *writer);
Frees writer and all memory allocated by it except
the current data, which is returned as GstBuffer.
|
GstByteWriter instance |
Returns : |
the current data as buffer. gst_buffer_unref() after usage.
|
Since 0.10.26
guint8 * gst_byte_writer_free_and_get_data (GstByteWriter *writer);
Frees writer and all memory allocated by it except
the current data, which is returned.
|
GstByteWriter instance |
Returns : |
the current data. g_free() after usage.
|
Since 0.10.26
void gst_byte_writer_reset (GstByteWriter *writer);
Resets writer and frees the data if it's
owned by writer.
|
GstByteWriter instance |
Since 0.10.26
guint8 * gst_byte_writer_reset_and_get_data (GstByteWriter *writer);
Resets writer and returns the current data.
|
GstByteWriter instance |
Returns : |
the current data. g_free() after usage.
|
Since 0.10.26
GstBuffer * gst_byte_writer_reset_and_get_buffer (GstByteWriter *writer);
Resets writer and returns the current data as buffer.
|
GstByteWriter instance |
Returns : |
the current data as buffer. gst_buffer_unref() after usage.
|
Since 0.10.26
guint gst_byte_writer_get_pos (const GstByteWriter *writer);
|
GstByteWriter instance |
Returns : |
The current position of the read/write cursor |
Since 0.10.26
gboolean gst_byte_writer_set_pos (const GstByteWriter *writer, guint pos);
Sets the current read/write cursor of writer. The new position
can only be between 0 and the current size.
|
GstByteWriter instance |
|
new position |
Returns : |
TRUE if the new position could be set
|
Since 0.10.26
guint gst_byte_writer_get_remaining (const GstByteWriter *writer);
Returns the remaining size of data that can still be written. If -1 is returned the remaining size is only limited by system resources.
|
GstByteWriter instance |
Returns : |
the remaining size of data that can still be written |
Since 0.10.26
guint gst_byte_writer_get_size (const GstByteWriter *writer);
|
GstByteWriter instance |
Returns : |
The current, initialized size of the data |
Since 0.10.26
gboolean gst_byte_writer_ensure_free_space (GstByteWriter *writer, guint size);
Checks if enough free space from the current write cursor is available and reallocates if necessary.
|
GstByteWriter instance |
|
Number of bytes that should be available |
Returns : |
TRUE if at least size bytes are still available
|
Since 0.10.26
gboolean gst_byte_writer_put_int8 (GstByteWriter *writer, gint8 val);
Writes a signed 8 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int16_be (GstByteWriter *writer, gint16 val);
Writes a signed big endian 16 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int16_le (GstByteWriter *writer, gint16 val);
Writes a signed little endian 16 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int24_be (GstByteWriter *writer, gint32 val);
Writes a signed big endian 24 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int24_le (GstByteWriter *writer, gint32 val);
Writes a signed little endian 24 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int32_be (GstByteWriter *writer, gint32 val);
Writes a signed big endian 32 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int32_le (GstByteWriter *writer, gint32 val);
Writes a signed little endian 32 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int64_be (GstByteWriter *writer, gint64 val);
Writes a signed big endian 64 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_int64_le (GstByteWriter *writer, gint64 val);
Writes a signed little endian 64 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint8 (GstByteWriter *writer, guint8 val);
Writes a unsigned 8 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint16_be (GstByteWriter *writer, guint16 val);
Writes a unsigned big endian 16 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint16_le (GstByteWriter *writer, guint16 val);
Writes a unsigned little endian 16 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint24_be (GstByteWriter *writer, guint32 val);
Writes a unsigned big endian 24 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint24_le (GstByteWriter *writer, guint32 val);
Writes a unsigned little endian 24 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint32_be (GstByteWriter *writer, guint32 val);
Writes a unsigned big endian 32 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint32_le (GstByteWriter *writer, guint32 val);
Writes a unsigned little endian 32 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint64_be (GstByteWriter *writer, guint64 val);
Writes a unsigned big endian 64 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_uint64_le (GstByteWriter *writer, guint64 val);
Writes a unsigned little endian 64 bit integer to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_float32_be (GstByteWriter *writer, gfloat val);
Writes a big endian 32 bit float to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_float32_le (GstByteWriter *writer, gfloat val);
Writes a little endian 32 bit float to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_float64_be (GstByteWriter *writer, gdouble val);
Writes a big endian 64 bit float to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_float64_le (GstByteWriter *writer, gdouble val);
Writes a little endian 64 bit float to writer.
|
GstByteWriter instance |
|
Value to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
#define gst_byte_writer_put_string(writer, data)
Write a null-terminated string to writer.
|
GstByteWriter instance |
|
Null terminated string |
Returns : |
TRUE if the string could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_string_utf16 (GstByteWriter *writer, const guint16 *data);
Writes a null-terminated UTF16 string to writer.
|
GstByteWriter instance |
|
UTF16 string to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_string_utf32 (GstByteWriter *writer, const guint32 *data);
Writes a null-terminated UTF32 string to writer.
|
GstByteWriter instance |
|
UTF32 string to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_string_utf8 (GstByteWriter *writer, const gchar *data);
Writes a null-terminated UTF8 string to writer.
|
GstByteWriter instance |
|
UTF8 string to write |
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_put_data (GstByteWriter *writer, const guint8 *data, guint size);
Writes size bytes of data to writer.
|
GstByteWriter instance |
|
Data to write |
|
Size of data in bytes
|
Returns : |
TRUE if the value could be written
|
Since 0.10.26
gboolean gst_byte_writer_fill (GstByteWriter *writer, const guint8 value, guint size);
Writes size bytes containing value to writer.
|
GstByteWriter instance |
|
Value to be writen |
|
Number of bytes to be writen |
Returns : |
TRUE if the value could be written
|
Since 0.10.26