using FileFlows.VideoNodes.FfmpegBuilderNodes; using FileFlows.VideoNodes.FfmpegBuilderNodes.Models; using FileFlows.VideoNodes.Helpers; namespace FileFlows.VideoNodes; /// /// Flow element to test if a video is 10 bit or not /// public class VideoIs10Bit : VideoNode { /// /// Gets the number of inputs /// public override int Inputs => 1; /// /// Gets the number of outputs /// public override int Outputs => 2; /// /// Gets the type of flow element /// public override FlowElementType Type => FlowElementType.Logic; /// /// Gets the help URL /// public override string HelpUrl => "https://fileflows.com/docs/plugins/video-nodes/logical-nodes/video-is-10-bit"; /// public override string Icon => "fas fa-question"; /// /// Executes the flow element /// /// the arguments /// the output to call next public override int Execute(NodeParameters args) { var videoInfo = GetVideoInfo(args); if (videoInfo == null) { args.FailureReason = "Failed to retrieve video info"; args.Logger?.ELog(args.FailureReason); return -1; } bool is10Bit = videoInfo.VideoStreams?.Any(x => x.Bits == 10) == true; if (is10Bit) { args.Logger?.ILog("Video is 10 bit"); return 1; } args.Logger?.ILog("Video is not 10 bit"); return 2; } }