blob: 530448ef2a6273ef5779981fed79f9837ee8932a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/** \file wma.h The asf_header structure and public wma function declarations. */
/**
* Information contained in an asf audio file header.
*
* Both para_filter and para_afh need to read the header.
*/
struct asf_header_info {
/** The size of the audio file header. */
int header_len;
/** Offset of the audio stream info header. */
int audio_stream_info_start;
/** Number of channels. */
uint8_t channels;
/** One of the 5 possible sample rates. */
uint16_t sample_rate;
/** Size of one data block. */
uint16_t block_align;
/** Bits per second. */
uint32_t bit_rate;
/** Further decoding information (ignored). */
uint32_t flags1;
/** Encodes exp_vlc, bit reservoir, vbl, number of block sizes. */
uint16_t flags2;
/** Whether exponents are coded with VLC codes. */
bool use_exp_vlc;
/** If false, a frame is equal to a superframe. */
bool use_bit_reservoir;
/** Whether blocks are of variable or of constant size. */
bool use_variable_block_len;
/** Obtained from the file properties object. */
uint32_t packet_size;
};
/* wma_common.c */
__a_const int wma_log2(unsigned int v);
const char *search_pattern(const uint8_t *pattern, int pattern_len,
const char *buf, int buf_size);
int read_asf_header(const char *buf, int loaded, struct asf_header_info *ahi);
#define WMA_FRAME_SKIP 31
|