Skip to content

Commit

Permalink
Extra logging, refactor some code, add another way to kill thing.
Browse files Browse the repository at this point in the history
  • Loading branch information
bakes82 committed Jan 12, 2021
1 parent 126eb64 commit b4e2762
Showing 1 changed file with 47 additions and 4 deletions.
51 changes: 47 additions & 4 deletions KillStreams/KillStreamScheduledTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,49 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
foreach (var sessionManagerSession in SessionManager.Sessions)
{
Logger.Info(
$"Device Id {sessionManagerSession.DeviceId} - UserName {sessionManagerSession.UserName} - ID {sessionManagerSession.Id} PlayState Method {sessionManagerSession.PlayState?.PlayMethod} AudioDirect {sessionManagerSession.TranscodingInfo?.IsAudioDirect} Video Direct {sessionManagerSession.TranscodingInfo?.IsVideoDirect}");
$"Device Id {sessionManagerSession.DeviceId} - UserName {sessionManagerSession.UserName} - ID {sessionManagerSession.Id} PlayState Method {sessionManagerSession.PlayState?.PlayMethod} AudioDirect {sessionManagerSession.TranscodingInfo?.IsAudioDirect} Video Direct {sessionManagerSession.TranscodingInfo?.IsVideoDirect} MediaSourceId {sessionManagerSession.PlayState?.MediaSourceId}");
if (sessionManagerSession.PlayState != null &&
sessionManagerSession.PlayState.PlayMethod == PlayMethod.Transcode &&
sessionManagerSession.NowPlayingItem != null)
{
var mediaSourceItem =
sessionManagerSession.FullNowPlayingItem.GetMediaSources(false, false, new LibraryOptions())
.Single(x =>
.SingleOrDefault(x =>
string.Equals(x.Id, sessionManagerSession.PlayState.MediaSourceId,
StringComparison.CurrentCultureIgnoreCase));
StringComparison.OrdinalIgnoreCase));

if (mediaSourceItem == null)
{
var sources = sessionManagerSession.FullNowPlayingItem.GetMediaSources(false, false,
new LibraryOptions());

Logger.Info($"Not found Id {sessionManagerSession.PlayState.MediaSourceId} in IDs ({string.Join(", ", sources.Select(x => x.Id))})");

Logger.Info("Inside Kill Video Unknown");
Logger.Info(
$"Device Id {sessionManagerSession.DeviceId} - UserName {sessionManagerSession.UserName} - ID {sessionManagerSession.Id}");

await SessionManager.SendPlaystateCommand(null, sessionManagerSession.Id,
new PlaystateRequest
{
Command = PlaystateCommand.Stop,
ControllingUserId = UserManager.Users
.FirstOrDefault(user => user.Policy.IsAdministrator)?.Id.ToString()
}, new CancellationToken());

var text = "Stream stopped because file has an unknown source not in database. What do I do!?!?! Send help.";

await SessionManager.SendMessageCommand(null, sessionManagerSession.Id,
new MessageCommand
{
Header = "Transcoding of Unknown file not found in sources",
Text = prettyText(text)
//TimeoutMs = 10000
},
new CancellationToken());
return;

}

Logger.Info(
$"Height {mediaSourceItem.VideoStream.Height} Width {mediaSourceItem.VideoStream.Width}");
Expand All @@ -64,7 +97,7 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
{
Logger.Info("Inside Kill Video 4k");
Logger.Info(
$"Device Id {sessionManagerSession.DeviceId} - UserName {sessionManagerSession.UserName} - ID {sessionManagerSession.Id}");
$"Device Id {sessionManagerSession.DeviceId} - UserName {sessionManagerSession.UserName} - ID {sessionManagerSession.Id} - Supports Media Control {sessionManagerSession.Capabilities.SupportsMediaControl} - Supported Commands {string.Join(", ", sessionManagerSession.Capabilities.SupportedCommands)}");

await SessionManager.SendPlaystateCommand(null, sessionManagerSession.Id,
new PlaystateRequest
Expand All @@ -86,6 +119,10 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
//TimeoutMs = 10000
},
new CancellationToken());

SessionManager.ReportSessionEnded(sessionManagerSession.Id);

return;
}

if (sessionManagerSession.TranscodingInfo != null && is4K &&
Expand Down Expand Up @@ -116,6 +153,8 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
//TimeoutMs = 10000
},
new CancellationToken());

return;
}

if (is4K && Plugin.Instance.PluginConfiguration.Allow4KAudioTranscode &&
Expand All @@ -139,6 +178,8 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
//TimeoutMs = 10000
},
new CancellationToken());

return;
}
}

Expand All @@ -161,6 +202,8 @@ public async Task Execute(CancellationToken cancellationToken, IProgress<double>
Text = prettyText(text)
},
new CancellationToken());

return;
}
}

Expand Down

0 comments on commit b4e2762

Please sign in to comment.