mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-06 03:26:07 +02:00
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
This commit is contained in:
commit
e3f3c0ed0a
6 changed files with 35 additions and 18 deletions
|
@ -264,30 +264,24 @@ namespace MediaBrowser.Api.Playback
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a max width was requested
|
// 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 ?
|
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}):trunc(ow/a/2)*2{1}\"", request.MaxWidth.Value, assSubtitleParam) :
|
||||||
string.Format(" -vf \"scale=min(iw\\,{0}):-1{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
|
// Need to perform calculations manually
|
||||||
|
|
||||||
// Try to account for bad media info
|
// Try to account for bad media info
|
||||||
var currentHeight = request.MaxHeight ?? request.Height ?? 0;
|
var currentHeight = state.VideoStream.Height ?? request.MaxHeight ?? request.Height ?? 0;
|
||||||
var currentWidth = request.MaxWidth ?? request.Width ?? 0;
|
var currentWidth = state.VideoStream.Width ?? 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 outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight);
|
var outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight);
|
||||||
|
|
||||||
|
|
|
@ -253,6 +253,8 @@ namespace MediaBrowser.Common.Plugins
|
||||||
{
|
{
|
||||||
ApplicationPaths = applicationPaths;
|
ApplicationPaths = applicationPaths;
|
||||||
XmlSerializer = xmlSerializer;
|
XmlSerializer = xmlSerializer;
|
||||||
|
|
||||||
|
IsFirstRun = !File.Exists(ConfigurationFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// <summary>
|
||||||
/// We don't resolve normally so need to fill this in
|
/// We don't resolve normally so need to fill this in
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -11,6 +11,13 @@ namespace MediaBrowser.Controller.Entities
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Video : BaseItem, IHasMediaStreams
|
public class Video : BaseItem, IHasMediaStreams
|
||||||
{
|
{
|
||||||
|
public Video()
|
||||||
|
{
|
||||||
|
MediaStreams = new List<MediaStream>();
|
||||||
|
Chapters = new List<ChapterInfo>();
|
||||||
|
PlayableStreamFileNames = new List<string>();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the type of the video.
|
/// Gets or sets the type of the video.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
using MediaBrowser.Controller.Configuration;
|
using MediaBrowser.Controller.Configuration;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
|
using MediaBrowser.Model.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
|
@ -29,7 +28,7 @@ namespace MediaBrowser.Controller.Providers
|
||||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
|
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
|
||||||
public override bool Supports(BaseItem item)
|
public override bool Supports(BaseItem item)
|
||||||
{
|
{
|
||||||
return item.ResolveArgs.IsDirectory && item.LocationType == LocationType.FileSystem;
|
return item.LocationType == LocationType.FileSystem && item.ResolveArgs.IsDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -518,6 +518,8 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||||
// Add in the plug-in folders
|
// Add in the plug-in folders
|
||||||
foreach (var child in PluginFolderCreators)
|
foreach (var child in PluginFolderCreators)
|
||||||
{
|
{
|
||||||
|
var folder = child.GetFolder();
|
||||||
|
|
||||||
rootFolder.AddVirtualChild(child.GetFolder());
|
rootFolder.AddVirtualChild(child.GetFolder());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue