Example #1
0
        public ArgumentCalculator(WorkItem wi, FFmpegPreset preset)
        {
            if (wi?.Media?.FFProbeMediaInfo == null)
            {
                throw new ArgumentException("MediaInfo is not available");
            }

            AudioStreams = wi.Media.FFProbeMediaInfo.AudioStreams ?? new HashSet <Stream>();
            VideoStreams = wi.Media.FFProbeMediaInfo.VideoStreams ?? new HashSet <Stream> ();

            Preset = preset;

            ColorPrimaries = wi.Media.FFProbeMediaInfo.VideoStreams?.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x.color_primaries))?.color_primaries;
            ColorTransfer  = wi.Media.FFProbeMediaInfo.VideoStreams?.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x.color_transfer))?.color_transfer;

            VideoEncoderOptions = new();
            foreach (var veo in preset.VideoEncoderOptions)
            {
                var eov = new EncoderOptionValue(veo.Name)
                {
                    AutoCalculate = veo.AutoCalculate,
                    EncoderOption = veo.EncoderOption,
                    Value         = veo.Value
                };
                VideoEncoderOptions.Add(eov);
            }
        }
Example #2
0
 public EncoderOptionValueBase(EncoderOptionValue eov)
 {
     Name          = eov?.Name;
     Value         = eov?.Value;
     AutoCalculate = eov?.AutoCalculate ?? false;
 }