 			return basicProcessFileSegment(input || new ByteArray(), true);
 		}
 			
-		public var flvLowWaterAudio:uint = 0;
-		public var flvLowWaterVideo:uint = 0;
+		public var flvLowWaterAudio:int = int.MIN_VALUE;
+		public var flvLowWaterVideo:int = int.MIN_VALUE;
 		public var flvRecoveringIFrame:Boolean = false;
-		public const filterThresholdMs:uint = 64;
+		public const filterThresholdMs:int = 64;
 
 		private function clearFLVWaterMarkFilter():void
 		{
-			flvLowWaterAudio = 0;
-			flvLowWaterVideo = 0;
+			flvLowWaterAudio = int.MIN_VALUE;
+			flvLowWaterVideo = int.MIN_VALUE;
 			flvRecoveringIFrame = false;
 		}
 
-		private function handleFLVMessage(timestamp:uint, message:ByteArray, duration:uint):void
+		private function handleFLVMessage(timestamp:int, message:ByteArray, duration:int):void
 		{
 			var timestampSeconds:Number = timestamp / 1000.0;
 			var endTimestampSeconds:Number = (timestamp + duration) / 1000.0;
 
-			if(_segmentBeginSeconds < 0)
+			if(timestampSeconds < _segmentBeginSeconds)
 			{
 				_segmentBeginSeconds = timestampSeconds;
 

				{
					CONFIG::LOGGING
					{
						logger.debug("SKIPPING TOO LOW FLV VID TS @ " + timestamp);
					}

					if(SEND_LOGS)

		public var isBestEffort:Boolean = false;
		
		private var _parser:TSPacketParser;
		private var _buffer:ByteArray;
		private var _fragReadBuffer:ByteArray;
		private var _encryptedDataBuffer:ByteArray;
		private var _timeOrigin:Number;
		private var _timeOriginNeeded:Boolean;
		private var _segmentBeginSeconds:Number;
		private var _segmentLastSeconds:Number;
