mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 10:37:22 -04:00 
			
		
		
		
	add quality methods
This commit is contained in:
		
							parent
							
								
									6384c5bab0
								
							
						
					
					
						commit
						1a81da5a8f
					
				| @ -3,6 +3,7 @@ using MediaBrowser.Controller.Sync; | |||||||
| using MediaBrowser.Model.Devices; | using MediaBrowser.Model.Devices; | ||||||
| using MediaBrowser.Model.Dlna; | using MediaBrowser.Model.Dlna; | ||||||
| using MediaBrowser.Model.Sync; | using MediaBrowser.Model.Sync; | ||||||
|  | using System; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Linq; | using System.Linq; | ||||||
| 
 | 
 | ||||||
| @ -31,11 +32,28 @@ namespace MediaBrowser.Server.Implementations.Sync | |||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public DeviceProfile GetDeviceProfile(SyncTarget target) |         public DeviceProfile GetDeviceProfile(SyncTarget target, string quality) | ||||||
|         { |         { | ||||||
|             var caps = _deviceManager.GetCapabilities(target.Id); |             var caps = _deviceManager.GetCapabilities(target.Id); | ||||||
| 
 | 
 | ||||||
|             return caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile; |             var profile = caps == null || caps.DeviceProfile == null ? new DeviceProfile() : caps.DeviceProfile; | ||||||
|  |             var maxBitrate = profile.MaxStaticBitrate; | ||||||
|  | 
 | ||||||
|  |             if (maxBitrate.HasValue) | ||||||
|  |             { | ||||||
|  |                 if (string.Equals(quality, "medium", StringComparison.OrdinalIgnoreCase)) | ||||||
|  |                 { | ||||||
|  |                     maxBitrate = Convert.ToInt32(maxBitrate.Value * .75); | ||||||
|  |                 } | ||||||
|  |                 else if (string.Equals(quality, "low", StringComparison.OrdinalIgnoreCase)) | ||||||
|  |                 { | ||||||
|  |                     maxBitrate = Convert.ToInt32(maxBitrate.Value * .5); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 profile.MaxStaticBitrate = maxBitrate; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return profile; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public string Name |         public string Name | ||||||
|  | |||||||
| @ -10,8 +10,9 @@ namespace MediaBrowser.Server.Implementations.Sync | |||||||
|         /// Gets the device profile. |         /// Gets the device profile. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="target">The target.</param> |         /// <param name="target">The target.</param> | ||||||
|  |         /// <param name="quality">The quality.</param> | ||||||
|         /// <returns>DeviceProfile.</returns> |         /// <returns>DeviceProfile.</returns> | ||||||
|         DeviceProfile GetDeviceProfile(SyncTarget target); |         DeviceProfile GetDeviceProfile(SyncTarget target, string quality); | ||||||
|          |          | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Gets the quality options. |         /// Gets the quality options. | ||||||
|  | |||||||
| @ -974,7 +974,7 @@ namespace MediaBrowser.Server.Implementations.Sync | |||||||
| 
 | 
 | ||||||
|         public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job) |         public AudioOptions GetAudioOptions(SyncJobItem jobItem, SyncJob job) | ||||||
|         { |         { | ||||||
|             var profile = GetDeviceProfile(jobItem.TargetId, job.Quality); |             var profile = GetDeviceProfile(jobItem.TargetId, null); | ||||||
| 
 | 
 | ||||||
|             return new AudioOptions |             return new AudioOptions | ||||||
|             { |             { | ||||||
| @ -985,24 +985,10 @@ namespace MediaBrowser.Server.Implementations.Sync | |||||||
|         public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job) |         public VideoOptions GetVideoOptions(SyncJobItem jobItem, SyncJob job) | ||||||
|         { |         { | ||||||
|             var profile = GetDeviceProfile(jobItem.TargetId, job.Quality); |             var profile = GetDeviceProfile(jobItem.TargetId, job.Quality); | ||||||
|             var maxBitrate = profile.MaxStaticBitrate; |  | ||||||
| 
 |  | ||||||
|             if (maxBitrate.HasValue) |  | ||||||
|             { |  | ||||||
|                 if (string.Equals(job.Quality, "medium", StringComparison.OrdinalIgnoreCase)) |  | ||||||
|                 { |  | ||||||
|                     maxBitrate = Convert.ToInt32(maxBitrate.Value * .75); |  | ||||||
|                 } |  | ||||||
|                 else if (string.Equals(job.Quality, "low", StringComparison.OrdinalIgnoreCase)) |  | ||||||
|                 { |  | ||||||
|                     maxBitrate = Convert.ToInt32(maxBitrate.Value * .5); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
| 
 | 
 | ||||||
|             return new VideoOptions |             return new VideoOptions | ||||||
|             { |             { | ||||||
|                 Profile = profile, |                 Profile = profile | ||||||
|                 MaxBitrate = maxBitrate |  | ||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -1028,7 +1014,7 @@ namespace MediaBrowser.Server.Implementations.Sync | |||||||
| 
 | 
 | ||||||
|             if (hasProfile != null) |             if (hasProfile != null) | ||||||
|             { |             { | ||||||
|                 return hasProfile.GetDeviceProfile(target); |                 return hasProfile.GetDeviceProfile(target, quality); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             return new CloudSyncProfile(true, false); |             return new CloudSyncProfile(true, false); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user