summaryrefslogtreecommitdiff
path: root/libavcodec/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/common.c')
-rw-r--r--libavcodec/common.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/common.c b/libavcodec/common.c
index 8c50fbc8d6..4f70e6f924 100644
--- a/libavcodec/common.c
+++ b/libavcodec/common.c
@@ -140,9 +140,19 @@ void init_get_bits(GetBitContext *s,
#ifdef ALT_BITSTREAM_READER
s->index=0;
#elif defined LIBMPEG2_BITSTREAM_READER
+#ifdef LIBMPEG2_BITSTREAM_HACK
+ if ((int)buffer&1) {
+ /* word alignment */
+ s->cache = (*buffer++)<<24;
+ s->buffer_ptr = buffer;
+ s->bit_count = 16-8;
+ } else
+#endif
+ {
s->buffer_ptr = buffer;
s->bit_count = 16;
s->cache = 0;
+ }
#elif defined A32_BITSTREAM_READER
s->buffer_ptr = (uint32_t*)buffer;
s->bit_count = 32;