shiveshnavin's picture
Add speed
f077067
import _ from 'lodash'
import fs from 'fs'
import { SplitRenderPlugin } from './split-render.js';
import { FramesPlugin } from './frames.js';
import { CaptionPlugin } from './generate-captions.js';
import { FlattenPathsPlugin } from './flatten-paths.js';
import { SpeedPlugin } from './speed.js';
const pluginRegistry = {
'split-media-render': SplitRenderPlugin,
'frames': FramesPlugin,
'generate-captions': CaptionPlugin,
'flatten-paths': FlattenPathsPlugin,
'speed': SpeedPlugin,
};
export async function applyPluginsPrerender(plugins, originalManuscript, originalManuscriptPath, jobId) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
_.set(originalManuscript, 'meta.plugins', plugins)
console.log(`Applying plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPrerender(originalManuscript, jobId);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
}
}
export async function applyPluginsPostrender(plugins, originalManuscript, originalManuscriptPath, jobId, outFiles) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
console.log(`Applying post-render plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPostrender(originalManuscript, jobId, outFiles);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
}