| 
					
				 | 
			
			
				@@ -305,7 +305,7 @@ namespace MediaBrowser.Server.Implementations.Session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private async Task<MediaSourceInfo> GetMediaSource(BaseItem item, string mediaSourceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private async Task<MediaSourceInfo> GetMediaSource(IHasMediaSources item, string mediaSourceId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var sources = await _mediaSourceManager.GetPlayackMediaSources(item.Id.ToString("N"), false, CancellationToken.None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         .ConfigureAwait(false); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -334,11 +334,16 @@ namespace MediaBrowser.Server.Implementations.Session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var runtimeTicks = libraryItem.RunTimeTicks; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (mediaSource != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    MediaSourceInfo mediaSource = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var hasMediaSources = libraryItem as IHasMediaSources; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (hasMediaSources != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        runtimeTicks = mediaSource.RunTimeTicks; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (mediaSource != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            runtimeTicks = mediaSource.RunTimeTicks; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -414,12 +419,12 @@ namespace MediaBrowser.Server.Implementations.Session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!_activeConnections.TryGetValue(key, out sessionInfo)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sessionInfo = new SessionInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       Client = appName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       DeviceId = deviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       ApplicationVersion = appVersion, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       Id = key.GetMD5().ToString("N") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                   }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Client = appName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        DeviceId = deviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ApplicationVersion = appVersion, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Id = key.GetMD5().ToString("N") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sessionInfo.DeviceName = deviceName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     sessionInfo.UserId = userId; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -756,7 +761,13 @@ namespace MediaBrowser.Server.Implementations.Session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (current == null || !string.Equals(current.Id, info.ItemId, StringComparison.OrdinalIgnoreCase)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    MediaSourceInfo mediaSource = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var hasMediaSources = libraryItem as IHasMediaSources; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (hasMediaSources != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 |