commit
2f8591e54a
|
@ -56,8 +56,9 @@ namespace Emby.Dlna.PlayTo
|
||||||
if (profile.Container.Length > 0)
|
if (profile.Container.Length > 0)
|
||||||
{
|
{
|
||||||
// Check container type
|
// Check container type
|
||||||
var mediaContainer = Path.GetExtension(mediaPath);
|
var mediaContainer = (Path.GetExtension(mediaPath) ?? string.Empty).TrimStart('.');
|
||||||
if (!profile.GetContainers().Any(i => string.Equals("." + i.TrimStart('.'), mediaContainer, StringComparison.OrdinalIgnoreCase)))
|
|
||||||
|
if (!profile.SupportsContainer(mediaContainer))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -855,11 +855,6 @@ namespace MediaBrowser.Api.Playback.Hls
|
||||||
{
|
{
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
// No known video stream
|
|
||||||
if (state.VideoStream == null)
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
|
var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
|
||||||
|
|
||||||
|
|
|
@ -79,11 +79,6 @@ namespace MediaBrowser.Api.Playback.Hls
|
||||||
{
|
{
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
// No known video stream
|
|
||||||
if (state.VideoStream == null)
|
|
||||||
{
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
|
var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
using MediaBrowser.Model.Dlna;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Model.Dlna
|
namespace MediaBrowser.Model.Dlna
|
||||||
{
|
{
|
||||||
|
@ -28,6 +29,19 @@ namespace MediaBrowser.Model.Dlna
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool SupportsContainer(string container)
|
||||||
|
{
|
||||||
|
var all = GetContainers();
|
||||||
|
|
||||||
|
// Only allow unknown container if the profile is all inclusive
|
||||||
|
if (string.IsNullOrWhiteSpace(container))
|
||||||
|
{
|
||||||
|
return all.Count == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return all.Count == 0 || all.Contains(container, StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
public List<string> GetAudioCodecs()
|
public List<string> GetAudioCodecs()
|
||||||
{
|
{
|
||||||
List<string> list = new List<string>();
|
List<string> list = new List<string>();
|
||||||
|
|
|
@ -491,14 +491,9 @@ namespace MediaBrowser.Model.Dlna
|
||||||
var videoSupported = false;
|
var videoSupported = false;
|
||||||
|
|
||||||
foreach (var profile in directPlayProfiles)
|
foreach (var profile in directPlayProfiles)
|
||||||
{
|
|
||||||
if (profile.Container.Length > 0)
|
|
||||||
{
|
{
|
||||||
// Check container type
|
// Check container type
|
||||||
string mediaContainer = item.Container ?? string.Empty;
|
if (profile.SupportsContainer(item.Container))
|
||||||
foreach (string i in profile.GetContainers())
|
|
||||||
{
|
|
||||||
if (StringHelper.EqualsIgnoreCase(i, mediaContainer))
|
|
||||||
{
|
{
|
||||||
containerSupported = true;
|
containerSupported = true;
|
||||||
|
|
||||||
|
@ -539,8 +534,6 @@ namespace MediaBrowser.Model.Dlna
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!containerSupported)
|
if (!containerSupported)
|
||||||
{
|
{
|
||||||
|
@ -1537,25 +1530,12 @@ namespace MediaBrowser.Model.Dlna
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsAudioDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream audioStream)
|
private bool IsAudioDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream audioStream)
|
||||||
{
|
|
||||||
if (profile.Container.Length > 0)
|
|
||||||
{
|
{
|
||||||
// Check container type
|
// Check container type
|
||||||
string mediaContainer = item.Container ?? string.Empty;
|
if (!profile.SupportsContainer(item.Container))
|
||||||
bool any = false;
|
|
||||||
foreach (string i in profile.GetContainers())
|
|
||||||
{
|
|
||||||
if (StringHelper.EqualsIgnoreCase(i, mediaContainer))
|
|
||||||
{
|
|
||||||
any = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!any)
|
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check audio codec
|
// Check audio codec
|
||||||
List<string> audioCodecs = profile.GetAudioCodecs();
|
List<string> audioCodecs = profile.GetAudioCodecs();
|
||||||
|
@ -1573,25 +1553,12 @@ namespace MediaBrowser.Model.Dlna
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream)
|
private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream)
|
||||||
{
|
|
||||||
if (profile.Container.Length > 0)
|
|
||||||
{
|
{
|
||||||
// Check container type
|
// Check container type
|
||||||
string mediaContainer = item.Container ?? string.Empty;
|
if (!profile.SupportsContainer(item.Container))
|
||||||
bool any = false;
|
|
||||||
foreach (string i in profile.GetContainers())
|
|
||||||
{
|
|
||||||
if (StringHelper.EqualsIgnoreCase(i, mediaContainer))
|
|
||||||
{
|
|
||||||
any = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!any)
|
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Check video codec
|
// Check video codec
|
||||||
List<string> videoCodecs = profile.GetVideoCodecs();
|
List<string> videoCodecs = profile.GetVideoCodecs();
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyVersion("3.2.25.3")]
|
[assembly: AssemblyVersion("3.2.25.4")]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user