diff options
author | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2003-08-23 01:45:02 +0400 |
---|---|---|
committer | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2003-08-23 01:45:02 +0400 |
commit | 9c4e4a948c3c10f3c9f1d905fccefcf4b00775ca (patch) | |
tree | 6f95534dfe10f74310b4899063940b2db3aa2d51 | |
parent | bd2d2cb9b4147754ca90e40dec61efd8583e2918 (diff) |
speex_bits_write now properly inserts a terminator before copying the data
git-svn-id: http://svn.xiph.org/branches/rel-1-0-branch/speex@5237 0101bb08-14d6-0310-b084-bc0e0c8e3800
-rw-r--r-- | libspeex/bits.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libspeex/bits.c b/libspeex/bits.c index 68285e0..65555e3 100644 --- a/libspeex/bits.c +++ b/libspeex/bits.c @@ -166,6 +166,17 @@ void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len) int speex_bits_write(SpeexBits *bits, char *bytes, int max_len) { int i; + char bytePtr, bitPtr, nbBits; + + /* Insert terminator, but save the data so we can put it back after */ + bitPtr=bits->bitPtr; + bytePtr=bits->bytePtr; + nbBits=bits->nbBits; + speex_bits_insert_terminator(bits); + bits->bitPtr=bitPtr; + bits->bytePtr=bytePtr; + bits->nbBits=nbBits; + if (max_len > ((bits->nbBits+7)>>3)) max_len = ((bits->nbBits+7)>>3); for (i=0;i<max_len;i++) |