remove unnecesary typedef in bitwriter.c
This commit is contained in:
parent
5de949f417
commit
d30fe60fc6
@ -43,12 +43,11 @@
|
|||||||
|
|
||||||
/* Things should be fastest when this matches the machine word size */
|
/* Things should be fastest when this matches the machine word size */
|
||||||
/* WATCHOUT: if you change this you must also change the following #defines down to SWAP_BE_WORD_TO_HOST below to match */
|
/* WATCHOUT: if you change this you must also change the following #defines down to SWAP_BE_WORD_TO_HOST below to match */
|
||||||
/* WATCHOUT: there are a few places where the code will not work unless bwword is >= 32 bits wide */
|
/* WATCHOUT: there are a few places where the code will not work unless uint32_t is >= 32 bits wide */
|
||||||
typedef FLAC__uint32 bwword;
|
|
||||||
#define FLAC__BYTES_PER_WORD 4
|
#define FLAC__BYTES_PER_WORD 4
|
||||||
#define FLAC__BITS_PER_WORD 32
|
#define FLAC__BITS_PER_WORD 32
|
||||||
#define FLAC__WORD_ALL_ONES ((FLAC__uint32)0xffffffff)
|
#define FLAC__WORD_ALL_ONES ((FLAC__uint32)0xffffffff)
|
||||||
/* SWAP_BE_WORD_TO_HOST swaps bytes in a bwword (which is always big-endian) if necessary to match host byte order */
|
/* SWAP_BE_WORD_TO_HOST swaps bytes in a uint32_t (which is always big-endian) if necessary to match host byte order */
|
||||||
#if WORDS_BIGENDIAN
|
#if WORDS_BIGENDIAN
|
||||||
#define SWAP_BE_WORD_TO_HOST(x) (x)
|
#define SWAP_BE_WORD_TO_HOST(x) (x)
|
||||||
#else
|
#else
|
||||||
@ -61,9 +60,9 @@ typedef FLAC__uint32 bwword;
|
|||||||
* a frame or metadata block, then write that out and clear the buffer for the
|
* a frame or metadata block, then write that out and clear the buffer for the
|
||||||
* next one.
|
* next one.
|
||||||
*/
|
*/
|
||||||
static const unsigned FLAC__BITWRITER_DEFAULT_CAPACITY = 32768u / sizeof(bwword); /* size in words */
|
static const unsigned FLAC__BITWRITER_DEFAULT_CAPACITY = 32768u / sizeof(uint32_t); /* size in words */
|
||||||
/* When growing, increment 4K at a time */
|
/* When growing, increment 4K at a time */
|
||||||
static const unsigned FLAC__BITWRITER_DEFAULT_INCREMENT = 4096u / sizeof(bwword); /* size in words */
|
static const unsigned FLAC__BITWRITER_DEFAULT_INCREMENT = 4096u / sizeof(uint32_t); /* size in words */
|
||||||
|
|
||||||
#define FLAC__WORDS_TO_BITS(words) ((words) * FLAC__BITS_PER_WORD)
|
#define FLAC__WORDS_TO_BITS(words) ((words) * FLAC__BITS_PER_WORD)
|
||||||
#define FLAC__TOTAL_BITS(bw) (FLAC__WORDS_TO_BITS((bw)->words) + (bw)->bits)
|
#define FLAC__TOTAL_BITS(bw) (FLAC__WORDS_TO_BITS((bw)->words) + (bw)->bits)
|
||||||
@ -85,8 +84,8 @@ static const unsigned FLAC__BITWRITER_DEFAULT_INCREMENT = 4096u / sizeof(bwword)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct FLAC__BitWriter {
|
struct FLAC__BitWriter {
|
||||||
bwword *buffer;
|
uint32_t *buffer;
|
||||||
bwword accum; /* accumulator; bits are right-justified; when full, accum is appended to buffer */
|
uint32_t accum; /* accumulator; bits are right-justified; when full, accum is appended to buffer */
|
||||||
unsigned capacity; /* capacity of buffer in words */
|
unsigned capacity; /* capacity of buffer in words */
|
||||||
unsigned words; /* # of complete words in buffer */
|
unsigned words; /* # of complete words in buffer */
|
||||||
unsigned bits; /* # of used bits in accum */
|
unsigned bits; /* # of used bits in accum */
|
||||||
@ -96,7 +95,7 @@ struct FLAC__BitWriter {
|
|||||||
static FLAC__bool bitwriter_grow_(FLAC__BitWriter *bw, unsigned bits_to_add)
|
static FLAC__bool bitwriter_grow_(FLAC__BitWriter *bw, unsigned bits_to_add)
|
||||||
{
|
{
|
||||||
unsigned new_capacity;
|
unsigned new_capacity;
|
||||||
bwword *new_buffer;
|
uint32_t *new_buffer;
|
||||||
|
|
||||||
FLAC__ASSERT(0 != bw);
|
FLAC__ASSERT(0 != bw);
|
||||||
FLAC__ASSERT(0 != bw->buffer);
|
FLAC__ASSERT(0 != bw->buffer);
|
||||||
@ -118,7 +117,7 @@ static FLAC__bool bitwriter_grow_(FLAC__BitWriter *bw, unsigned bits_to_add)
|
|||||||
FLAC__ASSERT(new_capacity > bw->capacity);
|
FLAC__ASSERT(new_capacity > bw->capacity);
|
||||||
FLAC__ASSERT(new_capacity >= bw->words + ((bw->bits + bits_to_add + FLAC__BITS_PER_WORD - 1) / FLAC__BITS_PER_WORD));
|
FLAC__ASSERT(new_capacity >= bw->words + ((bw->bits + bits_to_add + FLAC__BITS_PER_WORD - 1) / FLAC__BITS_PER_WORD));
|
||||||
|
|
||||||
new_buffer = safe_realloc_mul_2op_(bw->buffer, sizeof(bwword), /*times*/new_capacity);
|
new_buffer = safe_realloc_mul_2op_(bw->buffer, sizeof(uint32_t), /*times*/new_capacity);
|
||||||
if(new_buffer == 0)
|
if(new_buffer == 0)
|
||||||
return false;
|
return false;
|
||||||
bw->buffer = new_buffer;
|
bw->buffer = new_buffer;
|
||||||
@ -160,7 +159,7 @@ FLAC__bool FLAC__bitwriter_init(FLAC__BitWriter *bw)
|
|||||||
|
|
||||||
bw->words = bw->bits = 0;
|
bw->words = bw->bits = 0;
|
||||||
bw->capacity = FLAC__BITWRITER_DEFAULT_CAPACITY;
|
bw->capacity = FLAC__BITWRITER_DEFAULT_CAPACITY;
|
||||||
bw->buffer = malloc(sizeof(bwword) * bw->capacity);
|
bw->buffer = malloc(sizeof(uint32_t) * bw->capacity);
|
||||||
if(bw->buffer == 0)
|
if(bw->buffer == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -525,7 +524,7 @@ FLAC__bool FLAC__bitwriter_write_rice_signed_block(FLAC__BitWriter *bw, const FL
|
|||||||
|
|
||||||
FLAC__ASSERT(0 != bw);
|
FLAC__ASSERT(0 != bw);
|
||||||
FLAC__ASSERT(0 != bw->buffer);
|
FLAC__ASSERT(0 != bw->buffer);
|
||||||
FLAC__ASSERT(parameter < 8*sizeof(bwword)-1);
|
FLAC__ASSERT(parameter < 8*sizeof(uint32_t)-1);
|
||||||
/* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
|
/* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
|
||||||
FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
|
FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
|
||||||
|
|
||||||
@ -536,8 +535,8 @@ FLAC__bool FLAC__bitwriter_write_rice_signed_block(FLAC__BitWriter *bw, const FL
|
|||||||
msbits = uval >> parameter;
|
msbits = uval >> parameter;
|
||||||
|
|
||||||
#if 0 /* OPT: can remove this special case if it doesn't make up for the extra compare (doesn't make a statistically significant difference with msvc or gcc/x86) */
|
#if 0 /* OPT: can remove this special case if it doesn't make up for the extra compare (doesn't make a statistically significant difference with msvc or gcc/x86) */
|
||||||
if(bw->bits && bw->bits + msbits + lsbits <= FLAC__BITS_PER_WORD) { /* i.e. if the whole thing fits in the current bwword */
|
if(bw->bits && bw->bits + msbits + lsbits <= FLAC__BITS_PER_WORD) { /* i.e. if the whole thing fits in the current uint32_t */
|
||||||
/* ^^^ if bw->bits is 0 then we may have filled the buffer and have no free bwword to work in */
|
/* ^^^ if bw->bits is 0 then we may have filled the buffer and have no free uint32_t to work in */
|
||||||
bw->bits = bw->bits + msbits + lsbits;
|
bw->bits = bw->bits + msbits + lsbits;
|
||||||
uval |= mask1; /* set stop bit */
|
uval |= mask1; /* set stop bit */
|
||||||
uval &= mask2; /* mask off unused top bits */
|
uval &= mask2; /* mask off unused top bits */
|
||||||
@ -557,8 +556,8 @@ FLAC__bool FLAC__bitwriter_write_rice_signed_block(FLAC__BitWriter *bw, const FL
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#elif 1 /*@@@@@@ OPT: try this version with MSVC6 to see if better, not much difference for gcc-4 */
|
#elif 1 /*@@@@@@ OPT: try this version with MSVC6 to see if better, not much difference for gcc-4 */
|
||||||
if(bw->bits && bw->bits + msbits + lsbits < FLAC__BITS_PER_WORD) { /* i.e. if the whole thing fits in the current bwword */
|
if(bw->bits && bw->bits + msbits + lsbits < FLAC__BITS_PER_WORD) { /* i.e. if the whole thing fits in the current uint32_t */
|
||||||
/* ^^^ if bw->bits is 0 then we may have filled the buffer and have no free bwword to work in */
|
/* ^^^ if bw->bits is 0 then we may have filled the buffer and have no free uint32_t to work in */
|
||||||
bw->bits = bw->bits + msbits + lsbits;
|
bw->bits = bw->bits + msbits + lsbits;
|
||||||
uval |= mask1; /* set stop bit */
|
uval |= mask1; /* set stop bit */
|
||||||
uval &= mask2; /* mask off unused top bits */
|
uval &= mask2; /* mask off unused top bits */
|
||||||
@ -569,7 +568,7 @@ FLAC__bool FLAC__bitwriter_write_rice_signed_block(FLAC__BitWriter *bw, const FL
|
|||||||
#endif
|
#endif
|
||||||
/* slightly pessimistic size check but faster than "<= bw->words + (bw->bits+msbits+lsbits+FLAC__BITS_PER_WORD-1)/FLAC__BITS_PER_WORD" */
|
/* slightly pessimistic size check but faster than "<= bw->words + (bw->bits+msbits+lsbits+FLAC__BITS_PER_WORD-1)/FLAC__BITS_PER_WORD" */
|
||||||
/* OPT: pessimism may cause flurry of false calls to grow_ which eat up all savings before it */
|
/* OPT: pessimism may cause flurry of false calls to grow_ which eat up all savings before it */
|
||||||
if(bw->capacity <= bw->words + bw->bits + msbits + 1/*lsbits always fit in 1 bwword*/ && !bitwriter_grow_(bw, msbits+lsbits))
|
if(bw->capacity <= bw->words + bw->bits + msbits + 1/*lsbits always fit in 1 uint32_t*/ && !bitwriter_grow_(bw, msbits+lsbits))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if(msbits) {
|
if(msbits) {
|
||||||
|
Loading…
Reference in New Issue
Block a user