@meframe/core 0.0.31 → 0.0.33
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.
- package/dist/Meframe.d.ts +2 -2
- package/dist/Meframe.d.ts.map +1 -1
- package/dist/Meframe.js +3 -2
- package/dist/Meframe.js.map +1 -1
- package/dist/cache/CacheManager.d.ts +12 -17
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.js +18 -280
- package/dist/cache/CacheManager.js.map +1 -1
- package/dist/cache/l1/AudioL1Cache.d.ts +36 -19
- package/dist/cache/l1/AudioL1Cache.d.ts.map +1 -1
- package/dist/cache/l1/AudioL1Cache.js +182 -282
- package/dist/cache/l1/AudioL1Cache.js.map +1 -1
- package/dist/controllers/PlaybackController.d.ts +5 -3
- package/dist/controllers/PlaybackController.d.ts.map +1 -1
- package/dist/controllers/PlaybackController.js +58 -16
- package/dist/controllers/PlaybackController.js.map +1 -1
- package/dist/event/events.d.ts +1 -1
- package/dist/event/events.d.ts.map +1 -1
- package/dist/event/events.js.map +1 -1
- package/dist/model/CompositionModel.d.ts +8 -0
- package/dist/model/CompositionModel.d.ts.map +1 -1
- package/dist/model/CompositionModel.js +18 -0
- package/dist/model/CompositionModel.js.map +1 -1
- package/dist/model/types.d.ts +0 -4
- package/dist/model/types.d.ts.map +1 -1
- package/dist/model/types.js.map +1 -1
- package/dist/orchestrator/ExportScheduler.d.ts +10 -0
- package/dist/orchestrator/ExportScheduler.d.ts.map +1 -1
- package/dist/orchestrator/ExportScheduler.js +66 -83
- package/dist/orchestrator/ExportScheduler.js.map +1 -1
- package/dist/orchestrator/GlobalAudioSession.d.ts +35 -28
- package/dist/orchestrator/GlobalAudioSession.d.ts.map +1 -1
- package/dist/orchestrator/GlobalAudioSession.js +213 -422
- package/dist/orchestrator/GlobalAudioSession.js.map +1 -1
- package/dist/orchestrator/OnDemandVideoSession.d.ts +3 -3
- package/dist/orchestrator/OnDemandVideoSession.d.ts.map +1 -1
- package/dist/orchestrator/OnDemandVideoSession.js +4 -4
- package/dist/orchestrator/OnDemandVideoSession.js.map +1 -1
- package/dist/orchestrator/Orchestrator.d.ts +11 -4
- package/dist/orchestrator/Orchestrator.d.ts.map +1 -1
- package/dist/orchestrator/Orchestrator.js +75 -68
- package/dist/orchestrator/Orchestrator.js.map +1 -1
- package/dist/orchestrator/VideoClipSession.d.ts +0 -2
- package/dist/orchestrator/VideoClipSession.d.ts.map +1 -1
- package/dist/orchestrator/VideoClipSession.js +0 -49
- package/dist/orchestrator/VideoClipSession.js.map +1 -1
- package/dist/stages/compose/OfflineAudioMixer.d.ts.map +1 -1
- package/dist/stages/compose/OfflineAudioMixer.js +13 -18
- package/dist/stages/compose/OfflineAudioMixer.js.map +1 -1
- package/dist/stages/decode/AudioChunkDecoder.js +169 -0
- package/dist/stages/decode/AudioChunkDecoder.js.map +1 -0
- package/dist/stages/demux/MP3FrameParser.js +186 -0
- package/dist/stages/demux/MP3FrameParser.js.map +1 -0
- package/dist/stages/load/ResourceLoader.d.ts +49 -30
- package/dist/stages/load/ResourceLoader.d.ts.map +1 -1
- package/dist/stages/load/ResourceLoader.js +255 -189
- package/dist/stages/load/ResourceLoader.js.map +1 -1
- package/dist/stages/load/TaskManager.d.ts +4 -0
- package/dist/stages/load/TaskManager.d.ts.map +1 -1
- package/dist/stages/load/TaskManager.js +11 -0
- package/dist/stages/load/TaskManager.js.map +1 -1
- package/dist/stages/load/types.d.ts +1 -0
- package/dist/stages/load/types.d.ts.map +1 -1
- package/dist/utils/audio-data.d.ts +16 -0
- package/dist/utils/audio-data.d.ts.map +1 -0
- package/dist/utils/audio-data.js +111 -0
- package/dist/utils/audio-data.js.map +1 -0
- package/package.json +1 -1
- package/dist/cache/resource/ImageBitmapCache.d.ts +0 -65
- package/dist/cache/resource/ImageBitmapCache.d.ts.map +0 -1
- package/dist/cache/resource/ImageBitmapCache.js +0 -101
- package/dist/cache/resource/ImageBitmapCache.js.map +0 -1
|
@@ -22,29 +22,37 @@ interface AudioSessionDeps {
|
|
|
22
22
|
export declare class GlobalAudioSession {
|
|
23
23
|
private mixer;
|
|
24
24
|
private activeClips;
|
|
25
|
-
private streamEndedClips;
|
|
26
25
|
private deps;
|
|
27
26
|
private model;
|
|
28
27
|
private audioContext;
|
|
29
|
-
private audioSources;
|
|
30
|
-
private audioGainNodes;
|
|
31
28
|
private volume;
|
|
32
29
|
private playbackRate;
|
|
33
30
|
private isPlaying;
|
|
34
|
-
private
|
|
35
|
-
private
|
|
31
|
+
private nextScheduleTime;
|
|
32
|
+
private nextContentTimeUs;
|
|
33
|
+
private scheduledSources;
|
|
34
|
+
private readonly LOOKAHEAD_TIME;
|
|
35
|
+
private readonly CHUNK_DURATION;
|
|
36
36
|
constructor(deps: AudioSessionDeps);
|
|
37
37
|
setModel(model: CompositionModel): void;
|
|
38
38
|
onAudioData(message: AudioDataMessage): void;
|
|
39
|
-
ensureAudioForTime(timeUs: TimeUs
|
|
39
|
+
ensureAudioForTime(timeUs: TimeUs, options?: {
|
|
40
|
+
immediate?: boolean;
|
|
41
|
+
}): Promise<void>;
|
|
40
42
|
activateAllAudioClips(): Promise<void>;
|
|
41
43
|
deactivateClip(clipId: string): Promise<void>;
|
|
42
|
-
restartPlayingClip(clipId: string, currentTimeUs?: TimeUs): void;
|
|
43
|
-
private stopClipAudioSources;
|
|
44
|
-
handleAudioStream(stream: ReadableStream<AudioData>, metadata: Record<string, any>): void;
|
|
45
44
|
startPlayback(timeUs: TimeUs, audioContext: AudioContext): Promise<void>;
|
|
46
45
|
stopPlayback(): void;
|
|
47
|
-
updateTime(
|
|
46
|
+
updateTime(_timeUs: TimeUs): void;
|
|
47
|
+
/**
|
|
48
|
+
* Schedule audio chunks ahead of playback cursor
|
|
49
|
+
* Uses OfflineAudioMixer for proper mixing, then plays the result
|
|
50
|
+
*/
|
|
51
|
+
scheduleAudio(currentTimelineUs: TimeUs, audioContext: AudioContext): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Reset playback states (called on seek)
|
|
54
|
+
*/
|
|
55
|
+
resetPlaybackStates(): void;
|
|
48
56
|
setVolume(volume: number): void;
|
|
49
57
|
setPlaybackRate(rate: number): void;
|
|
50
58
|
reset(): void;
|
|
@@ -52,40 +60,39 @@ export declare class GlobalAudioSession {
|
|
|
52
60
|
* Mix and encode audio for a specific segment (used by ExportScheduler)
|
|
53
61
|
*/
|
|
54
62
|
mixAndEncodeSegment(startUs: TimeUs, endUs: TimeUs, onChunk: (chunk: EncodedAudioChunk, metadata?: EncodedAudioChunkMetadata) => void): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Ensure audio clips in time range are decoded (for export)
|
|
65
|
+
* Decodes from AudioSampleCache (replaces Worker pipeline)
|
|
66
|
+
*/
|
|
67
|
+
private ensureAudioForSegment;
|
|
55
68
|
private exportEncoder;
|
|
56
69
|
private exportEncoderStream;
|
|
57
70
|
private exportEncoderWriter;
|
|
58
71
|
private startExportEncoderReader;
|
|
59
72
|
finalizeExportAudio(): Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* Create export audio stream
|
|
62
|
-
*/
|
|
63
|
-
createExportAudioStream(): Promise<ReadableStream<AudioData> | null>;
|
|
64
|
-
private waitForAudioClipsReady;
|
|
65
|
-
private waitForClipPCM;
|
|
66
|
-
private startAllActiveClips;
|
|
67
|
-
private checkAndStartNewClips;
|
|
68
|
-
private startClipPlayback;
|
|
69
73
|
private stopAllAudioSources;
|
|
70
|
-
private getActiveAudioClips;
|
|
71
74
|
/**
|
|
72
|
-
* Ensure
|
|
73
|
-
*
|
|
75
|
+
* Ensure audio window for a clip (aligned with video architecture)
|
|
76
|
+
*
|
|
77
|
+
* Note: Unlike video getFrame(), this method doesn't need a 'preheat' parameter
|
|
78
|
+
* Why: Audio cache check is window-level (range query) via hasWindowPCM()
|
|
79
|
+
* It verifies the entire window has ≥80% data, not just a single point
|
|
80
|
+
* This naturally prevents premature return during preheating
|
|
74
81
|
*/
|
|
75
|
-
|
|
82
|
+
ensureAudioWindow(clipId: string, startUs: TimeUs, endUs: TimeUs): Promise<void>;
|
|
76
83
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
84
|
+
* Decode audio window for a clip (aligned with video architecture)
|
|
85
|
+
* Simple strategy: decode entire window range, cache handles duplicates
|
|
79
86
|
*/
|
|
80
|
-
private
|
|
87
|
+
private decodeAudioWindow;
|
|
81
88
|
/**
|
|
82
89
|
* Decode audio samples to PCM and cache
|
|
90
|
+
* Uses AudioChunkDecoder for consistency with project architecture
|
|
91
|
+
* Resamples to AudioContext sample rate if needed for better quality
|
|
83
92
|
*/
|
|
84
93
|
private decodeAudioSamples;
|
|
85
|
-
private pcmToAudioBuffer;
|
|
86
94
|
private audioBufferToAudioData;
|
|
87
95
|
private interleavePlanarData;
|
|
88
|
-
private setupAudioPipeline;
|
|
89
96
|
}
|
|
90
97
|
export {};
|
|
91
98
|
//# sourceMappingURL=GlobalAudioSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalAudioSession.d.ts","sourceRoot":"","sources":["../../src/orchestrator/GlobalAudioSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"GlobalAudioSession.d.ts","sourceRoot":"","sources":["../../src/orchestrator/GlobalAudioSession.ts"],"names":[],"mappings":"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"}
|