Backport pull request #11812 from jellyfin/release-10.9.z

Extract media attachment one by one if the filename appears to be a path

Original-merge: 45e8872cc0

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
master
gnattu 4 weeks ago committed by Joshua M. Boniface
parent 1a94976752
commit c4b7c91f3a

@ -88,6 +88,18 @@ namespace MediaBrowser.MediaEncoding.Attachments
MediaSourceInfo mediaSource,
string outputPath,
CancellationToken cancellationToken)
{
var shouldExtractOneByOne = mediaSource.MediaAttachments.Any(a => a.FileName.Contains('/', StringComparison.OrdinalIgnoreCase) || a.FileName.Contains('\\', StringComparison.OrdinalIgnoreCase));
if (shouldExtractOneByOne)
{
var attachmentIndexes = mediaSource.MediaAttachments.Select(a => a.Index);
foreach (var i in attachmentIndexes)
{
var newName = Path.Join(outputPath, i.ToString(CultureInfo.InvariantCulture));
await ExtractAttachment(inputFile, mediaSource, i, newName, cancellationToken).ConfigureAwait(false);
}
}
else
{
using (await _semaphoreLocks.LockAsync(outputPath, cancellationToken).ConfigureAwait(false))
{
@ -101,6 +113,7 @@ namespace MediaBrowser.MediaEncoding.Attachments
}
}
}
}
public async Task ExtractAllAttachmentsExternal(
string inputArgument,

Loading…
Cancel
Save