allow strm probe to succeed

This commit is contained in:
whiteowl3 2022-03-11 06:54:25 +00:00
parent a5ffde0e9c
commit 6f25291931
2 changed files with 20 additions and 15 deletions

View File

@ -458,17 +458,19 @@ namespace MediaBrowser.MediaEncoding.Encoder
{ {
_logger.LogDebug("{ProcessFileName} {ProcessArgs}", process.StartInfo.FileName, process.StartInfo.Arguments); _logger.LogDebug("{ProcessFileName} {ProcessArgs}", process.StartInfo.FileName, process.StartInfo.Arguments);
} }
using (var processWrapper = new ProcessWrapper(process, this)) using (var processWrapper = new ProcessWrapper(process, this))
{ {
MemoryStream memoryStream = new MemoryStream();
_logger.LogDebug("Starting ffprobe with args {Args}", args); _logger.LogDebug("Starting ffprobe with args {Args}", args);
StartProcess(processWrapper); StartProcess(processWrapper);
await process.StandardOutput.BaseStream.CopyToAsync(memoryStream, cancellationToken: cancellationToken);
memoryStream.Seek(0, SeekOrigin.Begin);
InternalMediaInfoResult result; InternalMediaInfoResult result;
try try
{ {
result = await JsonSerializer.DeserializeAsync<InternalMediaInfoResult>( result = await JsonSerializer.DeserializeAsync<InternalMediaInfoResult>(
process.StandardOutput.BaseStream, memoryStream,
_jsonSerializerOptions, _jsonSerializerOptions,
cancellationToken: cancellationToken).ConfigureAwait(false); cancellationToken: cancellationToken).ConfigureAwait(false);
} }

View File

@ -100,25 +100,28 @@ namespace MediaBrowser.Providers.MediaInfo
foreach (var pathInfo in pathInfos) foreach (var pathInfo in pathInfos)
{ {
var mediaInfo = await GetMediaInfo(pathInfo.Path, _type, cancellationToken).ConfigureAwait(false); if (!pathInfo.Path.EndsWith(".strm"))
if (mediaInfo.MediaStreams.Count == 1)
{ {
MediaStream mediaStream = mediaInfo.MediaStreams[0]; var mediaInfo = await GetMediaInfo(pathInfo.Path, _type, cancellationToken).ConfigureAwait(false);
mediaStream.Index = startIndex++;
mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
mediaStreams.Add(MergeMetadata(mediaStream, pathInfo)); if (mediaInfo.MediaStreams.Count == 1)
}
else
{
foreach (MediaStream mediaStream in mediaInfo.MediaStreams)
{ {
MediaStream mediaStream = mediaInfo.MediaStreams[0];
mediaStream.Index = startIndex++; mediaStream.Index = startIndex++;
mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
mediaStreams.Add(MergeMetadata(mediaStream, pathInfo)); mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
} }
else
{
foreach (MediaStream mediaStream in mediaInfo.MediaStreams)
{
mediaStream.Index = startIndex++;
mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
}
}
} }
} }