expand tabs
[platform/upstream/gstreamer.git] / gst / audioresample / buffer.h
1
2 #ifndef __AUDIORESAMPLE_BUFFER_H__
3 #define __AUDIORESAMPLE_BUFFER_H__
4
5 #include <glib.h>
6
7 typedef struct _AudioresampleBuffer AudioresampleBuffer;
8 typedef struct _AudioresampleBufferQueue AudioresampleBufferQueue;
9
10 struct _AudioresampleBuffer
11 {
12   unsigned char *data;
13   int length;
14
15   int ref_count;
16
17   AudioresampleBuffer *parent;
18
19   void (*free) (AudioresampleBuffer *, void *);
20   void *priv;
21   void *priv2;
22 };
23
24 struct _AudioresampleBufferQueue
25 {
26   GList *buffers;
27   int depth;
28   int offset;
29 };
30
31 AudioresampleBuffer *   audioresample_buffer_new                (void);
32 AudioresampleBuffer *   audioresample_buffer_new_and_alloc      (int size);
33 AudioresampleBuffer *   audioresample_buffer_new_with_data      (void *data, int size);
34 AudioresampleBuffer *   audioresample_buffer_new_subbuffer      (AudioresampleBuffer * buffer, 
35                                                                  int offset,
36                                                                  int length);
37 void                    audioresample_buffer_ref                (AudioresampleBuffer * buffer);
38 void                    audioresample_buffer_unref              (AudioresampleBuffer * buffer);
39
40 AudioresampleBufferQueue *      
41                         audioresample_buffer_queue_new          (void);
42 void                    audioresample_buffer_queue_free         (AudioresampleBufferQueue * queue);
43 int                     audioresample_buffer_queue_get_depth    (AudioresampleBufferQueue * queue);
44 int                     audioresample_buffer_queue_get_offset   (AudioresampleBufferQueue * queue);
45 void                    audioresample_buffer_queue_push         (AudioresampleBufferQueue * queue,
46                                                                  AudioresampleBuffer * buffer);
47 AudioresampleBuffer *   audioresample_buffer_queue_pull         (AudioresampleBufferQueue * queue, int len);
48 AudioresampleBuffer *   audioresample_buffer_queue_peek         (AudioresampleBufferQueue * queue, int len);
49 void                    audioresample_buffer_queue_flush        (AudioresampleBufferQueue * queue);
50
51 #endif