Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2010-07-18 17:42:05 +0400
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2010-07-18 17:42:05 +0400
commit9d785afb677256b26c5c51ad08e5b321f9ec7640 (patch)
tree4ceade2cbe3355c83f336703fa883a0594050134 /libcelt/entenc.c
parent8952c45ea54a5608cd61fe2e137e39d0c3b19853 (diff)
Encoder now has a way to check whether an error has occurred
Diffstat (limited to 'libcelt/entenc.c')
-rw-r--r--libcelt/entenc.c16
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;
}