| 
					
				 | 
			
			
				@@ -500,13 +500,20 @@ namespace MediaBrowser.Api.Playback.Hls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary<string, string>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private bool IsLiveStream(StreamState state) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isLiveStream = (state.RunTimeTicks ?? 0) == 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return isLiveStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private string GetMasterPlaylistFileText(StreamState state, int totalBitrate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var builder = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             builder.AppendLine("#EXTM3U"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var isLiveStream = (state.RunTimeTicks ?? 0) == 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isLiveStream = IsLiveStream(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var queryStringIndex = Request.RawUrl.IndexOf('?'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var queryString = queryStringIndex == -1 ? string.Empty : Request.RawUrl.Substring(queryStringIndex); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -929,10 +936,16 @@ namespace MediaBrowser.Api.Playback.Hls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return isOutputVideo ? ".ts" : ".ts"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected override bool CanStreamCopyVideo(VideoStreamRequest request, MediaStream videoStream) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected override bool CanStreamCopyVideo(StreamState state) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //return base.CanStreamCopyVideo(request, videoStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isLiveStream = IsLiveStream(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!isLiveStream) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return base.CanStreamCopyVideo(state); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |