|
@@ -31,6 +31,7 @@ |
|
|
#include <assert.h> |
|
|
#include <assert.h> |
|
|
#include "common.h" |
|
|
#include "common.h" |
|
|
#include "bswap.h" |
|
|
#include "bswap.h" |
|
|
|
|
|
#include "intreadwrite.h" |
|
|
#include "log.h" |
|
|
#include "log.h" |
|
|
|
|
|
|
|
|
#if defined(ALT_BITSTREAM_READER_LE) && !defined(ALT_BITSTREAM_READER) |
|
|
#if defined(ALT_BITSTREAM_READER_LE) && !defined(ALT_BITSTREAM_READER) |
|
@@ -406,26 +407,6 @@ LAST_SKIP_BITS(name, gb, num) |
|
|
for examples see get_bits, show_bits, skip_bits, get_vlc |
|
|
for examples see get_bits, show_bits, skip_bits, get_vlc |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static inline int unaligned32_be(const void *v) |
|
|
|
|
|
{ |
|
|
|
|
|
#ifdef CONFIG_ALIGN |
|
|
|
|
|
const uint8_t *p=v; |
|
|
|
|
|
return (((p[0]<<8) | p[1])<<16) | (p[2]<<8) | (p[3]); |
|
|
|
|
|
#else |
|
|
|
|
|
return be2me_32( unaligned32(v)); //original |
|
|
|
|
|
#endif |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static inline int unaligned32_le(const void *v) |
|
|
|
|
|
{ |
|
|
|
|
|
#ifdef CONFIG_ALIGN |
|
|
|
|
|
const uint8_t *p=v; |
|
|
|
|
|
return (((p[3]<<8) | p[2])<<16) | (p[1]<<8) | (p[0]); |
|
|
|
|
|
#else |
|
|
|
|
|
return le2me_32( unaligned32(v)); //original |
|
|
|
|
|
#endif |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifdef ALT_BITSTREAM_READER |
|
|
#ifdef ALT_BITSTREAM_READER |
|
|
# define MIN_CACHE_BITS 25 |
|
|
# define MIN_CACHE_BITS 25 |
|
|
|
|
|
|
|
@@ -438,13 +419,13 @@ static inline int unaligned32_le(const void *v) |
|
|
|
|
|
|
|
|
# ifdef ALT_BITSTREAM_READER_LE |
|
|
# ifdef ALT_BITSTREAM_READER_LE |
|
|
# define UPDATE_CACHE(name, gb)\ |
|
|
# define UPDATE_CACHE(name, gb)\ |
|
|
name##_cache= unaligned32_le( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) >> (name##_index&0x07);\ |
|
|
|
|
|
|
|
|
name##_cache= AV_RL32( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) >> (name##_index&0x07);\ |
|
|
|
|
|
|
|
|
# define SKIP_CACHE(name, gb, num)\ |
|
|
# define SKIP_CACHE(name, gb, num)\ |
|
|
name##_cache >>= (num); |
|
|
name##_cache >>= (num); |
|
|
# else |
|
|
# else |
|
|
# define UPDATE_CACHE(name, gb)\ |
|
|
# define UPDATE_CACHE(name, gb)\ |
|
|
name##_cache= unaligned32_be( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) << (name##_index&0x07);\ |
|
|
|
|
|
|
|
|
name##_cache= AV_RB32( ((const uint8_t *)(gb)->buffer)+(name##_index>>3) ) << (name##_index&0x07);\ |
|
|
|
|
|
|
|
|
# define SKIP_CACHE(name, gb, num)\ |
|
|
# define SKIP_CACHE(name, gb, num)\ |
|
|
name##_cache <<= (num); |
|
|
name##_cache <<= (num); |
|
|