mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-25 15:52:43 -04:00 
			
		
		
		
	more work on streaming remotely
This commit is contained in:
		
							parent
							
								
									e9cfa6cd26
								
							
						
					
					
						commit
						b11d06f36f
					
				| @ -264,30 +264,24 @@ namespace MediaBrowser.Api.Playback | ||||
|             } | ||||
| 
 | ||||
|             // If a max width was requested | ||||
|             if (request.MaxWidth.HasValue && !request.MaxHeight.HasValue) | ||||
|             if (request.MaxWidth.HasValue && (!request.MaxHeight.HasValue || state.VideoStream == null)) | ||||
|             { | ||||
|                 return isH264Output ? | ||||
|                     string.Format(" -vf \"scale=min(iw\\,{0}):trunc(ow/a/2)*2{1}\"", request.MaxWidth.Value, assSubtitleParam) : | ||||
|                     string.Format(" -vf \"scale=min(iw\\,{0}):-1{1}\"", request.MaxWidth.Value, assSubtitleParam); | ||||
|             } | ||||
| 
 | ||||
|             if (state.VideoStream == null) | ||||
|             { | ||||
|                 // No way to figure this out | ||||
|                 return string.Empty; | ||||
|             } | ||||
| 
 | ||||
|             // Need to perform calculations manually | ||||
| 
 | ||||
|             // Try to account for bad media info | ||||
|             var currentHeight = request.MaxHeight ?? request.Height ?? 0; | ||||
|             var currentWidth = request.MaxWidth ?? request.Width ?? 0; | ||||
| 
 | ||||
|             if (state.VideoStream != null) | ||||
|             { | ||||
|                 if (state.VideoStream.Height.HasValue) | ||||
|                 { | ||||
|                     currentHeight = state.VideoStream.Height.Value; | ||||
|                 } | ||||
|                 if (state.VideoStream.Width.HasValue) | ||||
|                 { | ||||
|                     currentWidth = state.VideoStream.Width.Value; | ||||
|                 } | ||||
|             } | ||||
|             var currentHeight = state.VideoStream.Height ?? request.MaxHeight ?? request.Height ?? 0; | ||||
|             var currentWidth = state.VideoStream.Width ?? request.MaxWidth ?? request.Width ?? 0; | ||||
| 
 | ||||
|             var outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight); | ||||
| 
 | ||||
|  | ||||
| @ -253,6 +253,8 @@ namespace MediaBrowser.Common.Plugins | ||||
|         { | ||||
|             ApplicationPaths = applicationPaths; | ||||
|             XmlSerializer = xmlSerializer; | ||||
| 
 | ||||
|             IsFirstRun = !File.Exists(ConfigurationFilePath); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  | ||||
| @ -31,6 +31,19 @@ namespace MediaBrowser.Controller.Entities | ||||
|             } | ||||
|         }         | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Gets or sets the type of the location. | ||||
|         /// </summary> | ||||
|         /// <value>The type of the location.</value> | ||||
|         public override LocationType LocationType | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return LocationType.Virtual; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// We don't resolve normally so need to fill this in | ||||
|         /// </summary> | ||||
|  | ||||
| @ -11,6 +11,13 @@ namespace MediaBrowser.Controller.Entities | ||||
|     /// </summary> | ||||
|     public class Video : BaseItem, IHasMediaStreams | ||||
|     { | ||||
|         public Video() | ||||
|         { | ||||
|             MediaStreams = new List<MediaStream>(); | ||||
|             Chapters = new List<ChapterInfo>(); | ||||
|             PlayableStreamFileNames = new List<string>(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Gets or sets the type of the video. | ||||
|         /// </summary> | ||||
|  | ||||
| @ -1,14 +1,13 @@ | ||||
| using MediaBrowser.Controller.Configuration; | ||||
| using MediaBrowser.Controller.Entities; | ||||
| using MediaBrowser.Controller.IO; | ||||
| using MediaBrowser.Model.Entities; | ||||
| using MediaBrowser.Model.Logging; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Threading; | ||||
| using System.Threading.Tasks; | ||||
| using MediaBrowser.Model.Logging; | ||||
| 
 | ||||
| namespace MediaBrowser.Controller.Providers | ||||
| { | ||||
| @ -29,7 +28,7 @@ namespace MediaBrowser.Controller.Providers | ||||
|         /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> | ||||
|         public override bool Supports(BaseItem item) | ||||
|         { | ||||
|             return item.ResolveArgs.IsDirectory && item.LocationType == LocationType.FileSystem; | ||||
|             return item.LocationType == LocationType.FileSystem && item.ResolveArgs.IsDirectory; | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  | ||||
| @ -518,6 +518,8 @@ namespace MediaBrowser.Server.Implementations.Library | ||||
|             // Add in the plug-in folders | ||||
|             foreach (var child in PluginFolderCreators) | ||||
|             { | ||||
|                 var folder = child.GetFolder(); | ||||
| 
 | ||||
|                 rootFolder.AddVirtualChild(child.GetFolder()); | ||||
|             } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user