public static async Task <List <string> > GetAllLanguageCodes( this IQueryable <LanguageCode> languageCodes, string mediaCode) { if (string.IsNullOrWhiteSpace(mediaCode)) { return(new List <string>()); } string code = mediaCode.ToLowerInvariant(); List <LanguageCode> maybeLanguages = await languageCodes .Filter(lc => lc.ThreeCode1 == code || lc.ThreeCode2 == code) .ToListAsync(); var result = new System.Collections.Generic.HashSet <string>(); foreach (LanguageCode language in maybeLanguages) { if (!string.IsNullOrWhiteSpace(language.ThreeCode1)) { result.Add(language.ThreeCode1); } if (!string.IsNullOrWhiteSpace(language.ThreeCode2)) { result.Add(language.ThreeCode2); } } return(result.ToList()); }
public static async Task <List <string> > GetAllLanguageCodes( this IQueryable <LanguageCode> languageCodes, List <string> mediaCodes) { var validCodes = mediaCodes .Filter(c => !string.IsNullOrWhiteSpace(c)) .Map(c => c.ToLowerInvariant()) .ToList(); if (validCodes.Count == 0) { return(new List <string>()); } List <LanguageCode> maybeLanguages = await languageCodes .Filter(lc => validCodes.Contains(lc.ThreeCode1) || validCodes.Contains(lc.ThreeCode2)) .ToListAsync(); var result = new System.Collections.Generic.HashSet <string>(); foreach (LanguageCode language in maybeLanguages) { if (!string.IsNullOrWhiteSpace(language.ThreeCode1)) { result.Add(language.ThreeCode1); } if (!string.IsNullOrWhiteSpace(language.ThreeCode2)) { result.Add(language.ThreeCode2); } } return(result.ToList()); }
private static async Task <List <HardwareAccelerationKind> > GetSupportedAccelerationKinds( string ffmpegPath, CancellationToken cancellationToken) { var result = new System.Collections.Generic.HashSet <HardwareAccelerationKind>(); string output = await GetProcessOutput(ffmpegPath, new[] { "-v", "quiet", "-hwaccels" }, cancellationToken); foreach (string method in output.Split("\n").Map(s => s.Trim()).Skip(1)) { switch (method) { case "vaapi": result.Add(HardwareAccelerationKind.Vaapi); break; case "nvenc": result.Add(HardwareAccelerationKind.Nvenc); break; case "cuda": result.Add(HardwareAccelerationKind.Nvenc); break; case "qsv": result.Add(HardwareAccelerationKind.Qsv); break; case "videotoolbox": result.Add(HardwareAccelerationKind.VideoToolbox); break; } } return(result.ToList()); }