|
|
|
@ -65,10 +65,26 @@ namespace MediaBrowser.MediaEncoding.Attachments
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var mediaSources = await _mediaSourceManager.GetPlayackMediaSources(item, null, true, false, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
var mediaSource = mediaSources
|
|
|
|
|
.First(i => string.Equals(i.Id, mediaSourceId, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
var mediaAttachment = mediaSource.MediaAttachments
|
|
|
|
|
.First(i => i.Index == attachmentStreamIndex);
|
|
|
|
|
MediaSourceInfo mediaSource;
|
|
|
|
|
MediaAttachment mediaAttachment;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
mediaSource = mediaSources
|
|
|
|
|
.First(i => string.Equals(i.Id, mediaSourceId, StringComparison.OrdinalIgnoreCase));
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex) when (ex is ArgumentNullException || ex is InvalidOperationException)
|
|
|
|
|
{
|
|
|
|
|
throw new ResourceNotFoundException($"MediaSource {mediaSourceId} not found");
|
|
|
|
|
}
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
mediaAttachment = mediaSource.MediaAttachments
|
|
|
|
|
.First(i => i.Index == attachmentStreamIndex);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex) when (ex is ArgumentNullException || ex is InvalidOperationException)
|
|
|
|
|
{
|
|
|
|
|
throw new ResourceNotFoundException($"MediaSource {mediaSourceId} has no attachment with stream index {attachmentStreamIndex}");
|
|
|
|
|
}
|
|
|
|
|
var attachmentStream = await GetAttachmentStream(mediaSource, mediaAttachment, cancellationToken)
|
|
|
|
|
.ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|