Lines 562-568
Link Here
|
562 |
* Dequantize samples (includes huffman decoding) |
562 |
* Dequantize samples (includes huffman decoding) |
563 |
*/ |
563 |
*/ |
564 |
/* 24 is enough because tab13 has max. a 19 bit huffvector */ |
564 |
/* 24 is enough because tab13 has max. a 19 bit huffvector */ |
565 |
#define BITSHIFT ((sizeof(long)-1)*8) |
565 |
#define BITSHIFT ((sizeof(int)-1)*8) |
566 |
#define REFRESH_MASK \ |
566 |
#define REFRESH_MASK \ |
567 |
while(num < BITSHIFT) { \ |
567 |
while(num < BITSHIFT) { \ |
568 |
mask |= ((unsigned long)getbyte())<<(BITSHIFT-num); \ |
568 |
mask |= ((unsigned long)getbyte())<<(BITSHIFT-num); \ |
Lines 579-585
Link Here
|
579 |
int *me; |
579 |
int *me; |
580 |
|
580 |
|
581 |
int num=getbitoffset(); |
581 |
int num=getbitoffset(); |
582 |
long mask; |
582 |
int mask; |
583 |
/* we must split this, because for num==0 the shift is undefined if you do it in one step */ |
583 |
/* we must split this, because for num==0 the shift is undefined if you do it in one step */ |
584 |
mask = ((unsigned long) getbits(num))<<BITSHIFT; |
584 |
mask = ((unsigned long) getbits(num))<<BITSHIFT; |
585 |
mask <<= 8-num; |
585 |
mask <<= 8-num; |
Lines 666-672
Link Here
|
666 |
if(x == 15 && h->linbits) { |
666 |
if(x == 15 && h->linbits) { |
667 |
max[lwin] = cb; |
667 |
max[lwin] = cb; |
668 |
REFRESH_MASK; |
668 |
REFRESH_MASK; |
669 |
x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); |
669 |
x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); |
670 |
num -= h->linbits+1; |
670 |
num -= h->linbits+1; |
671 |
mask <<= h->linbits; |
671 |
mask <<= h->linbits; |
672 |
if(mask < 0) |
672 |
if(mask < 0) |
Lines 690-696
Link Here
|
690 |
if(y == 15 && h->linbits) { |
690 |
if(y == 15 && h->linbits) { |
691 |
max[lwin] = cb; |
691 |
max[lwin] = cb; |
692 |
REFRESH_MASK; |
692 |
REFRESH_MASK; |
693 |
y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); |
693 |
y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); |
694 |
num -= h->linbits+1; |
694 |
num -= h->linbits+1; |
695 |
mask <<= h->linbits; |
695 |
mask <<= h->linbits; |
696 |
if(mask < 0) |
696 |
if(mask < 0) |
Lines 844-850
Link Here
|
844 |
if (x == 15 && h->linbits) { |
844 |
if (x == 15 && h->linbits) { |
845 |
max = cb; |
845 |
max = cb; |
846 |
REFRESH_MASK; |
846 |
REFRESH_MASK; |
847 |
x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); |
847 |
x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); |
848 |
num -= h->linbits+1; |
848 |
num -= h->linbits+1; |
849 |
mask <<= h->linbits; |
849 |
mask <<= h->linbits; |
850 |
if(mask < 0) |
850 |
if(mask < 0) |
Lines 868-874
Link Here
|
868 |
if (y == 15 && h->linbits) { |
868 |
if (y == 15 && h->linbits) { |
869 |
max = cb; |
869 |
max = cb; |
870 |
REFRESH_MASK; |
870 |
REFRESH_MASK; |
871 |
y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); |
871 |
y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits); |
872 |
num -= h->linbits+1; |
872 |
num -= h->linbits+1; |
873 |
mask <<= h->linbits; |
873 |
mask <<= h->linbits; |
874 |
if(mask < 0) |
874 |
if(mask < 0) |