summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_dec/libvdpau/bits_reader.h41
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;
+}