From 0eddfe9ce0673732b6d664e76f9e91a93b8bd6a0 Mon Sep 17 00:00:00 2001 From: Christophe Massiot Date: Mon, 22 Jan 2001 18:04:10 +0000 Subject: [PATCH] * Minor bitstream optimization. --- include/input_ext-dec.h | 9 +++++---- src/input/input_ext-dec.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/input_ext-dec.h b/include/input_ext-dec.h index f230f4c605..a8d1b11e5a 100644 --- a/include/input_ext-dec.h +++ b/include/input_ext-dec.h @@ -2,7 +2,7 @@ * input_ext-dec.h: structures exported to the VideoLAN decoders ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN - * $Id: input_ext-dec.h,v 1.18 2001/01/21 01:36:25 massiot Exp $ + * $Id: input_ext-dec.h,v 1.19 2001/01/22 18:04:10 massiot Exp $ * * Authors: * @@ -312,9 +312,10 @@ static __inline__ u32 GetBits( bit_stream_t * p_bit_stream, { u32 i_result; - if( p_bit_stream->fifo.i_available >= i_bits ) + p_bit_stream->fifo.i_available -= i_bits; + + if( p_bit_stream->fifo.i_available >= 0 ) { - p_bit_stream->fifo.i_available -= i_bits; i_result = p_bit_stream->fifo.buffer >> (8 * sizeof(WORD_TYPE) - i_bits); p_bit_stream->fifo.buffer <<= i_bits; @@ -323,7 +324,6 @@ static __inline__ u32 GetBits( bit_stream_t * p_bit_stream, if( p_bit_stream->p_byte <= p_bit_stream->p_end - sizeof(WORD_TYPE) ) { - p_bit_stream->fifo.i_available -= i_bits; i_result = p_bit_stream->fifo.buffer >> (8 * sizeof(WORD_TYPE) - i_bits); p_bit_stream->fifo.buffer = WORD_AT( p_bit_stream->p_byte ); @@ -373,6 +373,7 @@ static __inline__ u32 GetBits32( bit_stream_t * p_bit_stream ) return( i_result ); } + p_bit_stream->fifo.i_available -= 32; return UnalignedGetBits( p_bit_stream, 32 ); } #else diff --git a/src/input/input_ext-dec.c b/src/input/input_ext-dec.c index be42a8e757..48305dc437 100644 --- a/src/input/input_ext-dec.c +++ b/src/input/input_ext-dec.c @@ -184,7 +184,7 @@ u32 UnalignedGetBits( bit_stream_t * p_bit_stream, unsigned int i_bits ) i_result = p_bit_stream->fifo.buffer >> (8 * sizeof(WORD_TYPE) - i_bits); - i_bits -= p_bit_stream->fifo.i_available; + i_bits = -p_bit_stream->fifo.i_available; /* Gather missing bytes. */ while( i_bits >= 8 ) -- 2.39.2