+/** \file wma.h The asf_header structure and public wma function declarations. */
+
/**
* Information contained in an asf audio file 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 */
-int wma_log2(unsigned int v);
+__a_const int wma_log2(unsigned int v);
const char *search_pattern(const char *pattern, int pattern_len,
const char *buf, int buf_size);
-int read_asf_header(char *buf, int loaded, struct asf_header_info *ahi);
-#define M_PI 3.14159265358979323846 /* pi */
+int read_asf_header(const char *buf, int loaded, struct asf_header_info *ahi);
+
#define WMA_FRAME_SKIP 31
-#define DECLARE_ALIGNED(n,t,v) t v __attribute__ ((aligned (n)))
-#define DECLARE_ALIGNED_16(t, v) DECLARE_ALIGNED(16, t, v)