diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-07-10 21:50:31 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-07-10 21:50:31 +0000 |
commit | d8b2a2e6ab69169bab5ca40b69bfa5dac893bd0e (patch) | |
tree | 6d2879e005ef8db84801c81e52450ee8736c6454 /src/libac3/bitstream.c | |
parent | 4cc9fd313df701f722a81ad4bb551155415ce5cc (diff) | |
download | xine-lib-d8b2a2e6ab69169bab5ca40b69bfa5dac893bd0e.tar.gz xine-lib-d8b2a2e6ab69169bab5ca40b69bfa5dac893bd0e.tar.bz2 |
latest libac3 from walken
CVS patchset: 265
CVS date: 2001/07/10 21:50:31
Diffstat (limited to 'src/libac3/bitstream.c')
-rw-r--r-- | src/libac3/bitstream.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/libac3/bitstream.c b/src/libac3/bitstream.c index 2a06ea747..7e9bd1f66 100644 --- a/src/libac3/bitstream.c +++ b/src/libac3/bitstream.c @@ -21,8 +21,8 @@ * */ +#include <inttypes.h> #include <stdlib.h> -#include <stddef.h> #include <stdio.h> #include "ac3.h" @@ -31,30 +31,21 @@ #define BUFFER_SIZE 4096 -struct uint32_alignment { - char a; - uint32_t b; -}; -#define UINT32_ALIGNMENT offsetof(struct uint32_alignment, b) - - -static uint32_t *buffer_start; +static uint8_t *buffer_start; uint32_t bits_left; uint32_t current_word; void bitstream_set_ptr (uint8_t * buf) { - int align = (long)buf & (UINT32_ALIGNMENT-1); - buffer_start = (uint32_t *) (buf - align); + buffer_start = buf; bits_left = 0; - if (align > 0) bitstream_get(align * 8); } static inline void bitstream_fill_current() { - current_word = *buffer_start++; + current_word = *((uint32_t*)buffer_start)++; current_word = swab32(current_word); } |