Setting fine_priority for skipped bands
[opus.git] / libcelt / entdec.h
index d672d88..7d3046d 100644 (file)
@@ -56,6 +56,8 @@ struct ec_dec{
    /*Number of valid bits in end_byte*/
    int             end_bits_left;
    int             nb_end_bits;
    /*Number of valid bits in end_byte*/
    int             end_bits_left;
    int             nb_end_bits;
+   /*Nonzero if an error occurred*/
+   int             error;
 };
 
 
 };
 
 
@@ -78,7 +80,6 @@ void ec_dec_init(ec_dec *_this,ec_byte_buffer *_buf);
            will fall in the range [fl,fh).*/
 unsigned ec_decode(ec_dec *_this,unsigned _ft);
 unsigned ec_decode_bin(ec_dec *_this,unsigned _bits);
            will fall in the range [fl,fh).*/
 unsigned ec_decode(ec_dec *_this,unsigned _ft);
 unsigned ec_decode_bin(ec_dec *_this,unsigned _bits);
-unsigned ec_decode_raw(ec_dec *_this,unsigned bits);
 
 /*Advance the decoder past the next symbol using the frequency information the
    symbol was encoded with.
 
 /*Advance the decoder past the next symbol using the frequency information the
    symbol was encoded with.
@@ -101,7 +102,7 @@ void ec_dec_update(ec_dec *_this,unsigned _fl,unsigned _fh,
   _ftb: The number of bits to extract.
         This must be at least one, and no more than 32.
   Return: The decoded bits.*/
   _ftb: The number of bits to extract.
         This must be at least one, and no more than 32.
   Return: The decoded bits.*/
-ec_uint32 ec_dec_bits(ec_dec *_this,int _ftb);
+ec_uint32 ec_dec_bits(ec_dec *_this,unsigned _ftb);
 /*Extracts a raw unsigned integer with a non-power-of-2 range from the stream.
   The bits must have been encoded with ec_enc_uint().
   No call to ec_dec_update() is necessary after this call.
 /*Extracts a raw unsigned integer with a non-power-of-2 range from the stream.
   The bits must have been encoded with ec_enc_uint().
   No call to ec_dec_update() is necessary after this call.
@@ -121,6 +122,9 @@ int ec_dec_bit_prob(ec_dec *_this,unsigned _prob);
   Return: The number of bits scaled by 2**_b.
           This will always be slightly larger than the exact value (e.g., all
            rounding error is in the positive direction).*/
   Return: The number of bits scaled by 2**_b.
           This will always be slightly larger than the exact value (e.g., all
            rounding error is in the positive direction).*/
-long ec_dec_tell(ec_dec *_this,int _b);
+ec_uint32 ec_dec_tell(ec_dec *_this,int _b);
+
+/*Returns a nonzero value if any error has been detected during decoding*/
+int ec_dec_get_error(ec_dec *_this);
 
 #endif
 
 #endif