commit
a075fefca9
|
@ -34,6 +34,7 @@
|
|||
- [ullmie02](https://github.com/ullmie02)
|
||||
- [geilername](https://github.com/geilername)
|
||||
- [pR0Ps](https://github.com/pR0Ps)
|
||||
- [artiume](https://github.com/Artiume)
|
||||
|
||||
|
||||
# Emby Contributors
|
||||
|
|
|
@ -412,10 +412,12 @@ namespace MediaBrowser.Api.Playback
|
|||
user.Policy.EnableAudioPlaybackTranscoding);
|
||||
}
|
||||
|
||||
// Beginning of Playback Determination: Attempt DirectPlay first
|
||||
if (mediaSource.SupportsDirectPlay)
|
||||
{
|
||||
if (mediaSource.IsRemote && forceDirectPlayRemoteMediaSource)
|
||||
if (mediaSource.IsRemote && user.Policy.ForceRemoteSourceTranscoding)
|
||||
{
|
||||
mediaSource.SupportsDirectPlay = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -461,6 +463,12 @@ namespace MediaBrowser.Api.Playback
|
|||
}
|
||||
|
||||
if (mediaSource.SupportsDirectStream)
|
||||
{
|
||||
if (mediaSource.IsRemote && user.Policy.ForceRemoteSourceTranscoding)
|
||||
{
|
||||
mediaSource.SupportsDirectStream = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
options.MaxBitrate = GetMaxBitrate(maxBitrate, user);
|
||||
|
||||
|
@ -494,6 +502,7 @@ namespace MediaBrowser.Api.Playback
|
|||
SetDeviceSpecificSubtitleInfo(streamInfo, mediaSource, auth.Token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mediaSource.SupportsTranscoding)
|
||||
{
|
||||
|
@ -504,6 +513,27 @@ namespace MediaBrowser.Api.Playback
|
|||
? streamBuilder.BuildAudioItem(options)
|
||||
: streamBuilder.BuildVideoItem(options);
|
||||
|
||||
if (mediaSource.IsRemote && user.Policy.ForceRemoteSourceTranscoding)
|
||||
{
|
||||
if (streamInfo != null)
|
||||
{
|
||||
streamInfo.PlaySessionId = playSessionId;
|
||||
streamInfo.StartPositionTicks = startTimeTicks;
|
||||
mediaSource.TranscodingUrl = streamInfo.ToUrl("-", auth.Token).TrimStart('-');
|
||||
mediaSource.TranscodingUrl += "&allowVideoStreamCopy=false";
|
||||
if (!allowAudioStreamCopy)
|
||||
{
|
||||
mediaSource.TranscodingUrl += "&allowAudioStreamCopy=false";
|
||||
}
|
||||
mediaSource.TranscodingContainer = streamInfo.Container;
|
||||
mediaSource.TranscodingSubProtocol = streamInfo.SubProtocol;
|
||||
|
||||
// Do this after the above so that StartPositionTicks is set
|
||||
SetDeviceSpecificSubtitleInfo(streamInfo, mediaSource, auth.Token);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (streamInfo != null)
|
||||
{
|
||||
streamInfo.PlaySessionId = playSessionId;
|
||||
|
@ -517,6 +547,13 @@ namespace MediaBrowser.Api.Playback
|
|||
{
|
||||
mediaSource.TranscodingUrl += "&allowVideoStreamCopy=false";
|
||||
}
|
||||
if (!allowAudioStreamCopy)
|
||||
{
|
||||
mediaSource.TranscodingUrl += "&allowAudioStreamCopy=false";
|
||||
}
|
||||
mediaSource.TranscodingContainer = streamInfo.Container;
|
||||
mediaSource.TranscodingSubProtocol = streamInfo.SubProtocol;
|
||||
}
|
||||
|
||||
if (!allowAudioStreamCopy)
|
||||
{
|
||||
|
@ -525,12 +562,12 @@ namespace MediaBrowser.Api.Playback
|
|||
|
||||
mediaSource.TranscodingContainer = streamInfo.Container;
|
||||
mediaSource.TranscodingSubProtocol = streamInfo.SubProtocol;
|
||||
}
|
||||
|
||||
// Do this after the above so that StartPositionTicks is set
|
||||
SetDeviceSpecificSubtitleInfo(streamInfo, mediaSource, auth.Token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var attachment in mediaSource.MediaAttachments)
|
||||
{
|
||||
|
|
|
@ -47,6 +47,7 @@ namespace MediaBrowser.Model.Users
|
|||
public bool EnableAudioPlaybackTranscoding { get; set; }
|
||||
public bool EnableVideoPlaybackTranscoding { get; set; }
|
||||
public bool EnablePlaybackRemuxing { get; set; }
|
||||
public bool ForceRemoteSourceTranscoding { get; set; }
|
||||
|
||||
public bool EnableContentDeletion { get; set; }
|
||||
public string[] EnableContentDeletionFromFolders { get; set; }
|
||||
|
@ -94,7 +95,7 @@ namespace MediaBrowser.Model.Users
|
|||
EnableAudioPlaybackTranscoding = true;
|
||||
EnableVideoPlaybackTranscoding = true;
|
||||
EnablePlaybackRemuxing = true;
|
||||
|
||||
ForceRemoteSourceTranscoding = false;
|
||||
EnableLiveTvManagement = true;
|
||||
EnableLiveTvAccess = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user