+/** \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.
*/
-
-/** Information stored in the asf header. */
struct asf_header_info {
/** The size of the audio file header. */
int header_len;
uint32_t bit_rate;
/** Further decoding information (ignored). */
uint32_t flags1;
- /** Whether to use exp_vlc, bit reservoir, variable block len. */
+ /** 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;
};
/* 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);
+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)