mirror of
https://github.com/revenz/FileFlowsPlugins.git
synced 2025-12-30 18:50:50 -06:00
57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using FileFlows.VideoNodes.FfmpegBuilderNodes;
|
|
using FileFlows.VideoNodes.FfmpegBuilderNodes.Models;
|
|
using FileFlows.VideoNodes.Helpers;
|
|
|
|
namespace FileFlows.VideoNodes;
|
|
|
|
/// <summary>
|
|
/// Flow element to test if a video is 10 bit or not
|
|
/// </summary>
|
|
public class VideoIs10Bit : VideoNode
|
|
{
|
|
/// <summary>
|
|
/// Gets the number of inputs
|
|
/// </summary>
|
|
public override int Inputs => 1;
|
|
/// <summary>
|
|
/// Gets the number of outputs
|
|
/// </summary>
|
|
public override int Outputs => 2;
|
|
/// <summary>
|
|
/// Gets the type of flow element
|
|
/// </summary>
|
|
public override FlowElementType Type => FlowElementType.Logic;
|
|
/// <summary>
|
|
/// Gets the help URL
|
|
/// </summary>
|
|
public override string HelpUrl => "https://fileflows.com/docs/plugins/video-nodes/logical-nodes/video-is-10-bit";
|
|
/// <inheritdoc />
|
|
public override string Icon => "fas fa-question";
|
|
|
|
/// <summary>
|
|
/// Executes the flow element
|
|
/// </summary>
|
|
/// <param name="args">the arguments</param>
|
|
/// <returns>the output to call next</returns>
|
|
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;
|
|
}
|
|
}
|