Skip to content

Commit

Permalink
chore: project metadata improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
hkonsti committed Sep 5, 2024
1 parent 9b4a0a1 commit 7ab40c9
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 59 deletions.
5 changes: 3 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
"shaders"
],
"dependencies": {
"@types/chroma-js": "2.4.4",
"chroma-js": "2.4.2",
"mp4-wasm": "^1.0.6"
},
"devDependencies": {
"@types/chroma-js": "2.4.4",
"@revideo/internal": "0.0.0",
"jsdom": "^22.1.0",
"vitest": "^0.34.6"
Expand Down
27 changes: 13 additions & 14 deletions packages/core/src/app/Project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,18 @@ export interface Versions {
vitePlugin: string | null;
}

export type ExporterSettings =
| {
name: '@revideo/core/image-sequence';
options: ImageExporterOptions;
}
| {
name: '@revideo/core/ffmpeg';
}
| {
name: '@revideo/core/wasm';
};

// TODO(refactor): figure out naming
export interface ProjectSettings2 {
shared: {
Expand All @@ -89,20 +101,7 @@ export interface ProjectSettings2 {
audioOffset: number; // TODO: check what this does
};
rendering: {
// TODO: check if we can get rid of options
exporter:
| {
name: '@revideo/core/image-sequence';
options: ImageExporterOptions;
}
| {
name: '@revideo/core/ffmpeg';
options: undefined;
}
| {
name: '@revideo/core/wasm';
options: undefined;
};
exporter: ExporterSettings;
fps: number;
resolutionScale: number; // TODO: check what this does
colorSpace: CanvasColorSpace; // TODO: check what this does
Expand Down
35 changes: 0 additions & 35 deletions packages/core/src/app/ProjectMetadata.ts

This file was deleted.

7 changes: 2 additions & 5 deletions packages/core/src/app/Renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {Vector2} from '../types';
import {Semaphore} from '../utils';
import {PlaybackManager, PlaybackState} from './PlaybackManager';
import {PlaybackStatus} from './PlaybackStatus';
import type {Project} from './Project';
import type {ExporterSettings, Project} from './Project';
import {SharedWebGLContext} from './SharedWebGLContext';
import {Stage, StageSettings} from './Stage';
import {TimeEstimator} from './TimeEstimator';
Expand All @@ -21,10 +21,7 @@ export interface RendererSettings extends StageSettings {
name: string;
range: [number, number];
fps: number;
exporter: {
name: string;
options: unknown;
};
exporter: ExporterSettings;
hiddenFolderId?: string;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/app/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ export * from './PlaybackStatus';
export * from './Player';
export * from './Presenter';
export * from './Project';
export * from './ProjectMetadata';
export * from './Renderer';
export * from './SharedWebGLContext';
export * from './Stage';
export * from './bootstrap';
export * from './project-settings';
23 changes: 23 additions & 0 deletions packages/core/src/app/project-settings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import type {Project} from './Project';

type SharedSettings = Project['settingsNew']['shared'];
type PreviewSettings = Project['settingsNew']['preview'];
type RenderingSettings = Project['settingsNew']['rendering'];

export function getFullPreviewSettings(
project: Project,
): SharedSettings & PreviewSettings {
return {
...project.settingsNew.shared,
...project.settingsNew.preview,
};
}

export function getFullRenderingSettings(
project: Project,
): SharedSettings & RenderingSettings {
return {
...project.settingsNew.shared,
...project.settingsNew.rendering,
};
}
6 changes: 6 additions & 0 deletions packages/core/src/exporter/ImageExporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ export class ImageExporter implements Exporter {
private readonly logger: Logger,
settings: RendererSettings,
) {
if (settings.exporter.name !== ImageExporter.id) {
throw new Error(
`Invalid exporter name: ${settings.exporter.name}. Expected: ${ImageExporter.id}`,
);
}

const options = settings.exporter.options as ImageExporterOptions;
this.projectName = settings.name;
this.quality = clamp(0, 1, options.quality / 100);
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/plugin/DefaultPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import {makePlugin} from './makePlugin';
/**
* The default plugin included in every Motion Canvas project.
*
* TODO(refactor): I don't think these are plugins anymore.
*
* @internal
*/
export default makePlugin({
Expand Down
1 change: 0 additions & 1 deletion packages/template/src/project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ const final = bootstrap(
rendering: {
exporter: {
name: '@revideo/core/wasm',
options: {},
},
fps: 60,
resolutionScale: 1,
Expand Down

0 comments on commit 7ab40c9

Please sign in to comment.