diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts index 5f5a90b..6db06a6 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts @@ -1,25 +1,52 @@ -import { getEncoder } from './hardwareUtils'; - -const run = async () => { - const encoderProperties = await getEncoder({ - targetCodec: 'h264', - hardwareEncoding: true, - hardwareType: 'auto', - // @ts-expect-error type - args: { - workerType: 'transcodegpu', - ffmpegPath: 'ffmpeg', - jobLog: (t:string) => { - // eslint-disable-next-line no-console - console.log(t); - }, +import { getEncoder, IgetEncoder } from './hardwareUtils'; + +const baseInput = { + targetCodec: 'h264', + hardwareEncoding: true, + hardwareType: 'auto', + args: { + workerType: 'transcodegpu', + ffmpegPath: 'ffmpeg', + jobLog: () => { + // }, - }); + }, +}; + +interface IcheckHardware { + targetCodec:string | undefined, + hardwareEncoding:boolean | undefined, + hardwareType:string | undefined, + ffmpegPath:string | undefined, +} + +const checkHardware = async (settings:IcheckHardware):Promise => { + const input = JSON.parse(JSON.stringify(baseInput)); + + input.args.jobLog = () => { + // eslint-disable-next-line no-console + // console.log(t); + }; + + if (settings.targetCodec) { + input.targetCodec = settings.targetCodec; + } + + if (settings.hardwareEncoding) { + input.hardwareEncoding = settings.hardwareEncoding; + } + + if (settings.hardwareType) { + input.hardwareType = settings.hardwareType; + } + + if (settings.ffmpegPath) { + input.args.ffmpegPath = settings.ffmpegPath; + } + + const encoderProperties = await getEncoder(input); - // eslint-disable-next-line no-console - console.log({ - encoderProperties, - }); + return encoderProperties; }; -void run(); +export default checkHardware;