diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-04-27 17:07:35 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2012-04-27 17:07:35 +0300 |
commit | a633f9ab084afaeb6f37c28bf7d175da7c635ff1 (patch) | |
tree | 898ecd96108da7860cf8240a3176bc89db813586 /src | |
parent | a16165a6b7afbfa045c2cf98e0e81b9091a9f719 (diff) | |
download | xine-lib-a633f9ab084afaeb6f37c28bf7d175da7c635ff1.tar.gz xine-lib-a633f9ab084afaeb6f37c28bf7d175da7c635ff1.tar.bz2 |
Factorized duplicate code
Diffstat (limited to 'src')
-rw-r--r-- | src/video_dec/libvdpau/bits_reader.h | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/src/video_dec/libvdpau/bits_reader.h b/src/video_dec/libvdpau/bits_reader.h index 9cf232288..9c7ea282a 100644 --- a/src/video_dec/libvdpau/bits_reader.h +++ b/src/video_dec/libvdpau/bits_reader.h @@ -40,34 +40,6 @@ static void bits_reader_set( bits_reader_t *br, uint8_t *buf, int len ) -static uint32_t read_bits( bits_reader_t *br, int nbits ) -{ - int i, nbytes; - uint32_t ret = 0; - uint8_t *buf; - - buf = br->buffer; - nbytes = (br->offbits + nbits)/8; - if ( ((br->offbits + nbits) %8 ) > 0 ) - nbytes++; - if ( (buf + nbytes) > (br->start + br->length) ) { - br->oflow = 1; - return 0; - } - for ( i=0; i<nbytes; i++ ) - ret += buf[i]<<((nbytes-i-1)*8); - i = (4-nbytes)*8+br->offbits; - ret = ((ret<<i)>>i)>>((nbytes*8)-nbits-br->offbits); - - br->offbits += nbits; - br->buffer += br->offbits / 8; - br->offbits %= 8; - - return ret; -} - - - static void skip_bits( bits_reader_t *br, int nbits ) { br->offbits += nbits; @@ -101,3 +73,16 @@ static uint32_t get_bits( bits_reader_t *br, int nbits ) return ret; } + + + +static uint32_t read_bits( bits_reader_t *br, int nbits ) +{ + uint32_t ret = get_bits(br, nbits); + + br->offbits += nbits; + br->buffer += br->offbits / 8; + br->offbits %= 8; + + return ret; +} |