Example #1
0
    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());
    }
Example #2
0
    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());
    }