On 2011-12-17 14:26:50 +0000, Mans Rullgard wrote:
> Signed-off-by: Mans Rullgard <[email protected]>
> ---
> libavcodec/get_bits.h | 122
> +++++++++++++++++++++++++++++--------------------
> 1 files changed, 73 insertions(+), 49 deletions(-)
>
> diff --git a/libavcodec/get_bits.h b/libavcodec/get_bits.h
> index 38a7463..4aa5da8 100644
> --- a/libavcodec/get_bits.h
> +++ b/libavcodec/get_bits.h
> @@ -125,33 +125,37 @@ for examples see get_bits, show_bits, skip_bits, get_vlc
> # define MIN_CACHE_BITS 25
> #endif
>
> -# define OPEN_READER(name, gb) \
> +#define OPEN_READER(name, gb) \
> unsigned int name##_index = (gb)->index; \
> unsigned int av_unused name##_cache = 0
>
> -# define CLOSE_READER(name, gb) (gb)->index = name##_index
> +#define CLOSE_READER(name, gb) (gb)->index = name##_index
> +
> +#ifdef ALT_BITSTREAM_READER_LE
>
> -# ifdef ALT_BITSTREAM_READER_LE
> # ifdef LONG_BITSTREAM_READER
> -# define UPDATE_CACHE(name, gb) \
> - name##_cache = AV_RL64((gb)->buffer+(name##_index>>3)) >>
> (name##_index&0x07)
> +# define UPDATE_CACHE(name, gb) name##_cache = \
> + AV_RL64((gb)->buffer + (name##_index >> 3)) >> (name##_index & 7)
not really whitespace only change, looks good though
> # else
> -# define UPDATE_CACHE(name, gb) \
> - name##_cache = AV_RL32((gb)->buffer+(name##_index>>3)) >>
> (name##_index&0x07)
> +# define UPDATE_CACHE(name, gb) name##_cache = \
> + AV_RL32((gb)->buffer + (name##_index >> 3)) >> (name##_index & 7)
> # endif
>
> -# define SKIP_CACHE(name, gb, num) name##_cache >>= (num)
> -# else
> +# define SKIP_CACHE(name, gb, num) name##_cache >>= (num)
> +
> +#else
> +
> # ifdef LONG_BITSTREAM_READER
> -# define UPDATE_CACHE(name, gb) \
> - name##_cache = AV_RB64((gb)->buffer+(name##_index >> 3)) >> (32 -
> (name##_index & 0x07))
> +# define UPDATE_CACHE(name, gb) name##_cache = \
> + AV_RB64((gb)->buffer + (name##_index >> 3)) >> (32 - (name##_index &
> 7))
> # else
> -# define UPDATE_CACHE(name, gb) \
> - name##_cache = AV_RB32((gb)->buffer+(name##_index>>3)) <<
> (name##_index&0x07)
> +# define UPDATE_CACHE(name, gb) name##_cache = \
> + AV_RB32((gb)->buffer + (name##_index >> 3)) << (name##_index & 7)
> # endif
>
> -# define SKIP_CACHE(name, gb, num) name##_cache <<= (num)
> -# endif
> +# define SKIP_CACHE(name, gb, num) name##_cache <<= (num)
> +
> +#endif
>
> // FIXME name?
> #if UNCHECKED_BITSTREAM_READER
> @@ -161,27 +165,26 @@ for examples see get_bits, show_bits, skip_bits, get_vlc
> name##_index = FFMIN((gb)->size_in_bits_plus8, name##_index + (num))
> #endif
>
> -# define SKIP_BITS(name, gb, num) do { \
> +#define SKIP_BITS(name, gb, num) do { \
> SKIP_CACHE(name, gb, num); \
> SKIP_COUNTER(name, gb, num); \
> } while (0)
>
> -# define LAST_SKIP_BITS(name, gb, num) SKIP_COUNTER(name, gb, num)
> -# define LAST_SKIP_CACHE(name, gb, num)
> +#define LAST_SKIP_BITS(name, gb, num) SKIP_COUNTER(name, gb, num)
> +#define LAST_SKIP_CACHE(name, gb, num)
>
> -# ifdef ALT_BITSTREAM_READER_LE
> +#ifdef ALT_BITSTREAM_READER_LE
> # define SHOW_UBITS(name, gb, num) zero_extend(name##_cache, num)
> -
> # define SHOW_SBITS(name, gb, num) sign_extend(name##_cache, num)
> -# else
> +#else
> # define SHOW_UBITS(name, gb, num) NEG_USR32(name##_cache, num)
> -
> # define SHOW_SBITS(name, gb, num) NEG_SSR32(name##_cache, num)
> -# endif
> +#endif
>
> -# define GET_CACHE(name, gb) ((uint32_t)name##_cache)
> +#define GET_CACHE(name, gb) ((uint32_t)name##_cache)
>
> -static inline int get_bits_count(const GetBitContext *s){
> +static inline int get_bits_count(const GetBitContext *s)
> +{
> return s->index;
> }
>
> @@ -199,7 +202,8 @@ static inline void skip_bits_long(GetBitContext *s, int
> n){
> * @param n length in bits
> * @author BERO
> */
> -static inline int get_xbits(GetBitContext *s, int n){
> +static inline int get_xbits(GetBitContext *s, int n)
> +{
> register int sign;
> register int32_t cache;
> OPEN_READER(re, s);
> @@ -211,7 +215,8 @@ static inline int get_xbits(GetBitContext *s, int n){
> return (NEG_USR32(sign ^ cache, n) ^ sign) - sign;
> }
>
> -static inline int get_sbits(GetBitContext *s, int n){
> +static inline int get_sbits(GetBitContext *s, int n)
> +{
> register int tmp;
> OPEN_READER(re, s);
> UPDATE_CACHE(re, s);
> @@ -224,7 +229,8 @@ static inline int get_sbits(GetBitContext *s, int n){
> /**
> * Read 1-25 bits.
> */
> -static inline unsigned int get_bits(GetBitContext *s, int n){
> +static inline unsigned int get_bits(GetBitContext *s, int n)
> +{
> register int tmp;
> OPEN_READER(re, s);
> UPDATE_CACHE(re, s);
> @@ -237,7 +243,8 @@ static inline unsigned int get_bits(GetBitContext *s, int
> n){
> /**
> * Show 1-25 bits.
> */
> -static inline unsigned int show_bits(GetBitContext *s, int n){
> +static inline unsigned int show_bits(GetBitContext *s, int n)
> +{
> register int tmp;
> OPEN_READER(re, s);
> UPDATE_CACHE(re, s);
> @@ -245,7 +252,8 @@ static inline unsigned int show_bits(GetBitContext *s,
> int n){
> return tmp;
> }
>
> -static inline void skip_bits(GetBitContext *s, int n){
> +static inline void skip_bits(GetBitContext *s, int n)
> +{
> //Note gcc seems to optimize this to s->index+=n for the ALT_READER :))
> OPEN_READER(re, s);
> UPDATE_CACHE(re, s);
> @@ -253,7 +261,8 @@ static inline void skip_bits(GetBitContext *s, int n){
> CLOSE_READER(re, s);
> }
>
> -static inline unsigned int get_bits1(GetBitContext *s){
> +static inline unsigned int get_bits1(GetBitContext *s)
> +{
> unsigned int index = s->index;
> uint8_t result = s->buffer[index>>3];
> #ifdef ALT_BITSTREAM_READER_LE
> @@ -272,19 +281,23 @@ static inline unsigned int get_bits1(GetBitContext *s){
> return result;
> }
>
> -static inline unsigned int show_bits1(GetBitContext *s){
> +static inline unsigned int show_bits1(GetBitContext *s)
> +{
> return show_bits(s, 1);
> }
>
> -static inline void skip_bits1(GetBitContext *s){
> +static inline void skip_bits1(GetBitContext *s)
> +{
> skip_bits(s, 1);
> }
>
> /**
> * Read 0-32 bits.
> */
> -static inline unsigned int get_bits_long(GetBitContext *s, int n){
> - if (n <= MIN_CACHE_BITS) return get_bits(s, n);
> +static inline unsigned int get_bits_long(GetBitContext *s, int n)
> +{
> + if (n <= MIN_CACHE_BITS)
> + return get_bits(s, n);
> else {
> #ifdef ALT_BITSTREAM_READER_LE
> int ret = get_bits(s, 16);
> @@ -299,15 +312,18 @@ static inline unsigned int get_bits_long(GetBitContext
> *s, int n){
> /**
> * Read 0-32 bits as a signed integer.
> */
> -static inline int get_sbits_long(GetBitContext *s, int n) {
> +static inline int get_sbits_long(GetBitContext *s, int n)
> +{
> return sign_extend(get_bits_long(s, n), n);
> }
>
> /**
> * Show 0-32 bits.
> */
> -static inline unsigned int show_bits_long(GetBitContext *s, int n){
> - if (n <= MIN_CACHE_BITS) return show_bits(s, n);
> +static inline unsigned int show_bits_long(GetBitContext *s, int n)
> +{
> + if (n <= MIN_CACHE_BITS)
> + return show_bits(s, n);
> else {
> GetBitContext gb = *s;
> return get_bits_long(&gb, n);
> @@ -332,8 +348,8 @@ static inline int check_marker(GetBitContext *s, const
> char *msg)
> * While GetBitContext stores the buffer size, for performance reasons you
> are
> * responsible for checking for the buffer end yourself (take advantage of
> the padding)!
> */
> -static inline void init_get_bits(GetBitContext *s,
> - const uint8_t *buffer, int bit_size)
> +static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer,
> + int bit_size)
> {
> int buffer_size = (bit_size+7)>>3;
> if (buffer_size < 0 || bit_size < 0) {
> @@ -387,7 +403,8 @@ void free_vlc(VLC *vlc);
> * If the vlc code is invalid and max_depth>1, then the number of bits
> removed
> * is undefined.
> */
> -#define GET_VLC(code, name, gb, table, bits, max_depth) do { \
> +#define GET_VLC(code, name, gb, table, bits, max_depth) \
> + do { \
> int n, nb_bits; \
> unsigned int index; \
> \
> @@ -418,7 +435,8 @@ void free_vlc(VLC *vlc);
> SKIP_BITS(name, gb, n); \
> } while (0)
>
> -#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth,
> need_update) do { \
> +#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth,
> need_update) \
> + do { \
> int n, nb_bits; \
> unsigned int index; \
> \
> @@ -452,7 +470,7 @@ void free_vlc(VLC *vlc);
> * = (max_vlc_length + bits - 1) / bits
> */
> static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE (*table)[2],
> - int bits, int max_depth)
> + int bits, int max_depth)
> {
> int code;
>
> @@ -465,7 +483,8 @@ static av_always_inline int get_vlc2(GetBitContext *s,
> VLC_TYPE (*table)[2],
> return code;
> }
>
> -static inline int decode012(GetBitContext *gb){
> +static inline int decode012(GetBitContext *gb)
> +{
> int n;
> n = get_bits1(gb);
> if (n == 0)
> @@ -474,7 +493,8 @@ static inline int decode012(GetBitContext *gb){
> return get_bits1(gb) + 1;
> }
>
> -static inline int decode210(GetBitContext *gb){
> +static inline int decode210(GetBitContext *gb)
> +{
> if (get_bits1(gb))
> return 0;
> else
> @@ -489,7 +509,8 @@ static inline int get_bits_left(GetBitContext *gb)
> //#define TRACE
>
> #ifdef TRACE
> -static inline void print_bin(int bits, int n){
> +static inline void print_bin(int bits, int n)
> +{
> int i;
>
> for (i = n-1; i >= 0; i--) {
> @@ -500,7 +521,8 @@ static inline void print_bin(int bits, int n){
> }
>
> static inline int get_bits_trace(GetBitContext *s, int n, char *file,
> - const char *func, int line){
> + const char *func, int line)
> +{
> int r = get_bits(s, n);
>
> print_bin(r, n);
> @@ -510,7 +532,8 @@ static inline int get_bits_trace(GetBitContext *s, int n,
> char *file,
> }
> static inline int get_vlc_trace(GetBitContext *s, VLC_TYPE (*table)[2],
> int bits, int max_depth, char *file,
> - const char *func, int line){
> + const char *func, int line)
> +{
> int show = show_bits(s, 24);
> int pos = get_bits_count(s);
> int r = get_vlc2(s, table, bits, max_depth);
> @@ -524,7 +547,8 @@ static inline int get_vlc_trace(GetBitContext *s,
> VLC_TYPE (*table)[2],
> return r;
> }
> static inline int get_xbits_trace(GetBitContext *s, int n, char *file,
> - const char *func, int line){
> + const char *func, int line)
> +{
> int show = show_bits(s, n);
> int r = get_xbits(s, n);
ok
Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel