add swfdec_buffer_new_and_alloc0 - useful in a lot of audio cases
[swfdec.git] / libswfdec / swfdec_buffer.h
blob6e25873925fb34f850241da2f45bee11fdceade5
2 #ifndef __SWFDEC_BUFFER_H__
3 #define __SWFDEC_BUFFER_H__
5 #include <glib.h>
6 #include <libswfdec/swfdec_types.h>
9 struct _SwfdecBuffer
11 unsigned char *data;
12 unsigned int length;
14 int ref_count;
16 SwfdecBuffer *parent;
18 void (*free) (SwfdecBuffer *, void *);
19 void *priv;
22 struct _SwfdecBufferQueue
24 GList *buffers;
25 unsigned int depth;
26 unsigned int offset;
29 SwfdecBuffer *swfdec_buffer_new (void);
30 SwfdecBuffer *swfdec_buffer_new_and_alloc (unsigned int size);
31 SwfdecBuffer *swfdec_buffer_new_and_alloc0 (unsigned int size);
32 SwfdecBuffer *swfdec_buffer_new_with_data (void *data, int size);
33 SwfdecBuffer *swfdec_buffer_new_subbuffer (SwfdecBuffer * buffer, unsigned int offset,
34 unsigned int length);
35 SwfdecBuffer *swfdec_buffer_new_from_file (const char *filename, GError **error);
36 SwfdecBuffer * swfdec_buffer_ref (SwfdecBuffer * buffer);
37 void swfdec_buffer_unref (SwfdecBuffer * buffer);
39 SwfdecBufferQueue *swfdec_buffer_queue_new (void);
40 void swfdec_buffer_queue_clear (SwfdecBufferQueue *queue);
41 void swfdec_buffer_queue_free (SwfdecBufferQueue * queue);
42 int swfdec_buffer_queue_get_depth (SwfdecBufferQueue * queue);
43 int swfdec_buffer_queue_get_offset (SwfdecBufferQueue * queue);
44 void swfdec_buffer_queue_push (SwfdecBufferQueue * queue,
45 SwfdecBuffer * buffer);
46 SwfdecBuffer *swfdec_buffer_queue_pull (SwfdecBufferQueue * queue, unsigned int len);
47 SwfdecBuffer *swfdec_buffer_queue_pull_buffer (SwfdecBufferQueue * queue);
48 SwfdecBuffer *swfdec_buffer_queue_peek (SwfdecBufferQueue * queue, unsigned int len);
50 #endif