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

github.com/mumble-voip/speex.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>2002-03-27 06:40:32 +0300
committerjmvalin <jmvalin@0101bb08-14d6-0310-b084-bc0e0c8e3800>2002-03-27 06:40:32 +0300
commit05b7bed82809ce142dba07a00c77a584e9388dfe (patch)
treec9432751ca0fee55e45f686462e4c74c0ea62400 /libspeex
parent251630f15692164cd1d1c32620c807612ca5f419 (diff)
Don't fill the last byte in the frame before saving (saves a couple bits
per frame). git-svn-id: http://svn.xiph.org/trunk/speex@3191 0101bb08-14d6-0310-b084-bc0e0c8e3800
Diffstat (limited to 'libspeex')
-rw-r--r--libspeex/bits.c15
-rw-r--r--libspeex/bits.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/libspeex/bits.c b/libspeex/bits.c
index 42636d3..ab24c72 100644
--- a/libspeex/bits.c
+++ b/libspeex/bits.c
@@ -79,6 +79,21 @@ int frame_bits_write(FrameBits *bits, char *bytes, int max_len)
return max_len;
}
+int frame_bits_write_whole_bytes(FrameBits *bits, char *bytes, int max_len)
+{
+ int i;
+ if (max_len > ((bits->nbBits)>>3))
+ max_len = ((bits->nbBits)>>3);
+ for (i=0;i<max_len;i++)
+ bytes[i]=bits->bytes[i];
+
+ bits->bytes[0]=bits->bytes[max_len];
+ bits->bytePtr=0;
+ bits->nbBits-=((bits->nbBits)>>3)<<3;
+ return max_len;
+}
+
+
void frame_bits_pack(FrameBits *bits, int data, int nbBits)
{
unsigned int d=data;
diff --git a/libspeex/bits.h b/libspeex/bits.h
index c5ed0bf..259ddc3 100644
--- a/libspeex/bits.h
+++ b/libspeex/bits.h
@@ -43,6 +43,8 @@ void frame_bits_init_from(FrameBits *bits, char *bytes, int len);
int frame_bits_write(FrameBits *bits, char *bytes, int max_len);
+int frame_bits_write_whole_bytes(FrameBits *bits, char *bytes, int max_len);
+
void frame_bits_pack(FrameBits *bits, int data, int nbBits);
int frame_bits_unpack_signed(FrameBits *bits, int nbBits);