@norskvideo/norsk-studio-built-ins 1.26.0-2025-02-24-f187dd83 → 1.26.0-2025-02-25-7fa494e5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/client/info.js +328 -159
  2. package/lib/info.js +23 -13
  3. package/lib/info.js.map +1 -1
  4. package/lib/output.autoCmaf/runtime.js +2 -7
  5. package/lib/output.autoCmaf/runtime.js.map +1 -1
  6. package/lib/output.facebook/info.d.ts +7 -0
  7. package/lib/output.facebook/info.js +31 -0
  8. package/lib/output.facebook/info.js.map +1 -0
  9. package/lib/output.facebook/runtime.d.ts +12 -0
  10. package/lib/output.facebook/runtime.js +20 -0
  11. package/lib/output.facebook/runtime.js.map +1 -0
  12. package/lib/output.facebook/types.d.ts +19 -0
  13. package/lib/output.facebook/types.js +3 -0
  14. package/lib/output.facebook/types.js.map +1 -0
  15. package/lib/output.facebook/types.yaml +19 -0
  16. package/lib/output.linkedin/info.d.ts +7 -0
  17. package/lib/output.linkedin/info.js +31 -0
  18. package/lib/output.linkedin/info.js.map +1 -0
  19. package/lib/output.linkedin/runtime.d.ts +12 -0
  20. package/lib/output.linkedin/runtime.js +20 -0
  21. package/lib/output.linkedin/runtime.js.map +1 -0
  22. package/lib/output.linkedin/types.d.ts +19 -0
  23. package/lib/output.linkedin/types.js +3 -0
  24. package/lib/output.linkedin/types.js.map +1 -0
  25. package/lib/output.linkedin/types.yaml +19 -0
  26. package/lib/output.rtmp/info.d.ts +9 -2
  27. package/lib/output.rtmp/info.js +25 -20
  28. package/lib/output.rtmp/info.js.map +1 -1
  29. package/lib/output.rtmp/inline-view.d.ts +3 -2
  30. package/lib/output.rtmp/inline-view.js.map +1 -1
  31. package/lib/output.rtmp/runtime.d.ts +23 -11
  32. package/lib/output.rtmp/runtime.js +92 -92
  33. package/lib/output.rtmp/runtime.js.map +1 -1
  34. package/lib/output.rtmp/summary-view.d.ts +3 -3
  35. package/lib/output.rtmp/summary-view.js.map +1 -1
  36. package/lib/output.twitch/info.d.ts +7 -0
  37. package/lib/output.twitch/info.js +31 -0
  38. package/lib/output.twitch/info.js.map +1 -0
  39. package/lib/output.twitch/runtime.d.ts +12 -0
  40. package/lib/output.twitch/runtime.js +20 -0
  41. package/lib/output.twitch/runtime.js.map +1 -0
  42. package/lib/output.twitch/types.d.ts +19 -0
  43. package/lib/output.twitch/types.js +3 -0
  44. package/lib/output.twitch/types.js.map +1 -0
  45. package/lib/output.twitch/types.yaml +19 -0
  46. package/lib/output.youtube/info.d.ts +7 -0
  47. package/lib/output.youtube/info.js +31 -0
  48. package/lib/output.youtube/info.js.map +1 -0
  49. package/lib/output.youtube/runtime.d.ts +12 -0
  50. package/lib/output.youtube/runtime.js +20 -0
  51. package/lib/output.youtube/runtime.js.map +1 -0
  52. package/lib/output.youtube/types.d.ts +19 -0
  53. package/lib/output.youtube/types.js +3 -0
  54. package/lib/output.youtube/types.js.map +1 -0
  55. package/lib/output.youtube/types.yaml +19 -0
  56. package/lib/processor.audioEncoder/info.d.ts +9 -2
  57. package/lib/processor.audioEncoder/runtime.d.ts +7 -16
  58. package/lib/processor.audioEncoder/runtime.js +8 -0
  59. package/lib/processor.audioEncoder/runtime.js.map +1 -1
  60. package/lib/processor.audioEncoder/types.d.ts +34 -0
  61. package/lib/processor.audioEncoder/types.js +3 -0
  62. package/lib/processor.audioEncoder/types.js.map +1 -0
  63. package/lib/processor.audioEncoder/types.yaml +103 -0
  64. package/lib/processor.fixedLadder/runtime.d.ts +2 -2
  65. package/lib/processor.fixedLadder/runtime.js +2 -9
  66. package/lib/processor.fixedLadder/runtime.js.map +1 -1
  67. package/lib/processor.videoDecoder/info.d.ts +3 -0
  68. package/lib/processor.videoDecoder/info.js +48 -0
  69. package/lib/processor.videoDecoder/info.js.map +1 -0
  70. package/lib/processor.videoDecoder/runtime.d.ts +12 -0
  71. package/lib/processor.videoDecoder/runtime.js +17 -0
  72. package/lib/processor.videoDecoder/runtime.js.map +1 -0
  73. package/lib/shared/schemas.d.ts +8 -0
  74. package/lib/shared/schemas.js +19 -0
  75. package/lib/shared/schemas.js.map +1 -0
  76. package/package.json +2 -2
@@ -1,3 +1,10 @@
1
1
  import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
- import type { AudioEncoderConfig } from "./runtime";
3
- export default function ({ defineComponent, Audio, validation: { Z }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<AudioEncoderConfig, object, object, object>;
2
+ export default function ({ defineComponent, Audio, validation: { Z }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<{
3
+ id: string;
4
+ displayName: string;
5
+ notes?: string;
6
+ renditionName: string;
7
+ channelLayout: import("./types").components["schemas"]["channelLayout"];
8
+ bitrate: number;
9
+ codec: import("./types").components["schemas"]["codec"];
10
+ }, object, object, object>;
@@ -1,21 +1,12 @@
1
- import { AacProfile, ChannelLayout, Norsk, SampleRate } from "@norskvideo/norsk-sdk";
1
+ import { Norsk } from "@norskvideo/norsk-sdk";
2
2
  import { SimpleProcessorWrapper } from "@norskvideo/norsk-studio/lib/extension/base-nodes";
3
3
  import { OnCreated, ServerComponentDefinition } from '@norskvideo/norsk-studio/lib/extension/runtime-types';
4
- export type AudioEncoderConfig = {
5
- id: string;
6
- displayName: string;
7
- notes?: string;
8
- renditionName: string;
9
- channelLayout: ChannelLayout;
10
- bitrate: number;
11
- codec: {
12
- kind: 'aac';
13
- profile: AacProfile;
14
- sampleRate: SampleRate;
15
- } | {
16
- kind: 'opus';
17
- };
18
- };
4
+ import { components } from "./types";
5
+ export type AudioEncoderConfig = components['schemas']['audioEncoderConfig'];
19
6
  export default class AudioEncoderDefinition implements ServerComponentDefinition<AudioEncoderConfig, SimpleProcessorWrapper> {
20
7
  create(norsk: Norsk, cfg: AudioEncoderConfig, cb: OnCreated<SimpleProcessorWrapper>): Promise<void>;
8
+ schemas(): Promise<{
9
+ config: import("openapi-types").OpenAPIV3.SchemaObject | undefined;
10
+ state: import("openapi-types").OpenAPIV3.SchemaObject | undefined;
11
+ }>;
21
12
  }
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const base_nodes_1 = require("@norskvideo/norsk-studio/lib/extension/base-nodes");
7
+ const path_1 = __importDefault(require("path"));
8
+ const schemas_1 = require("../shared/schemas");
4
9
  class AudioEncoderDefinition {
5
10
  async create(norsk, cfg, cb) {
6
11
  const wrapper = new base_nodes_1.SimpleProcessorWrapper(cfg.id, async () => {
@@ -15,6 +20,9 @@ class AudioEncoderDefinition {
15
20
  await wrapper.initialised;
16
21
  cb(wrapper);
17
22
  }
23
+ async schemas() {
24
+ return (0, schemas_1.schemaFromTypes)(path_1.default.join(__dirname, 'types.yaml'), { config: 'audioEncoderConfig' });
25
+ }
18
26
  }
19
27
  exports.default = AudioEncoderDefinition;
20
28
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.audioEncoder/runtime.ts"],"names":[],"mappings":";;AACA,kFAA2F;AAmB3F,MAAqB,sBAAsB;IACzC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAuB,EAAE,EAAqC;QACvF,MAAM,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;gBACjD,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS;gBACtB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,mBAAmB,EAAE,GAAG,CAAC,aAAa;gBACtC,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AAdD,yCAcC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.audioEncoder/runtime.ts"],"names":[],"mappings":";;;;;AACA,kFAA2F;AAE3F,gDAAwB;AAExB,+CAAoD;AAIpD,MAAqB,sBAAsB;IACzC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAuB,EAAE,EAAqC;QACvF,MAAM,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;gBACjD,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS;gBACtB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,mBAAmB,EAAE,GAAG,CAAC,aAAa;gBACtC,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAA,yBAAe,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EACvD,EAAE,MAAM,EAAE,oBAAoB,EAAE,CACjC,CAAA;IACH,CAAC;CACF;AApBD,yCAoBC"}
@@ -0,0 +1,34 @@
1
+ export type paths = Record<string, never>;
2
+ export type webhooks = Record<string, never>;
3
+ export interface components {
4
+ schemas: {
5
+ channelLayout: "mono" | "stereo" | "surround" | "4.0" | "5.0" | "5.1" | "7.1" | "5.1.4" | "7.1.4";
6
+ sampleRate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 64000 | 88200 | 96000;
7
+ aacProfile: "main" | "lc" | "high";
8
+ aac: {
9
+ kind: "aac";
10
+ profile: components["schemas"]["aacProfile"];
11
+ sampleRate: components["schemas"]["sampleRate"];
12
+ };
13
+ opus: {
14
+ kind: "opus";
15
+ };
16
+ codec: components["schemas"]["aac"] | components["schemas"]["opus"];
17
+ audioEncoderConfig: {
18
+ id: string;
19
+ displayName: string;
20
+ notes?: string;
21
+ renditionName: string;
22
+ channelLayout: components["schemas"]["channelLayout"];
23
+ bitrate: number;
24
+ codec: components["schemas"]["codec"];
25
+ };
26
+ };
27
+ responses: never;
28
+ parameters: never;
29
+ requestBodies: never;
30
+ headers: never;
31
+ pathItems: never;
32
+ }
33
+ export type $defs = Record<string, never>;
34
+ export type operations = Record<string, never>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/processor.audioEncoder/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ title: Audio Encoder Component
4
+ version: 1.0.0
5
+
6
+ components:
7
+ schemas:
8
+ channelLayout:
9
+ type: string
10
+ enum:
11
+ - mono
12
+ - stereo
13
+ - surround
14
+ - "4.0"
15
+ - "5.0"
16
+ - "5.1"
17
+ - "7.1"
18
+ - "5.1.4"
19
+ - "7.1.4"
20
+ description: Audio channel configuration
21
+
22
+ sampleRate:
23
+ type: number
24
+ enum:
25
+ - 8000
26
+ - 11025
27
+ - 12000
28
+ - 16000
29
+ - 22050
30
+ - 24000
31
+ - 32000
32
+ - 44100
33
+ - 48000
34
+ - 64000
35
+ - 88200
36
+ - 96000
37
+ description: Audio sample rate in Hz
38
+
39
+ aacProfile:
40
+ type: string
41
+ enum:
42
+ - main
43
+ - lc
44
+ - high
45
+ description: AAC encoding profile
46
+
47
+ aac:
48
+ type: object
49
+ properties:
50
+ kind:
51
+ type: string
52
+ enum: ['aac']
53
+ profile:
54
+ $ref: '#/components/schemas/aacProfile'
55
+ sampleRate:
56
+ $ref: '#/components/schemas/sampleRate'
57
+ required: ['kind', 'profile', 'sampleRate']
58
+
59
+ opus:
60
+ type: object
61
+ properties:
62
+ kind:
63
+ type: string
64
+ enum: ['opus']
65
+ required: ['kind']
66
+
67
+ codec:
68
+ oneOf:
69
+ - $ref: '#/components/schemas/aac'
70
+ - $ref: '#/components/schemas/opus'
71
+ discriminator:
72
+ propertyName: kind
73
+
74
+ audioEncoderConfig:
75
+ type: object
76
+ properties:
77
+ id:
78
+ type: string
79
+ description: Unique identifier for the component
80
+ displayName:
81
+ type: string
82
+ description: Human-readable name for the component
83
+ notes:
84
+ type: string
85
+ description: Optional notes about the component configuration
86
+ renditionName:
87
+ type: string
88
+ description: Name of this rendition of encoded audio
89
+ channelLayout:
90
+ $ref: '#/components/schemas/channelLayout'
91
+ bitrate:
92
+ type: number
93
+ minimum: 4000
94
+ description: Bitrate in bits per second
95
+ codec:
96
+ $ref: '#/components/schemas/codec'
97
+ required:
98
+ - id
99
+ - displayName
100
+ - renditionName
101
+ - channelLayout
102
+ - bitrate
103
+ - codec
@@ -3,7 +3,6 @@ import { SimpleProcessorWrapper } from "@norskvideo/norsk-studio/lib/extension/b
3
3
  import { HardwareAccelerationType } from '@norskvideo/norsk-studio/lib/shared/config';
4
4
  import { components } from './types';
5
5
  import { Norsk } from '@norskvideo/norsk-sdk';
6
- import { OpenAPIV3 } from 'openapi-types';
7
6
  export type SoftwareLadderRung = components['schemas']['softwareLadderRung'];
8
7
  export type Ma35dLadderRung = components['schemas']['ma35dLadderRung'];
9
8
  export type LoganLadderRung = components['schemas']['loganLadderRung'];
@@ -19,7 +18,8 @@ export type FixedLadderConfig = Omit<components["schemas"]["fixedLadderConfig"],
19
18
  export default class FixedLadderDefinition implements ServerComponentDefinition<FixedLadderConfig, SimpleProcessorWrapper> {
20
19
  create(norsk: Norsk, cfg: FixedLadderConfig, cb: OnCreated<SimpleProcessorWrapper>): Promise<void>;
21
20
  schemas(): Promise<{
22
- config: OpenAPIV3.SchemaObject;
21
+ config: import("openapi-types").OpenAPIV3.SchemaObject | undefined;
22
+ state: import("openapi-types").OpenAPIV3.SchemaObject | undefined;
23
23
  }>;
24
24
  }
25
25
  export {};
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const base_nodes_1 = require("@norskvideo/norsk-studio/lib/extension/base-nodes");
7
7
  const logging_1 = require("@norskvideo/norsk-studio/lib/server/logging");
8
8
  const path_1 = __importDefault(require("path"));
9
- const promises_1 = __importDefault(require("fs/promises"));
10
- const yaml_1 = __importDefault(require("yaml"));
11
- const json_refs_1 = require("json-refs");
9
+ const schemas_1 = require("../shared/schemas");
12
10
  class FixedLadderDefinition {
13
11
  async create(norsk, cfg, cb) {
14
12
  const wrapper = new base_nodes_1.SimpleProcessorWrapper(cfg.id, async () => {
@@ -23,12 +21,7 @@ class FixedLadderDefinition {
23
21
  cb(wrapper);
24
22
  }
25
23
  async schemas() {
26
- const types = await promises_1.default.readFile(path_1.default.join(__dirname, 'types.yaml'));
27
- const root = yaml_1.default.parse(types.toString());
28
- const resolved = await (0, json_refs_1.resolveRefs)(root, {}).then((r) => r.resolved);
29
- return {
30
- config: resolved.components.schemas['fixedLadderConfig']
31
- };
24
+ return (0, schemas_1.schemaFromTypes)(path_1.default.join(__dirname, 'types.yaml'), { config: 'fixedLadderConfig' });
32
25
  }
33
26
  }
34
27
  exports.default = FixedLadderDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.fixedLadder/runtime.ts"],"names":[],"mappings":";;;;;AACA,kFAA2F;AAE3F,yEAAyE;AAGzE,gDAAwB;AACxB,2DAA6B;AAC7B,gDAAwB;AACxB,yCAAwC;AAmBxC,MAAqB,qBAAqB;IACxC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAsB,EAAE,EAAqC;QACtF,MAAM,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;gBACjD,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS;gBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;qBACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBAChD,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;IAGD,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAA8B,CAAC,CAAC;QAC3F,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,UAAW,CAAC,OAAQ,CAAC,mBAAmB,CAA2B;SACrF,CAAA;IACH,CAAC;CACF;AAvBD,wCAuBC;AAED,SAAS,UAAU,CAAC,IAA0B,EAAE,QAAuB;IACrE,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA0B,EAAE,QAA2C;IACjG,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,oBAAU,EAAC,kDAAkD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnF,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA0B;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,oBAAU,EAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.fixedLadder/runtime.ts"],"names":[],"mappings":";;;;;AACA,kFAA2F;AAE3F,yEAAyE;AAGzE,gDAAwB;AACxB,+CAAoD;AAkBpD,MAAqB,qBAAqB;IACxC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAsB,EAAE,EAAqC;QACtF,MAAM,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;gBACjD,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS;gBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;qBACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;qBAChD,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;IAGD,KAAK,CAAC,OAAO;QACX,OAAO,IAAA,yBAAe,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EACvD,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAChC,CAAA;IACH,CAAC;CACF;AApBD,wCAoBC;AAED,SAAS,UAAU,CAAC,IAA0B,EAAE,QAAuB;IACrE,IAAI,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA0B,EAAE,QAA2C;IACjG,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,oBAAU,EAAC,kDAAkD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnF,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA0B;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,oBAAU,EAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ import type { VideoDecoderConfig } from "./runtime";
3
+ export default function ({ defineComponent, Video, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<VideoDecoderConfig, object, object, object>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ function default_1({ defineComponent, Video, }) {
5
+ return defineComponent({
6
+ identifier: 'processor.videoDecoder',
7
+ category: 'processor',
8
+ name: "Video Decoder",
9
+ description: "Explicit video decode.",
10
+ subscription: {
11
+ accepts: {
12
+ type: 'single-stream',
13
+ media: Video
14
+ },
15
+ produces: {
16
+ type: 'single-stream',
17
+ media: Video
18
+ },
19
+ },
20
+ display: ({ config }) => {
21
+ const displayed = {
22
+ acceleration: config.mode,
23
+ };
24
+ return displayed;
25
+ },
26
+ extraValidation: (ctx) => {
27
+ ctx.requireVideo(1);
28
+ },
29
+ configForm: {
30
+ form: {
31
+ mode: {
32
+ help: "Acceleration",
33
+ hint: {
34
+ type: 'select',
35
+ defaultValue: "software",
36
+ options: [
37
+ { display: "Software", value: "software" },
38
+ { display: "Quadra", value: "quadra" },
39
+ { display: "Nvidia", value: "nvidia" },
40
+ ],
41
+ },
42
+ },
43
+ notes: { help: "Notes about this component", hint: { type: 'text', optional: true } },
44
+ }
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/processor.videoDecoder/info.ts"],"names":[],"mappings":";;AAGA,4BA8CC;AA9CD,mBAAwB,EACtB,eAAe,EACf,KAAK,GACQ;IACb,OAAO,eAAe,CAAqB;QACzC,UAAU,EAAE,wBAAwB;QACpC,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wBAAwB;QACrC,YAAY,EAAE;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,KAAK;aACb;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,KAAK;aACb;SACF;QACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACtB,MAAM,SAAS,GAA2B;gBACxC,YAAY,EAAE,MAAM,CAAC,IAAI;aAC1B,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,UAAU;wBACxB,OAAO,EAAE;4BACP,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;4BAC1C,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;4BACtC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;yBACvC;qBACF;iBACF;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;aACtF;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Norsk, VideoDecodeSettings } from "@norskvideo/norsk-sdk";
2
+ import { SimpleProcessorWrapper } from "@norskvideo/norsk-studio/lib/extension/base-nodes";
3
+ import { OnCreated, ServerComponentDefinition } from '@norskvideo/norsk-studio/lib/extension/runtime-types';
4
+ export type VideoDecoderConfig = {
5
+ id: string;
6
+ displayName: string;
7
+ notes?: string;
8
+ mode: VideoDecodeSettings["decoder"];
9
+ };
10
+ export default class VideoDecoderDefinition implements ServerComponentDefinition<VideoDecoderConfig, SimpleProcessorWrapper> {
11
+ create(norsk: Norsk, cfg: VideoDecoderConfig, cb: OnCreated<SimpleProcessorWrapper>): Promise<void>;
12
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_nodes_1 = require("@norskvideo/norsk-studio/lib/extension/base-nodes");
4
+ class VideoDecoderDefinition {
5
+ async create(norsk, cfg, cb) {
6
+ const wrapper = new base_nodes_1.SimpleProcessorWrapper(cfg.id, async () => {
7
+ return await norsk.processor.transform.videoDecode({
8
+ id: `${cfg.id}-ladder`,
9
+ decoder: cfg.mode
10
+ });
11
+ });
12
+ await wrapper.initialised;
13
+ cb(wrapper);
14
+ }
15
+ }
16
+ exports.default = VideoDecoderDefinition;
17
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.videoDecoder/runtime.ts"],"names":[],"mappings":";;AACA,kFAA2F;AAU3F,MAAqB,sBAAsB;IACzC,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,GAAuB,EAAE,EAAqC;QACvF,MAAM,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAC5D,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC;gBACjD,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS;gBACtB,OAAO,EAAE,GAAG,CAAC,IAAI;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AAXD,yCAWC"}
@@ -0,0 +1,8 @@
1
+ import { OpenAPIV3 } from 'openapi-types';
2
+ export declare function schemaFromTypes(path: string, keys: {
3
+ config?: string;
4
+ state?: string;
5
+ }): Promise<{
6
+ config: OpenAPIV3.SchemaObject | undefined;
7
+ state: OpenAPIV3.SchemaObject | undefined;
8
+ }>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.schemaFromTypes = schemaFromTypes;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const yaml_1 = __importDefault(require("yaml"));
9
+ const json_refs_1 = require("json-refs");
10
+ async function schemaFromTypes(path, keys) {
11
+ const types = await promises_1.default.readFile(path);
12
+ const root = yaml_1.default.parse(types.toString());
13
+ const resolved = await (0, json_refs_1.resolveRefs)(root, {}).then((r) => r.resolved);
14
+ return {
15
+ config: keys.config ? resolved.components.schemas[keys.config] : undefined,
16
+ state: keys.state ? resolved.components.schemas[keys.state] : undefined
17
+ };
18
+ }
19
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/shared/schemas.ts"],"names":[],"mappings":";;;;;AAKA,0CAQC;AAbD,2DAA6B;AAC7B,gDAAwB;AACxB,yCAAwC;AAGjC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAyC;IAC3F,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAA8B,CAAC,CAAC;IAC3F,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAW,CAAC,OAAQ,CAAC,IAAI,CAAC,MAAM,CAA2B,CAAC,CAAC,CAAC,SAAS;QACtG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAW,CAAC,OAAQ,CAAC,IAAI,CAAC,KAAK,CAA2B,CAAC,CAAC,CAAC,SAAS;KACpG,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/norsk-studio-built-ins",
3
- "version": "1.26.0-2025-02-24-f187dd83",
3
+ "version": "1.26.0-2025-02-25-7fa494e5",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "clean": "rm -rf lib",
@@ -22,7 +22,7 @@
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
24
  "@norskvideo/norsk-sdk": "^1.0.401-2025-02-24-9426a203",
25
- "@norskvideo/norsk-studio": "^1.26.0-2025-02-24-db3d232b",
25
+ "@norskvideo/norsk-studio": "^1.26.0-2025-02-25-db3d232b",
26
26
  "@norskvideo/webrtc-client": "^0.1.2",
27
27
  "body-parser": "^1.20.2",
28
28
  "cors": "^2.8.5",