 		 */
 		private function init():void {
 			initTime = -1;
+			ilbcCodec = (new cmodule.iLBC_webrtcb64.CLibInit).init();
 		}
 		
 		// ------------------------

			
			start();
			
			ilbcCodec.encode(encodingCompleteHandler, encodingProgressHandler, decodedData, encodedData, decodedData.length, 10);
		}
		
		/**
		 * Decodes an iLBC encoded audio stream (16 bit 8kHz).
		 */
		public function decode(data:ByteArray):void {
			trace("ILBCCodec.decode(data):", data.length);
			
			encodedData = data;
			decodedData = new ByteArray();

	 */
	public class ILBCCodec extends EventDispatcher {
		
		/**
		 * iLBC processes data in chunks of 240 shorts, 1 byte.
		 * Flash records data as floats, which are 4 bytes.
		 * Base64 prefers muliples of 3, so we multiply by that here.
		 * 
		 * 240 shorts * 4 (for sizeof( float )) * 3 (Base64 preference), leads to the "optimal" number here, results in no padding.
		 */ 
		public static const PREFERRED_MIN_CHUNK_SIZE:int = 2880;
		
		public static const NOISE_SUPPRESSION_OFF:int = 0;
		public static const NOISE_SUPPRESSION_MILD:int = 1;
		public static const NOISE_SUPPRESSION_MEDIUM:int = 2;
		public static const NOISE_SUPPRESSION_AGGRESSIVE:int = 3;
		
		public var encodedData:ByteArray;
		public var decodedData:ByteArray;
		
		private var isLastEncoding:Boolean;
		private var isLastDecoding:Boolean;
		
		private var ilbcCodec:Object;
		private var initTime:int;
