|
|
|
@@ -78,7 +78,6 @@ void ff_put_string(PutBitContext * pbc, const char *s, int terminate_string) |
|
|
|
|
|
|
|
void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length) |
|
|
|
{ |
|
|
|
const uint16_t *srcw= (const uint16_t*)src; |
|
|
|
int words= length>>4; |
|
|
|
int bits= length&15; |
|
|
|
int i; |
|
|
|
@@ -86,7 +85,7 @@ void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length) |
|
|
|
if(length==0) return; |
|
|
|
|
|
|
|
if(CONFIG_SMALL || words < 16 || put_bits_count(pb)&7){ |
|
|
|
for(i=0; i<words; i++) put_bits(pb, 16, AV_RB16(&srcw[i])); |
|
|
|
for(i=0; i<words; i++) put_bits(pb, 16, AV_RB16(src + 2*i)); |
|
|
|
}else{ |
|
|
|
for(i=0; put_bits_count(pb)&31; i++) |
|
|
|
put_bits(pb, 8, src[i]); |
|
|
|
@@ -95,7 +94,7 @@ void ff_copy_bits(PutBitContext *pb, const uint8_t *src, int length) |
|
|
|
skip_put_bytes(pb, 2*words-i); |
|
|
|
} |
|
|
|
|
|
|
|
put_bits(pb, bits, AV_RB16(&srcw[words])>>(16-bits)); |
|
|
|
put_bits(pb, bits, AV_RB16(src + 2*words)>>(16-bits)); |
|
|
|
} |
|
|
|
|
|
|
|
/* VLC decoding */ |
|
|
|
|