From cd1f22f97e9cec9a64c41f33dfd9658c73461270 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sun, 28 Sep 2003 20:27:56 +0000
Subject: [PATCH] simpler

Originally committed as revision 2310 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/pcm.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c
index 7f3d630f086..a6c0d343b06 100644
--- a/libavcodec/pcm.c
+++ b/libavcodec/pcm.c
@@ -45,19 +45,11 @@ static int alaw2linear(unsigned char	a_val)
 
 	a_val ^= 0x55;
 
-	t = (a_val & QUANT_MASK) << 4;
+	t = a_val & QUANT_MASK;
 	seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
-	switch (seg) {
-	case 0:
-		t += 8;
-		break;
-	case 1:
-		t += 0x108;
-		break;
-	default:
-		t += 0x108;
-		t <<= seg - 1;
-	}
+	if(seg) t= (t + t + 1 + 32) << (seg + 2);
+	else    t= (t + t + 1     ) << 3;
+
 	return ((a_val & SIGN_BIT) ? t : -t);
 }
 
-- 
GitLab