summaryrefslogtreecommitdiff
path: root/src/libfaad/bits.h
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2004-01-26 22:34:10 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2004-01-26 22:34:10 +0000
commit925b8c0c8c8d5641ec7865d102fc4a813a0940c4 (patch)
tree41b9798a788990135ae2876c426d5b88428999d8 /src/libfaad/bits.h
parent229558581183265e40767066db5b6aa99c8818b1 (diff)
downloadxine-lib-925b8c0c8c8d5641ec7865d102fc4a813a0940c4.tar.gz
xine-lib-925b8c0c8c8d5641ec7865d102fc4a813a0940c4.tar.bz2
Sync with libfaad CVS
CVS patchset: 6071 CVS date: 2004/01/26 22:34:10
Diffstat (limited to 'src/libfaad/bits.h')
-rw-r--r--src/libfaad/bits.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/libfaad/bits.h b/src/libfaad/bits.h
index 18f1c2a3f..7c1080967 100644
--- a/src/libfaad/bits.h
+++ b/src/libfaad/bits.h
@@ -22,7 +22,7 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
-** $Id: bits.h,v 1.6 2004/01/11 15:44:04 mroi Exp $
+** $Id: bits.h,v 1.7 2004/01/26 22:34:10 jstembridge Exp $
**/
#ifndef __BITS_H__
@@ -71,6 +71,8 @@ static uint32_t bitmask[] = {
0x1FFFF, 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF,
0x7FFFFF, 0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF,
0xFFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF
+ /* added bitmask 32, correct?!?!?! */
+ , 0xFFFFFFFF
};
void faad_initbits(bitfile *ld, const void *buffer, const uint32_t buffer_size);
@@ -83,6 +85,10 @@ void faad_flushbits_ex(bitfile *ld, uint32_t bits);
void faad_rewindbits(bitfile *ld);
uint8_t *faad_getbitbuffer(bitfile *ld, uint32_t bits
DEBUGDEC);
+#ifdef DRM
+void *faad_origbitbuffer(bitfile *ld);
+uint32_t faad_origbitbuffer_size(bitfile *ld);
+#endif
/* circumvent memory alignment errors on ARM */
static INLINE uint32_t getdword(void *mem)
@@ -160,12 +166,20 @@ static INLINE uint8_t faad_get1bit(bitfile *ld DEBUGDEC)
{
uint8_t r;
- if (ld->bits_left == 0)
- return (uint8_t)faad_getbits(ld, 1 DEBUGVAR(print,var,dbg));
-
- ld->bits_left--;
- r = (uint8_t)((ld->bufa >> ld->bits_left) & 1);
+ if (ld->bits_left > 0)
+ {
+ ld->bits_left--;
+ r = (uint8_t)((ld->bufa >> ld->bits_left) & 1);
+ return r;
+ }
+ /* bits_left == 0 */
+#if 0
+ r = (uint8_t)(ld->bufb >> 31);
+ faad_flushbits_ex(ld, 1);
+#else
+ r = (uint8_t)faad_getbits(ld, 1);
+#endif
return r;
}