 				return NaN;
 
 			return segments[segments.length-1].startTime + segments[segments.length-1].duration;
+		}
+
+		public function getStreamStartTime():Number
+		{
+			if(!manifest)
+				return NaN;
+
+			var activeManifest:HLSManifestParser = getManifestForQuality(lastQuality);
+			var segments:Vector.<HLSManifestSegment> = activeManifest.segments;
+			if(segments.length == 0)
+				return NaN;
+
+			return segments[0].startTime;
 		}
 		
 		// getSegmentIndexForTime()

			dispatchEvent(new HTTPStreamingEvent(HTTPStreamingEvent.SCRIPT_DATA, false, false, 0, tag, FLVTagScriptDataMode.IMMEDIATE));
		}

		public function getStreamEndTime():Number
		{
			if(!manifest)

		
		public override function getFileForTime(time:Number, quality:int):HTTPStreamRequest
		{	
			// Update duration as we learn more.
			dispatchDVRStreamInfo();

			trace("--- getFileForTime(time=" + time + ", quality=" + quality + ")");
			
			targetQuality = quality;
