 			ilbcCodec.decode(decodingCompleteHandler, decodingProgressHandler, encodedData, decodedData, encodedData.length, 10);
 		}
 		
+		/**
+		 * Resets the encoder.
+		 * Should be called when finished with encoding an entire stream.
+		 * 
+		 * NOTE: When this isn't called it could cause a memory leak.
+		 */
+		public function resetEncoder():void {
+			trace("ILBCCodec.resetEncoder()");
+			try {
+				ilbcCodec.resetEncoder();
+			} catch(e:Error) {
+				trace("ERROR RESETTING ENCODER");
+				trace(e.getStackTrace());
+			}
+		}
+		
+		/**
+		 * Resets the decoder.
+		 * Should be called when finished with decoding an entire stream.
+		 * 
+		 * NOTE: When this isn't called it could cause a memory leak.
+		 */
+		public function resetDecoder():void {
+			trace("ILBCCodec.resetDecoder()");
+			try {
+				ilbcCodec.resetDecoder();
+			} catch(e:Error) {
+				trace("ERROR RESETTING DECODER");
+				trace(e.getStackTrace());
+			}
+		}
+		
 	}
 	
 }

		 */
		private function init():void {
			initTime = -1;
		}
		
		// ------------------------

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