mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-07 00:08:29 +01:00
fixes #1484 - (Feature request) Make emby choose output stream based on ffmpeg config
This commit is contained in:
@@ -23,4 +23,17 @@ namespace MediaBrowser.Model.Dlna
|
||||
/// <returns><c>true</c> if this instance [can access URL] the specified URL; otherwise, <c>false</c>.</returns>
|
||||
bool CanAccessUrl(string url, bool requiresCustomRequestHeaders);
|
||||
}
|
||||
|
||||
public interface ITranscoderSupport
|
||||
{
|
||||
bool CanEncodeToAudioCodec(string codec);
|
||||
}
|
||||
|
||||
public class FullTranscoderSupport : ITranscoderSupport
|
||||
{
|
||||
public bool CanEncodeToAudioCodec(string codec)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,15 +13,27 @@ namespace MediaBrowser.Model.Dlna
|
||||
{
|
||||
private readonly ILocalPlayer _localPlayer;
|
||||
private readonly ILogger _logger;
|
||||
private readonly ITranscoderSupport _transcoderSupport;
|
||||
|
||||
public StreamBuilder(ILocalPlayer localPlayer, ILogger logger)
|
||||
public StreamBuilder(ILocalPlayer localPlayer, ITranscoderSupport transcoderSupport, ILogger logger)
|
||||
{
|
||||
_transcoderSupport = transcoderSupport;
|
||||
_localPlayer = localPlayer;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public StreamBuilder(ITranscoderSupport transcoderSupport, ILogger logger)
|
||||
: this(new NullLocalPlayer(), transcoderSupport, logger)
|
||||
{
|
||||
}
|
||||
|
||||
public StreamBuilder(ILocalPlayer localPlayer, ILogger logger)
|
||||
: this(localPlayer, new FullTranscoderSupport(), logger)
|
||||
{
|
||||
}
|
||||
|
||||
public StreamBuilder(ILogger logger)
|
||||
: this(new NullLocalPlayer(), logger)
|
||||
: this(new NullLocalPlayer(), new FullTranscoderSupport(), logger)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -185,8 +197,11 @@ namespace MediaBrowser.Model.Dlna
|
||||
{
|
||||
if (i.Type == playlistItem.MediaType && i.Context == options.Context)
|
||||
{
|
||||
transcodingProfile = i;
|
||||
break;
|
||||
if (_transcoderSupport.CanEncodeToAudioCodec(i.AudioCodec ?? i.Container))
|
||||
{
|
||||
transcodingProfile = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user