summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/bits.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libfaad/bits.h')
-rw-r--r--apps/codecs/libfaad/bits.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/apps/codecs/libfaad/bits.h b/apps/codecs/libfaad/bits.h
index 0cdc2e6899..c5540a07d0 100644
--- a/apps/codecs/libfaad/bits.h
+++ b/apps/codecs/libfaad/bits.h
@@ -77,7 +77,6 @@ void faad_initbits_rev(bitfile *ld, void *buffer,
77 uint32_t bits_in_buffer); 77 uint32_t bits_in_buffer);
78uint8_t faad_byte_align(bitfile *ld); 78uint8_t faad_byte_align(bitfile *ld);
79uint32_t faad_get_processed_bits(bitfile *ld); 79uint32_t faad_get_processed_bits(bitfile *ld);
80INLINE void faad_flushbits_ex(bitfile *ld, uint32_t bits);
81void faad_rewindbits(bitfile *ld); 80void faad_rewindbits(bitfile *ld);
82uint8_t *faad_getbitbuffer(bitfile *ld, uint32_t bits 81uint8_t *faad_getbitbuffer(bitfile *ld, uint32_t bits
83 DEBUGDEC); 82 DEBUGDEC);
@@ -95,6 +94,27 @@ static INLINE uint32_t getdword(void *mem)
95#endif 94#endif
96} 95}
97 96
97static INLINE void faad_flushbits_ex(bitfile *ld, uint32_t bits)
98{
99 uint32_t tmp;
100
101 ld->bufa = ld->bufb;
102 if (ld->no_more_reading == 0)
103 {
104 tmp = getdword(ld->tail);
105 ld->tail++;
106 } else {
107 tmp = 0;
108 }
109 ld->bufb = tmp;
110 ld->bits_left += (32 - bits);
111 ld->bytes_used += 4;
112 if (ld->bytes_used == ld->buffer_size)
113 ld->no_more_reading = 1;
114 if (ld->bytes_used > ld->buffer_size)
115 ld->error = 1;
116}
117
98static INLINE uint32_t faad_showbits(bitfile *ld, uint32_t bits) 118static INLINE uint32_t faad_showbits(bitfile *ld, uint32_t bits)
99{ 119{
100 if (bits <= ld->bits_left) 120 if (bits <= ld->bits_left)