summaryrefslogtreecommitdiff
path: root/src/libac3/bitstream.c
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2001-07-10 21:50:31 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2001-07-10 21:50:31 +0000
commitd8b2a2e6ab69169bab5ca40b69bfa5dac893bd0e (patch)
tree6d2879e005ef8db84801c81e52450ee8736c6454 /src/libac3/bitstream.c
parent4cc9fd313df701f722a81ad4bb551155415ce5cc (diff)
downloadxine-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.c17
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);
}