]> git.sesse.net Git - vlc/commitdiff
* Minor bitstream optimization.
authorChristophe Massiot <massiot@videolan.org>
Mon, 22 Jan 2001 18:04:10 +0000 (18:04 +0000)
committerChristophe Massiot <massiot@videolan.org>
Mon, 22 Jan 2001 18:04:10 +0000 (18:04 +0000)
include/input_ext-dec.h
src/input/input_ext-dec.c

index f230f4c60517955ab9b515aaa9d3a927c2a3a32b..a8d1b11e5a61122a27dcea5c8c36f2a0fc78043b 100644 (file)
@@ -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
index be42a8e7576c4384b44b81783a22510a66739bb4..48305dc4372755386f24b9a6fa629f44c6c59f4c 100644 (file)
@@ -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 )