diff options
author | yenatch <yenatch@gmail.com> | 2017-01-08 18:00:49 -0500 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2017-01-08 18:00:49 -0500 |
commit | de69de433b922502b6fe4ce966b7b636dcf53a71 (patch) | |
tree | 84f435fbe323db2063368064d096fd9dbbbc42aa /tools/aif2pcm/main.c | |
parent | 10e5474a65d2ff356e1a6280568c078fee1c9b52 (diff) |
aif2pcm: Fix delta compression for foreign audio.
The direction should not be reversed if the delta is too large.
The new code is redundant, but the intent is more obvious.
Diffstat (limited to 'tools/aif2pcm/main.c')
-rw-r--r-- | tools/aif2pcm/main.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c index a2c3bcd5c..b7058f0c8 100644 --- a/tools/aif2pcm/main.c +++ b/tools/aif2pcm/main.c @@ -400,11 +400,9 @@ struct Bytes *delta_compress(struct Bytes *pcm) break; } hi = 0; - diff = pcm->data[i++] - base; - if (diff > 49) - { - diff = -diff; - } + diff = ((int8_t)pcm->data[i++]) - base; + if (diff > 49) diff = 49; + if (diff < -64) diff = -64; if (diff < 0) { for (l = 8; l < 16; l++) @@ -429,8 +427,9 @@ struct Bytes *delta_compress(struct Bytes *pcm) } for (k = 0; k < 31; k++) { - diff = pcm->data[i++] - base; - if (diff > 49) diff = -diff; + diff = ((int8_t)pcm->data[i++]) - base; + if (diff > 49) diff = 49; + if (diff < -64) diff = -64; if (diff < 0) { for (l = 8; l < 16; l++) @@ -453,8 +452,9 @@ struct Bytes *delta_compress(struct Bytes *pcm) { break; } - diff = pcm->data[i++] - base; - if (diff > 49) diff = -diff; + diff = ((int8_t)pcm->data[i++]) - base; + if (diff > 49) diff = 49; + if (diff < -64) diff = -64; if (diff < 0) { for (l = 8; l < 16; l++) |