src/org/sipdroid/media/codecs/G711.java
changeset 823 2036ebfaccda
equal deleted inserted replaced
536:537ddd8aa407 823:2036ebfaccda
       
     1 package org.sipdroid.media.codecs;
       
     2 
       
     3 /**
       
     4  * G.711 codec. This class provides methods for u-law, A-law and linear PCM
       
     5  * conversions.
       
     6  */
       
     7 public class G711 extends Codec {
       
     8 	/*
       
     9 	 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
       
    10 	 * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
       
    11 	 * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
       
    12 	 */
       
    13 	public static final CodecInfo mCodecInfo = new CodecInfo();
       
    14 	
       
    15 	static {
       
    16 		mCodecInfo.displayName = "aLaw";		
       
    17 		mCodecInfo.rtpPayloadName = "PCMA";
       
    18 		mCodecInfo.description = "G711 aLaw codec";
       
    19 		mCodecInfo.rtpPayloadCode = 8;
       
    20 		mCodecInfo.samplingRate = 8000;
       
    21 		mCodecInfo.rtpSampleDivider = 1;
       
    22 		mCodecInfo.minFrameTimeMsecs = 20;
       
    23 		mCodecInfo.codecFrameSize = 160;
       
    24 		CodecManager.registerAudioCodec(new G711());
       
    25 	}
       
    26 	
       
    27 	private static final int[] _a2s = {
       
    28 
       
    29 	 60032, 60288, 59520, 59776, 61056, 61312, 60544, 60800,
       
    30 	 57984, 58240, 57472, 57728, 59008, 59264, 58496, 58752,
       
    31 	 62784, 62912, 62528, 62656, 63296, 63424, 63040, 63168,
       
    32 	 61760, 61888, 61504, 61632, 62272, 62400, 62016, 62144,
       
    33 	 43520, 44544, 41472, 42496, 47616, 48640, 45568, 46592,
       
    34 	 35328, 36352, 33280, 34304, 39424, 40448, 37376, 38400,
       
    35 	 54528, 55040, 53504, 54016, 56576, 57088, 55552, 56064,
       
    36 	 50432, 50944, 49408, 49920, 52480, 52992, 51456, 51968,
       
    37 	 65192, 65208, 65160, 65176, 65256, 65272, 65224, 65240,
       
    38 	 65064, 65080, 65032, 65048, 65128, 65144, 65096, 65112,
       
    39 	 65448, 65464, 65416, 65432, 65512, 65528, 65480, 65496,
       
    40 	 65320, 65336, 65288, 65304, 65384, 65400, 65352, 65368,
       
    41 	 64160, 64224, 64032, 64096, 64416, 64480, 64288, 64352,
       
    42 	 63648, 63712, 63520, 63584, 63904, 63968, 63776, 63840,
       
    43 	 64848, 64880, 64784, 64816, 64976, 65008, 64912, 64944,
       
    44 	 64592, 64624, 64528, 64560, 64720, 64752, 64656, 64688,
       
    45 	  5504,  5248,  6016,  5760,  4480,  4224,  4992,  4736,
       
    46 	  7552,  7296,  8064,  7808,  6528,  6272,  7040,  6784,
       
    47 	  2752,  2624,  3008,  2880,  2240,  2112,  2496,  2368,
       
    48 	  3776,  3648,  4032,  3904,  3264,  3136,  3520,  3392,
       
    49 	 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944,
       
    50 	 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136,
       
    51 	 11008, 10496, 12032, 11520,  8960,  8448,  9984,  9472,
       
    52 	 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568,
       
    53 	   344,   328,   376,   360,   280,   264,   312,   296,
       
    54 	   472,   456,   504,   488,   408,   392,   440,   424,
       
    55 	    88,    72,   120,   104,    24,     8,    56,    40,
       
    56 	   216,   200,   248,   232,   152,   136,   184,   168,
       
    57 	  1376,  1312,  1504,  1440,  1120,  1056,  1248,  1184,
       
    58 	  1888,  1824,  2016,  1952,  1632,  1568,  1760,  1696,
       
    59 	   688,   656,   752,   720,   560,   528,   624,   592,
       
    60 	   944,   912,  1008,   976,   816,   784,   880,   848
       
    61 
       
    62 	};
       
    63 
       
    64 	private static final int[] _s2a = {
       
    65 
       
    66 		213,212,215,214,209,208,211,210,221,220,223,222,217,216,219,218,
       
    67 		197,196,199,198,193,192,195,194,205,204,207,206,201,200,203,202,
       
    68 		245,245,244,244,247,247,246,246,241,241,240,240,243,243,242,242,
       
    69 		253,253,252,252,255,255,254,254,249,249,248,248,251,251,250,250,
       
    70 		229,229,229,229,228,228,228,228,231,231,231,231,230,230,230,230,
       
    71 		225,225,225,225,224,224,224,224,227,227,227,227,226,226,226,226,
       
    72 		237,237,237,237,236,236,236,236,239,239,239,239,238,238,238,238,
       
    73 		233,233,233,233,232,232,232,232,235,235,235,235,234,234,234,234,
       
    74 		149,149,149,149,149,149,149,149,148,148,148,148,148,148,148,148,
       
    75 		151,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,
       
    76 		145,145,145,145,145,145,145,145,144,144,144,144,144,144,144,144,
       
    77 		147,147,147,147,147,147,147,147,146,146,146,146,146,146,146,146,
       
    78 		157,157,157,157,157,157,157,157,156,156,156,156,156,156,156,156,
       
    79 		159,159,159,159,159,159,159,159,158,158,158,158,158,158,158,158,
       
    80 		153,153,153,153,153,153,153,153,152,152,152,152,152,152,152,152,
       
    81 		155,155,155,155,155,155,155,155,154,154,154,154,154,154,154,154,
       
    82 		133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
       
    83 		132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
       
    84 		135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
       
    85 		134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
       
    86 		129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
       
    87 		128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
       
    88 		131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
       
    89 		130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
       
    90 		141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
       
    91 		140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
       
    92 		143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
       
    93 		142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
       
    94 		137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
       
    95 		136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
       
    96 		139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
       
    97 		138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
       
    98 		181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
       
    99 		181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
       
   100 		180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
       
   101 		180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
       
   102 		183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
       
   103 		183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
       
   104 		182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
       
   105 		182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
       
   106 		177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
       
   107 		177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
       
   108 		176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
       
   109 		176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
       
   110 		179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
       
   111 		179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
       
   112 		178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
       
   113 		178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
       
   114 		189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
       
   115 		189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
       
   116 		188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
       
   117 		188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
       
   118 		191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
       
   119 		191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
       
   120 		190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
       
   121 		190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
       
   122 		185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
       
   123 		185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
       
   124 		184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
       
   125 		184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
       
   126 		187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
       
   127 		187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
       
   128 		186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
       
   129 		186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
       
   130 		165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
       
   131 		165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
       
   132 		165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
       
   133 		165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
       
   134 		164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
       
   135 		164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
       
   136 		164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
       
   137 		164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
       
   138 		167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
       
   139 		167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
       
   140 		167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
       
   141 		167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
       
   142 		166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
       
   143 		166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
       
   144 		166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
       
   145 		166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
       
   146 		161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
       
   147 		161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
       
   148 		161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
       
   149 		161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
       
   150 		160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
       
   151 		160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
       
   152 		160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
       
   153 		160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
       
   154 		163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
       
   155 		163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
       
   156 		163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
       
   157 		163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
       
   158 		162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
       
   159 		162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
       
   160 		162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
       
   161 		162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
       
   162 		173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
       
   163 		173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
       
   164 		173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
       
   165 		173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
       
   166 		172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
       
   167 		172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
       
   168 		172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
       
   169 		172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
       
   170 		175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
       
   171 		175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
       
   172 		175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
       
   173 		175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
       
   174 		174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
       
   175 		174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
       
   176 		174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
       
   177 		174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
       
   178 		169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
       
   179 		169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
       
   180 		169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
       
   181 		169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
       
   182 		168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
       
   183 		168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
       
   184 		168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
       
   185 		168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
       
   186 		171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
       
   187 		171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
       
   188 		171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
       
   189 		171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
       
   190 		170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
       
   191 		170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
       
   192 		170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
       
   193 		170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
       
   194 		 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
       
   195 		 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
       
   196 		 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
       
   197 		 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
       
   198 		 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
       
   199 		 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
       
   200 		 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
       
   201 		 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
       
   202 		 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
       
   203 		 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
       
   204 		 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
       
   205 		 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
       
   206 		 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
       
   207 		 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
       
   208 		 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
       
   209 		 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
       
   210 		 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
       
   211 		 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
       
   212 		 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
       
   213 		 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
       
   214 		 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
       
   215 		 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
       
   216 		 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
       
   217 		 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
       
   218 		 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
       
   219 		 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
       
   220 		 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
       
   221 		 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
       
   222 		 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
       
   223 		 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
       
   224 		 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
       
   225 		 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
       
   226 		 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
       
   227 		 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
       
   228 		 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
       
   229 		 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
       
   230 		 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
       
   231 		 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
       
   232 		 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
       
   233 		 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
       
   234 		 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
       
   235 		 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
       
   236 		 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
       
   237 		 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
       
   238 		 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
       
   239 		 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
       
   240 		 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
       
   241 		 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
       
   242 		 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
       
   243 		 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
       
   244 		 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
       
   245 		 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
       
   246 		 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
       
   247 		 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
       
   248 		 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
       
   249 		 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
       
   250 		 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       
   251 		 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       
   252 		 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       
   253 		 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       
   254 		 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
       
   255 		 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
       
   256 		 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
       
   257 		 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
       
   258 		 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
       
   259 		 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
       
   260 		 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
       
   261 		 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
       
   262 		 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
       
   263 		 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
       
   264 		 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
       
   265 		 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
       
   266 		 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
       
   267 		 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
       
   268 		 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
       
   269 		 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
       
   270 		 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
       
   271 		 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
       
   272 		 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
       
   273 		 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
       
   274 		 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
       
   275 		 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
       
   276 		 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
       
   277 		 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
       
   278 		 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
       
   279 		 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
       
   280 		 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
       
   281 		 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
       
   282 		 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
       
   283 		 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
       
   284 		 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
       
   285 		 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
       
   286 		 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
       
   287 		 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
       
   288 		 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
       
   289 		 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
       
   290 		 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
       
   291 		 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
       
   292 		  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
       
   293 		  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
       
   294 		 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
       
   295 		 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
       
   296 		 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
       
   297 		 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
       
   298 		  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
       
   299 		  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
       
   300 		  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       
   301 		  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
       
   302 		  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
       
   303 		  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
       
   304 		  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
       
   305 		  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
       
   306 		 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
       
   307 		 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25,
       
   308 		 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31,
       
   309 		 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
       
   310 		 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,
       
   311 		 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
       
   312 		 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
       
   313 		 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21,
       
   314 		106,106,106,106,107,107,107,107,104,104,104,104,105,105,105,105,
       
   315 		110,110,110,110,111,111,111,111,108,108,108,108,109,109,109,109,
       
   316 		 98, 98, 98, 98, 99, 99, 99, 99, 96, 96, 96, 96, 97, 97, 97, 97,
       
   317 		102,102,102,102,103,103,103,103,100,100,100,100,101,101,101,101,
       
   318 		122,122,123,123,120,120,121,121,126,126,127,127,124,124,125,125,
       
   319 		114,114,115,115,112,112,113,113,118,118,119,119,116,116,117,117,
       
   320 		 74, 75, 72, 73, 78, 79, 76, 77, 66, 67, 64, 65, 70, 71, 68, 69,
       
   321 		 90, 91, 88, 89, 94, 95, 92, 93, 82, 83, 80, 81, 86, 87, 84, 85
       
   322 	};
       
   323 	
       
   324 	
       
   325 	public class G711Context extends Context {
       
   326 		public final short[] a2s = new short[256];
       
   327 		public final byte[] s2a = new byte[65536];
       
   328 	}
       
   329 	
       
   330 	public void init(G711Context ctx) {
       
   331  		int i;
       
   332 		for (i = 0; i < 256; i++)
       
   333 			ctx.a2s[i] = (short)_a2s[i];
       
   334 		for (i = 0; i < 65536; i++)
       
   335 			ctx.s2a[i] = (byte)_s2a[i >> 4];
       
   336 	}
       
   337 
       
   338 	private void alaw2linear(G711Context ctx, byte alaw[], int inoffset, int size, short lin[], int outoffset) {
       
   339 		int i;
       
   340 		for (i = 0; i < size; i++)
       
   341 			lin[i + outoffset] = ctx.a2s[alaw[i + inoffset] & 0xff];
       
   342 	}
       
   343 	
       
   344 	private void linear2alaw(G711Context ctx, short lin[], int inoffset, byte alaw[], int outoffset, int size) {
       
   345 		int i;
       
   346 		for (i = 0; i < size; i++)
       
   347 			alaw[i + outoffset] = ctx.s2a[lin[i + inoffset] & 0xffff];
       
   348 	}
       
   349 	
       
   350 	@Override
       
   351 	public Context initDecoder() {
       
   352 		G711Context ctx = new G711Context();
       
   353 		init(ctx);
       
   354 		return ctx;
       
   355 	}
       
   356 
       
   357 	@Override
       
   358 	public Context initEncoder() {
       
   359 		G711Context ctx = new G711Context();
       
   360 		init(ctx);
       
   361 		return ctx;
       
   362 	}
       
   363 
       
   364 	@Override
       
   365 	public void cleanDecoder(Context ctx) {
       
   366 	}
       
   367 
       
   368 	@Override
       
   369 	public void cleanEncoder(Context ctx) {
       
   370 	}
       
   371 
       
   372 	@Override
       
   373 	public int decode(Context ctx, byte[] indata, int inoffset, int size,
       
   374 			short[] outsample, int outoffset) {
       
   375 		alaw2linear((G711Context) ctx, indata, inoffset, size, outsample, outoffset);
       
   376 		return size;
       
   377 	}
       
   378 
       
   379 	@Override
       
   380 	public int encode(Context ctx, short[] insample, int inoffset, int size,
       
   381 			byte[] outdata, int outoffset) {
       
   382 		linear2alaw((G711Context) ctx, insample, inoffset, outdata, outoffset, size);
       
   383 		return 0;
       
   384 	}
       
   385 
       
   386 	@Override
       
   387 	public CodecInfo getInfo() {		
       
   388 		return mCodecInfo;
       
   389 	}
       
   390 	
       
   391 	static public void load(){
       
   392 	}
       
   393 }