diff options
author | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2010-07-18 17:42:05 +0400 |
---|---|---|
committer | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2010-07-18 17:42:05 +0400 |
commit | 9d785afb677256b26c5c51ad08e5b321f9ec7640 (patch) | |
tree | 4ceade2cbe3355c83f336703fa883a0594050134 /libcelt/entenc.c | |
parent | 8952c45ea54a5608cd61fe2e137e39d0c3b19853 (diff) |
Encoder now has a way to check whether an error has occurred
Diffstat (limited to 'libcelt/entenc.c')
-rw-r--r-- | libcelt/entenc.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libcelt/entenc.c b/libcelt/entenc.c index 9ae9fc6..ce04350 100644 --- a/libcelt/entenc.c +++ b/libcelt/entenc.c @@ -49,21 +49,25 @@ void ec_byte_shrink(ec_byte_buffer *_b, long _size){ _b->storage=_size; } -void ec_byte_write1(ec_byte_buffer *_b,unsigned _value){ +int ec_byte_write1(ec_byte_buffer *_b,unsigned _value){ ptrdiff_t endbyte; endbyte=_b->ptr-_b->buf; if(endbyte>=_b->storage){ - celt_fatal("range encoder overflow\n"); + return 1; + } else { + *(_b->ptr++)=(unsigned char)_value; + return 0; } - *(_b->ptr++)=(unsigned char)_value; } -void ec_byte_write_at_end(ec_byte_buffer *_b,unsigned _value){ +int ec_byte_write_at_end(ec_byte_buffer *_b,unsigned _value){ if (_b->end_ptr < _b->ptr) { - celt_fatal("byte buffer collision"); + return 1; + } else { + *(_b->end_ptr--)=(unsigned char)_value; + return 0; } - *(_b->end_ptr--)=(unsigned char)_value; } |