summaryrefslogtreecommitdiff
path: root/libavcodec/pcm_tablegen.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/pcm_tablegen.h')
-rw-r--r--libavcodec/pcm_tablegen.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/libavcodec/pcm_tablegen.h b/libavcodec/pcm_tablegen.h
index 1387210a58..7269977965 100644
--- a/libavcodec/pcm_tablegen.h
+++ b/libavcodec/pcm_tablegen.h
@@ -87,21 +87,21 @@ static av_cold void build_xlaw_table(uint8_t *linear_to_xlaw,
{
int i, j, v, v1, v2;
- j = 0;
- for(i=0;i<128;i++) {
- if (i != 127) {
- v1 = xlaw2linear(i ^ mask);
- v2 = xlaw2linear((i + 1) ^ mask);
- v = (v1 + v2 + 4) >> 3;
- } else {
- v = 8192;
- }
- for(;j<v;j++) {
+ j = 1;
+ linear_to_xlaw[8192] = mask;
+ for(i=0;i<127;i++) {
+ v1 = xlaw2linear(i ^ mask);
+ v2 = xlaw2linear((i + 1) ^ mask);
+ v = (v1 + v2 + 4) >> 3;
+ for(;j<v;j+=1) {
+ linear_to_xlaw[8192 - j] = (i ^ (mask ^ 0x80));
linear_to_xlaw[8192 + j] = (i ^ mask);
- if (j > 0)
- linear_to_xlaw[8192 - j] = (i ^ (mask ^ 0x80));
}
}
+ for(;j<8192;j++) {
+ linear_to_xlaw[8192 - j] = (127 ^ (mask ^ 0x80));
+ linear_to_xlaw[8192 + j] = (127 ^ mask);
+ }
linear_to_xlaw[0] = linear_to_xlaw[1];
}