summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-01-08 18:00:49 -0500
committeryenatch <yenatch@gmail.com>2017-01-08 18:00:49 -0500
commitde69de433b922502b6fe4ce966b7b636dcf53a71 (patch)
tree84f435fbe323db2063368064d096fd9dbbbc42aa
parent10e5474a65d2ff356e1a6280568c078fee1c9b52 (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.
-rw-r--r--tools/aif2pcm/main.c18
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++)