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

github.com/xiph/speex.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>2003-05-31 10:00:07 +0400
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>2003-05-31 10:00:07 +0400
commit68370245b135b48dbc200c22c298b0239d8bc701 (patch)
tree962fc9e1b165767f54926c7bf53802e0122dbd12
parentf1858ef2fbdd814ea84f50ac5576bb216f720955 (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.c8
-rw-r--r--libspeex/speex_bits.h7
-rw-r--r--src/speexdec.c2
-rw-r--r--src/speexenc.c1
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;