 			_timeOrigin = 0;
 			_timeOriginNeeded = true;
 			
-			_segmentBeginSeconds = -1;
+			_segmentBeginSeconds = Number.MAX_VALUE;
 			_segmentLastSeconds = -1;
 			
 			_firstSeekTime = 0;

		
		public override function beginProcessFile(seek:Boolean, seekTime:Number):void
		{
			if( key && !key.isLoading && !key.isLoaded)
				throw new Error("Tried to process segment with key not set to load or loaded.");


			return basicProcessFileSegment(input || new ByteArray(), true);
		}
				

		public static var flvLowWater:uint = 0;

		private function handleFLVMessage(timestamp:uint, message:ByteArray):void
		{
			if(isBestEffort == false)
			{
				// Alway pass through SPS/PPS...
				var alwaysPass:Boolean = false
				if(message[0] == 9)
				{
					if(message[11] == FLVTags.VIDEO_CODEC_AVC_KEYFRAME
						&& message[12] == FLVTags.AVC_MODE_AVCC)
					{
						trace("Got AVCC, always pass");
						alwaysPass = true;
					}
				}


				if(timestamp < flvLowWater - 100 && !alwaysPass)
				{
					trace("SKIPPING TOO LOW FLV TS @ " + timestamp);
					return;
				}

				// Don't update low water if it's an always pass.
				if(!alwaysPass)
					flvLowWater = timestamp;				
			}

			var timestampSeconds:Number = timestamp / 1000.0;

			if(_segmentBeginSeconds > timestampSeconds)
			{
				_segmentBeginSeconds = timestampSeconds;
				trace("Noting segment start time for " + segmentUri + " of " + timestampSeconds);
