using FileFlows.VideoNodes.FfmpegBuilderNodes; using FileFlows.VideoNodes.FfmpegBuilderNodes.Models; using FileFlows.VideoNodes.Helpers; namespace FileFlows.VideoNodes; /// /// Flow element to test if a video is 12 bit or not /// public class VideoIs12Bit : 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-12-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 is12Bit = videoInfo.VideoStreams?.Any(x => x.Bits == 12) == true; if (is12Bit) { args.Logger?.ILog("Video is 12 bit"); return 1; } args.Logger?.ILog("Video is not 12 bit"); return 2; } }