diff options
author | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2003-05-31 10:00:07 +0400 |
---|---|---|
committer | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2003-05-31 10:00:07 +0400 |
commit | 68370245b135b48dbc200c22c298b0239d8bc701 (patch) | |
tree | 962fc9e1b165767f54926c7bf53802e0122dbd12 | |
parent | f1858ef2fbdd814ea84f50ac5576bb216f720955 (diff) |
merged from trunk (speex_bits_insert_terminator)
git-svn-id: http://svn.xiph.org/branches/rel-1-0-branch/speex@4852 0101bb08-14d6-0310-b084-bc0e0c8e3800
-rw-r--r-- | libspeex/bits.c | 8 | ||||
-rw-r--r-- | libspeex/speex_bits.h | 7 | ||||
-rw-r--r-- | src/speexdec.c | 2 | ||||
-rw-r--r-- | src/speexenc.c | 1 |
4 files changed, 17 insertions, 1 deletions
diff --git a/libspeex/bits.c b/libspeex/bits.c index a5c4d47..68285e0 100644 --- a/libspeex/bits.c +++ b/libspeex/bits.c @@ -342,3 +342,11 @@ int speex_bits_nbytes(SpeexBits *bits) { return ((bits->nbBits+7)>>3); } + +void speex_bits_insert_terminator(SpeexBits *bits) +{ + if (bits->bitPtr<7) + speex_bits_pack(bits, 0, 1); + while (bits->bitPtr<7) + speex_bits_pack(bits, 1, 1); +} diff --git a/libspeex/speex_bits.h b/libspeex/speex_bits.h index 9972381..b41fdad 100644 --- a/libspeex/speex_bits.h +++ b/libspeex/speex_bits.h @@ -140,6 +140,13 @@ void speex_bits_advance(SpeexBits *bits, int n); */ int speex_bits_remaining(SpeexBits *bits); +/** Insert a terminator so that the data can be sent as a packet while auto-detecting + * the number of frames in each packet + * + * @param bits Bit-stream to operate on + */ +void speex_bits_insert_terminator(SpeexBits *bits); + #ifdef __cplusplus } #endif diff --git a/src/speexdec.c b/src/speexdec.c index deca3e1..1afd6a0 100644 --- a/src/speexdec.c +++ b/src/speexdec.c @@ -571,7 +571,7 @@ int main(int argc, char **argv) /*Copy Ogg packet to Speex bitstream*/ speex_bits_read_from(&bits, (char*)op.packet, op.bytes); - for (j=0;j<nframes;j++) + for (j=0;j!=nframes;j++) { int ret; /*Decode frame*/ diff --git a/src/speexenc.c b/src/speexenc.c index d8d3f44..6c6deeb 100644 --- a/src/speexenc.c +++ b/src/speexenc.c @@ -672,6 +672,7 @@ int main(int argc, char **argv) if ((id+1)%nframes!=0) continue; + speex_bits_insert_terminator(&bits); nbBytes = speex_bits_write(&bits, cbits, MAX_FRAME_BYTES); speex_bits_reset(&bits); op.packet = (unsigned char *)cbits; |