mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
2nd try of skip_bits_long() for the ALT reader
1st try for the LIBMPEG2 reader simplify init_get_bits() Originally committed as revision 6097 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
a42ec9f484
commit
6e4703cac7
@ -446,7 +446,7 @@ static inline int get_bits_count(GetBitContext *s){
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void skip_bits_long(GetBitContext *s, int n){
|
static inline void skip_bits_long(GetBitContext *s, int n){
|
||||||
s->index + n;
|
s->index += n;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined LIBMPEG2_BITSTREAM_READER
|
#elif defined LIBMPEG2_BITSTREAM_READER
|
||||||
@ -512,6 +512,16 @@ static inline int get_bits_count(GetBitContext *s){
|
|||||||
return (s->buffer_ptr - s->buffer)*8 - 16 + s->bit_count;
|
return (s->buffer_ptr - s->buffer)*8 - 16 + s->bit_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void skip_bits_long(GetBitContext *s, int n){
|
||||||
|
OPEN_READER(re, s)
|
||||||
|
re_bit_count += n;
|
||||||
|
re_buffer_ptr += 2*(re_bit_count>>4);
|
||||||
|
re_bit_count &= 15;
|
||||||
|
re_cache = ((re_buffer_ptr[-2]<<8) + re_buffer_ptr[-1]) << (16+re_bit_count);
|
||||||
|
UPDATE_CACHE(re, s)
|
||||||
|
CLOSE_READER(re, s)
|
||||||
|
}
|
||||||
|
|
||||||
#elif defined A32_BITSTREAM_READER
|
#elif defined A32_BITSTREAM_READER
|
||||||
|
|
||||||
# define MIN_CACHE_BITS 32
|
# define MIN_CACHE_BITS 32
|
||||||
@ -706,25 +716,9 @@ static inline void init_get_bits(GetBitContext *s,
|
|||||||
#ifdef ALT_BITSTREAM_READER
|
#ifdef ALT_BITSTREAM_READER
|
||||||
s->index=0;
|
s->index=0;
|
||||||
#elif defined LIBMPEG2_BITSTREAM_READER
|
#elif defined LIBMPEG2_BITSTREAM_READER
|
||||||
#ifdef LIBMPEG2_BITSTREAM_READER_HACK
|
s->buffer_ptr = (uint8_t*)((intptr_t)buffer&(~1));
|
||||||
if ((int)buffer&1) {
|
s->bit_count = 16 + 8*((intptr_t)buffer&1);
|
||||||
/* word alignment */
|
skip_bits_long(s, 0);
|
||||||
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;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
OPEN_READER(re, s)
|
|
||||||
UPDATE_CACHE(re, s)
|
|
||||||
UPDATE_CACHE(re, s)
|
|
||||||
CLOSE_READER(re, s)
|
|
||||||
}
|
|
||||||
#elif defined A32_BITSTREAM_READER
|
#elif defined A32_BITSTREAM_READER
|
||||||
s->buffer_ptr = (uint32_t*)((intptr_t)buffer&(~3));
|
s->buffer_ptr = (uint32_t*)((intptr_t)buffer&(~3));
|
||||||
s->bit_count = 32 + 8*((intptr_t)buffer&3);
|
s->bit_count = 32 + 8*((intptr_t)buffer&3);
|
||||||
|
Loading…
Reference in New Issue
Block a user