Avoid infinte loop in read_golomb_ue()
This commit is contained in:
parent
33c91a4606
commit
ce019c896d
2 changed files with 10 additions and 1 deletions
|
@ -46,6 +46,13 @@ skip_bits(bitstream_t *bs, int num)
|
|||
bs->offset += num;
|
||||
}
|
||||
|
||||
int
|
||||
bs_eof(const bitstream_t *bs)
|
||||
{
|
||||
return bs->offset >= bs->len;
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
read_bits(bitstream_t *bs, int num)
|
||||
{
|
||||
|
@ -76,7 +83,7 @@ read_golomb_ue(bitstream_t *bs)
|
|||
{
|
||||
int b, lzb = -1;
|
||||
|
||||
for(b = 0; !b; lzb++)
|
||||
for(b = 0; !b && !bs_eof(bs); lzb++)
|
||||
b = read_bits1(bs);
|
||||
|
||||
return (1 << lzb) - 1 + read_bits(bs, lzb);
|
||||
|
|
|
@ -44,4 +44,6 @@ unsigned int remaining_bits(bitstream_t *gb);
|
|||
|
||||
void put_bits(bitstream_t *bs, int val, int num);
|
||||
|
||||
int bs_eof(const bitstream_t *bs);
|
||||
|
||||
#endif /* BITSTREAM_H_ */
|
||||
|
|
Loading…
Add table
Reference in a new issue