05265bcb0768b4b7a76661881b40771b1f4fe0c0
[fdkaac.git] / src / wav_reader.h
1 /*
2 * Copyright (C) 2013 nu774
3 * For conditions of distribution and use, see copyright notice in COPYING
4 */
5 #ifndef WAV_READER_H
6 #define WAV_READER_H
7
8 #include "lpcm.h"
9
10 enum wav_error_code {
11 WAV_IO_ERROR = 1,
12 WAV_NO_MEMORY,
13 WAV_INVALID_FORMAT,
14 WAV_UNSUPPORTED_FORMAT
15 };
16
17 typedef int (*wav_read_callback)(void *cookie, void *data, uint32_t size);
18 typedef int (*wav_seek_callback)(void *cookie, int64_t off, int whence);
19 typedef int64_t (*wav_tell_callback)(void *cookie);
20
21 typedef struct wav_io_context_t {
22 wav_read_callback read;
23 wav_seek_callback seek;
24 wav_tell_callback tell;
25 } wav_io_context_t;
26
27 typedef struct wav_reader_t wav_reader_t;
28
29 wav_reader_t *wav_open(wav_io_context_t *io_ctx, void *io_cookie,
30 int ignore_length);
31 wav_reader_t *raw_open(wav_io_context_t *io_ctx, void *io_cookie,
32 const pcm_sample_description_t *desc);
33 const pcm_sample_description_t *wav_get_format(wav_reader_t *reader);
34 int wav_read_frames(wav_reader_t *reader, void *buffer, unsigned nframes);
35 int64_t wav_get_length(wav_reader_t *reader);
36 int64_t wav_get_position(wav_reader_t *reader);
37 void wav_teardown(wav_reader_t **reader);
38
39 #endif
This page took 0.021347 seconds and 3 git commands to generate.