@tscaps/engine 0.3.1 → 0.4.0
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/README.md +35 -8
- package/dist/modules/document/CssVariable.d.ts +6 -0
- package/dist/modules/document/CssVariable.d.ts.map +1 -1
- package/dist/modules/document/CssVariable.js +6 -0
- package/dist/modules/document/CssVariable.js.map +1 -1
- package/dist/modules/document/Document.d.ts +3 -0
- package/dist/modules/document/Document.d.ts.map +1 -1
- package/dist/modules/document/Document.js +12 -1
- package/dist/modules/document/Document.js.map +1 -1
- package/dist/modules/document/DocumentEditor.d.ts +16 -4
- package/dist/modules/document/DocumentEditor.d.ts.map +1 -1
- package/dist/modules/document/DocumentEditor.js +14 -10
- package/dist/modules/document/DocumentEditor.js.map +1 -1
- package/dist/modules/document/Line.d.ts +6 -0
- package/dist/modules/document/Line.d.ts.map +1 -1
- package/dist/modules/document/Line.js +10 -0
- package/dist/modules/document/Line.js.map +1 -1
- package/dist/modules/document/Word.d.ts +8 -0
- package/dist/modules/document/Word.d.ts.map +1 -1
- package/dist/modules/document/Word.js +11 -1
- package/dist/modules/document/Word.js.map +1 -1
- package/dist/modules/pipeline/RenderPipelineBuilder.d.ts +1 -1
- package/dist/modules/pipeline/RenderPipelineBuilder.d.ts.map +1 -1
- package/dist/modules/pipeline/RenderPipelineBuilder.js +15 -5
- package/dist/modules/pipeline/RenderPipelineBuilder.js.map +1 -1
- package/dist/modules/rendering/BrowserSubtitleFrameRenderer.d.ts +18 -8
- package/dist/modules/rendering/BrowserSubtitleFrameRenderer.d.ts.map +1 -1
- package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js +27 -21
- package/dist/modules/rendering/BrowserSubtitleFrameRenderer.js.map +1 -1
- package/dist/modules/rendering/SubtitleFrameRenderer.d.ts +41 -33
- package/dist/modules/rendering/SubtitleFrameRenderer.d.ts.map +1 -1
- package/dist/modules/rendering/index.d.ts +4 -0
- package/dist/modules/rendering/index.d.ts.map +1 -1
- package/dist/modules/rendering/index.js +2 -0
- package/dist/modules/rendering/index.js.map +1 -1
- package/dist/modules/rendering/subtitle/ActiveRenderSession.d.ts +13 -6
- package/dist/modules/rendering/subtitle/ActiveRenderSession.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/ActiveRenderSession.js +16 -9
- package/dist/modules/rendering/subtitle/ActiveRenderSession.js.map +1 -1
- package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.d.ts +5 -2
- package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.js +26 -8
- package/dist/modules/rendering/subtitle/ActiveRenderSessionFactory.js.map +1 -1
- package/dist/modules/rendering/subtitle/AnimationStateFingerprint.d.ts +20 -0
- package/dist/modules/rendering/subtitle/AnimationStateFingerprint.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/AnimationStateFingerprint.js +2 -0
- package/dist/modules/rendering/subtitle/AnimationStateFingerprint.js.map +1 -0
- package/dist/modules/rendering/subtitle/AssetGroupBuilder.d.ts +4 -0
- package/dist/modules/rendering/subtitle/AssetGroupBuilder.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/AssetGroupBuilder.js +8 -0
- package/dist/modules/rendering/subtitle/AssetGroupBuilder.js.map +1 -1
- package/dist/modules/rendering/subtitle/BatchPlanner.d.ts +50 -5
- package/dist/modules/rendering/subtitle/BatchPlanner.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/BatchPlanner.js +97 -15
- package/dist/modules/rendering/subtitle/BatchPlanner.js.map +1 -1
- package/dist/modules/rendering/subtitle/ElementWidthMeasurer.d.ts +56 -0
- package/dist/modules/rendering/subtitle/ElementWidthMeasurer.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/ElementWidthMeasurer.js +119 -0
- package/dist/modules/rendering/subtitle/ElementWidthMeasurer.js.map +1 -0
- package/dist/modules/rendering/subtitle/ElementWidths.d.ts +23 -0
- package/dist/modules/rendering/subtitle/ElementWidths.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/ElementWidths.js +29 -0
- package/dist/modules/rendering/subtitle/ElementWidths.js.map +1 -0
- package/dist/modules/rendering/subtitle/ImageDecodeSpriteSheetRasterProbe.d.ts +18 -0
- package/dist/modules/rendering/subtitle/ImageDecodeSpriteSheetRasterProbe.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/ImageDecodeSpriteSheetRasterProbe.js +42 -0
- package/dist/modules/rendering/subtitle/ImageDecodeSpriteSheetRasterProbe.js.map +1 -0
- package/dist/modules/rendering/subtitle/KeyframeScanAnimationStateFingerprint.d.ts +35 -0
- package/dist/modules/rendering/subtitle/KeyframeScanAnimationStateFingerprint.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/KeyframeScanAnimationStateFingerprint.js +64 -0
- package/dist/modules/rendering/subtitle/KeyframeScanAnimationStateFingerprint.js.map +1 -0
- package/dist/modules/rendering/subtitle/PreparedStyle.d.ts +2 -0
- package/dist/modules/rendering/subtitle/PreparedStyle.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/PreparedStyleFactory.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/PreparedStyleFactory.js +12 -1
- package/dist/modules/rendering/subtitle/PreparedStyleFactory.js.map +1 -1
- package/dist/modules/rendering/subtitle/SegmentAnchorVarsBuilder.d.ts +28 -0
- package/dist/modules/rendering/subtitle/SegmentAnchorVarsBuilder.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SegmentAnchorVarsBuilder.js +23 -0
- package/dist/modules/rendering/subtitle/SegmentAnchorVarsBuilder.js.map +1 -0
- package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.d.ts +3 -0
- package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.js +12 -3
- package/dist/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.js.map +1 -1
- package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.d.ts +7 -1
- package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.js +23 -5
- package/dist/modules/rendering/subtitle/SegmentWrapperRenderer.js.map +1 -1
- package/dist/modules/rendering/subtitle/SpriteSheetProbeObserver.d.ts +29 -0
- package/dist/modules/rendering/subtitle/SpriteSheetProbeObserver.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SpriteSheetProbeObserver.js +2 -0
- package/dist/modules/rendering/subtitle/SpriteSheetProbeObserver.js.map +1 -0
- package/dist/modules/rendering/subtitle/SpriteSheetRasterProbe.d.ts +19 -0
- package/dist/modules/rendering/subtitle/SpriteSheetRasterProbe.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SpriteSheetRasterProbe.js +2 -0
- package/dist/modules/rendering/subtitle/SpriteSheetRasterProbe.js.map +1 -0
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProbe.d.ts +31 -0
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProbe.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProbe.js +89 -0
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProbe.js.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationReading.d.ts +49 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationReading.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationReading.js +87 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationReading.js.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationSupport.d.ts +17 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationSupport.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationSupport.js +53 -0
- package/dist/modules/rendering/subtitle/SubtreeAnimationSupport.js.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeMountAnimationStateFingerprint.d.ts +62 -0
- package/dist/modules/rendering/subtitle/SubtreeMountAnimationStateFingerprint.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SubtreeMountAnimationStateFingerprint.js +153 -0
- package/dist/modules/rendering/subtitle/SubtreeMountAnimationStateFingerprint.js.map +1 -0
- package/dist/modules/rendering/subtitle/SvgFilterStateFingerprint.d.ts +47 -0
- package/dist/modules/rendering/subtitle/SvgFilterStateFingerprint.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/SvgFilterStateFingerprint.js +69 -0
- package/dist/modules/rendering/subtitle/SvgFilterStateFingerprint.js.map +1 -0
- package/dist/modules/rendering/subtitle/UnknownAnimationStateFingerprint.d.ts +9 -0
- package/dist/modules/rendering/subtitle/UnknownAnimationStateFingerprint.d.ts.map +1 -0
- package/dist/modules/rendering/subtitle/UnknownAnimationStateFingerprint.js +10 -0
- package/dist/modules/rendering/subtitle/UnknownAnimationStateFingerprint.js.map +1 -0
- package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.d.ts.map +1 -1
- package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.js +2 -0
- package/dist/modules/rendering/subtitle/VideoFrameVarsBuilder.js.map +1 -1
- package/dist/modules/rendering/types/ElementRenderOverrides.d.ts +2 -0
- package/dist/modules/rendering/types/ElementRenderOverrides.d.ts.map +1 -1
- package/dist/modules/rendering/types/ElementRenderOverrides.js +4 -0
- package/dist/modules/rendering/types/ElementRenderOverrides.js.map +1 -1
- package/dist/modules/splitting/BalancedLineSplitter.d.ts +9 -0
- package/dist/modules/splitting/BalancedLineSplitter.d.ts.map +1 -1
- package/dist/modules/splitting/BalancedLineSplitter.js +15 -3
- package/dist/modules/splitting/BalancedLineSplitter.js.map +1 -1
- package/dist/modules/splitting/BalancedPixelWidthLineSplitter.d.ts +1 -4
- package/dist/modules/splitting/BalancedPixelWidthLineSplitter.d.ts.map +1 -1
- package/dist/modules/splitting/BalancedPixelWidthLineSplitter.js +5 -7
- package/dist/modules/splitting/BalancedPixelWidthLineSplitter.js.map +1 -1
- package/dist/modules/splitting/DomProbeCanvasTextMeasurer.d.ts +16 -7
- package/dist/modules/splitting/DomProbeCanvasTextMeasurer.d.ts.map +1 -1
- package/dist/modules/splitting/DomProbeCanvasTextMeasurer.js +44 -33
- package/dist/modules/splitting/DomProbeCanvasTextMeasurer.js.map +1 -1
- package/dist/modules/splitting/TextMeasurer.d.ts +9 -4
- package/dist/modules/splitting/TextMeasurer.d.ts.map +1 -1
- package/dist/modules/svg-filter/SvgFilter.d.ts +9 -0
- package/dist/modules/svg-filter/SvgFilter.d.ts.map +1 -1
- package/dist/modules/svg-filter/SvgFilter.js +17 -0
- package/dist/modules/svg-filter/SvgFilter.js.map +1 -1
- package/dist/modules/svg-filter/SvgFilterDefinitions.d.ts +7 -0
- package/dist/modules/svg-filter/SvgFilterDefinitions.d.ts.map +1 -1
- package/dist/modules/svg-filter/SvgFilterDefinitions.js +17 -0
- package/dist/modules/svg-filter/SvgFilterDefinitions.js.map +1 -1
- package/dist/modules/tagging/RegexTagger.js +1 -2
- package/dist/modules/tagging/RegexTagger.js.map +1 -1
- package/dist/modules/tagging/SpanTagger.js +1 -2
- package/dist/modules/tagging/SpanTagger.js.map +1 -1
- package/dist/modules/tagging/StructureTagger.js +1 -2
- package/dist/modules/tagging/StructureTagger.js.map +1 -1
- package/dist/modules/tagging/WordlistTagger.js +1 -2
- package/dist/modules/tagging/WordlistTagger.js.map +1 -1
- package/dist/modules/transcription/AudioSegmentLayout.d.ts +23 -0
- package/dist/modules/transcription/AudioSegmentLayout.d.ts.map +1 -0
- package/dist/modules/transcription/AudioSegmentLayout.js +40 -0
- package/dist/modules/transcription/AudioSegmentLayout.js.map +1 -0
- package/dist/modules/transcription/FallbackAudioDecoder.d.ts +25 -0
- package/dist/modules/transcription/FallbackAudioDecoder.d.ts.map +1 -0
- package/dist/modules/transcription/FallbackAudioDecoder.js +46 -0
- package/dist/modules/transcription/FallbackAudioDecoder.js.map +1 -0
- package/dist/modules/transcription/MediaBunnyAudioOnlyRemuxer.d.ts +71 -0
- package/dist/modules/transcription/MediaBunnyAudioOnlyRemuxer.d.ts.map +1 -0
- package/dist/modules/transcription/MediaBunnyAudioOnlyRemuxer.js +145 -0
- package/dist/modules/transcription/MediaBunnyAudioOnlyRemuxer.js.map +1 -0
- package/dist/modules/transcription/WebAudioAudioDecoder.d.ts +46 -0
- package/dist/modules/transcription/WebAudioAudioDecoder.d.ts.map +1 -0
- package/dist/modules/transcription/WebAudioAudioDecoder.js +123 -0
- package/dist/modules/transcription/WebAudioAudioDecoder.js.map +1 -0
- package/dist/modules/transcription/index.d.ts +4 -0
- package/dist/modules/transcription/index.d.ts.map +1 -1
- package/dist/modules/transcription/index.js +3 -0
- package/dist/modules/transcription/index.js.map +1 -1
- package/dist/modules/video/RenderJob.d.ts +23 -0
- package/dist/modules/video/RenderJob.d.ts.map +1 -1
- package/dist/modules/video/index.d.ts +5 -3
- package/dist/modules/video/index.d.ts.map +1 -1
- package/dist/modules/video/index.js +2 -0
- package/dist/modules/video/index.js.map +1 -1
- package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.d.ts +33 -1
- package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.js +97 -20
- package/dist/modules/video/mediabunny/MediaBunnyTranscodeCoordinator.js.map +1 -1
- package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.js +1 -0
- package/dist/modules/video/mediabunny/MediaBunnyVideoRenderer.js.map +1 -1
- package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.d.ts +20 -9
- package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.js +56 -14
- package/dist/modules/video/mediabunny/caption/BatchedSubtitleLayerSource.js.map +1 -1
- package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.d.ts +29 -10
- package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.js +48 -17
- package/dist/modules/video/mediabunny/caption/ComposedSubtitleLayerSource.js.map +1 -1
- package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.d.ts +28 -11
- package/dist/modules/video/mediabunny/caption/SubtitleLayerSource.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.d.ts +33 -12
- package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.js +53 -18
- package/dist/modules/video/mediabunny/caption/VideoBoundSubtitleLayerSource.js.map +1 -1
- package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.js +7 -3
- package/dist/modules/video/mediabunny/encoder/MediaBunnyCanvasVideoTrackEncoder.js.map +1 -1
- package/dist/modules/video/mediabunny/frame/BufferedVideoFrameSource.d.ts +45 -0
- package/dist/modules/video/mediabunny/frame/BufferedVideoFrameSource.d.ts.map +1 -0
- package/dist/modules/video/mediabunny/frame/BufferedVideoFrameSource.js +93 -0
- package/dist/modules/video/mediabunny/frame/BufferedVideoFrameSource.js.map +1 -0
- package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.js +3 -1
- package/dist/modules/video/mediabunny/frame/DefaultVideoFrameDecoderFactory.js.map +1 -1
- package/dist/modules/video/mediabunny/frame/RetainedVideoFrame.d.ts +26 -0
- package/dist/modules/video/mediabunny/frame/RetainedVideoFrame.d.ts.map +1 -0
- package/dist/modules/video/mediabunny/frame/RetainedVideoFrame.js +55 -0
- package/dist/modules/video/mediabunny/frame/RetainedVideoFrame.js.map +1 -0
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.d.ts +6 -1
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderFactory.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderSelectionFailedError.d.ts +14 -0
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderSelectionFailedError.d.ts.map +1 -0
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderSelectionFailedError.js +14 -0
- package/dist/modules/video/mediabunny/frame/VideoFrameDecoderSelectionFailedError.js.map +1 -0
- package/dist/modules/video/mediabunny/frame/WebCodecsOnlyVideoFrameDecoderFactory.d.ts +16 -0
- package/dist/modules/video/mediabunny/frame/WebCodecsOnlyVideoFrameDecoderFactory.d.ts.map +1 -0
- package/dist/modules/video/mediabunny/frame/WebCodecsOnlyVideoFrameDecoderFactory.js +23 -0
- package/dist/modules/video/mediabunny/frame/WebCodecsOnlyVideoFrameDecoderFactory.js.map +1 -0
- package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.d.ts +9 -3
- package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.d.ts.map +1 -1
- package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.js +24 -7
- package/dist/modules/video/mediabunny/painter/CaptionsOverlayFramePainter.js.map +1 -1
- package/dist/modules/video/mediabunny/painter/FramePainter.d.ts +35 -14
- package/dist/modules/video/mediabunny/painter/FramePainter.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/modules/rendering/subtitle/AbstractAnim.d.ts +0 -13
- package/dist/modules/rendering/subtitle/AbstractAnim.d.ts.map +0 -1
- package/dist/modules/rendering/subtitle/AbstractAnim.js +0 -2
- package/dist/modules/rendering/subtitle/AbstractAnim.js.map +0 -1
- package/dist/modules/rendering/subtitle/AnimationProbe.d.ts +0 -39
- package/dist/modules/rendering/subtitle/AnimationProbe.d.ts.map +0 -1
- package/dist/modules/rendering/subtitle/AnimationProbe.js +0 -203
- package/dist/modules/rendering/subtitle/AnimationProbe.js.map +0 -1
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProber.d.ts +0 -17
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProber.d.ts.map +0 -1
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProber.js +0 -58
- package/dist/modules/rendering/subtitle/SpriteSheetSizeProber.js.map +0 -1
- package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts +0 -27
- package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.d.ts.map +0 -1
- package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js +0 -84
- package/dist/modules/video/mediabunny/frame/CurrentFrameVideoSource.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Word.js","sourceRoot":"","sources":["../../../src/modules/document/Word.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAwBlE,MAAM,OAAO,IAAI;IACf,MAAM,CAAU,SAAS,GAAG,MAAM,CAAC;IAE1B,IAAI,CAAS;IACb,IAAI,CAAe;IACnB,aAAa,CAAmB;IAChC,YAAY,CAAmB;IAC/B,EAAE,CAAS;IACX,WAAW,CAAS;IACpB,SAAS,CAAgB;IACzB,UAAU,CAAoB;IACvC;;;;OAIG;IACM,aAAa,CAAgB;IAC7B,QAAQ,CAAgB;IAEjC,YAAY,KAAmB;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC;QACpD,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,WAAmB;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC,gBAAgB,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC,cAAc,CAAC;QACrE,OAAO,SAAS,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,
|
|
1
|
+
{"version":3,"file":"Word.js","sourceRoot":"","sources":["../../../src/modules/document/Word.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ export declare class RenderPipelineBuilder {
|
|
|
99
99
|
withAlignment(alignment: AlignmentConfig): this;
|
|
100
100
|
withRenderingConfig(rendering: RenderingConfig): this;
|
|
101
101
|
withInlineStyles(inlineStyles: InlineStyleMap): this;
|
|
102
|
-
/** Replaces the single-style default wholesale; subsequent style
|
|
102
|
+
/** Replaces the single-style default wholesale; subsequent style shortcuts layer on top of this. */
|
|
103
103
|
withSubtitleStyle(style: SubtitleStyle): this;
|
|
104
104
|
/**
|
|
105
105
|
* Switches to the multi-kind mode: the supplied map is passed to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderPipelineBuilder.d.ts","sourceRoot":"","sources":["../../../src/modules/pipeline/RenderPipelineBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAKpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderPipelineBuilder.d.ts","sourceRoot":"","sources":["../../../src/modules/pipeline/RenderPipelineBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { BoundarySegmentSplitter } from '../splitting/BoundarySegmentSplitter';
|
|
|
6
6
|
import { LimitByScaledCharsSegmentSplitter } from '../splitting/LimitByScaledCharsSegmentSplitter';
|
|
7
7
|
import { StructureTagger } from '../tagging/StructureTagger';
|
|
8
8
|
import { BrowserSubtitleFrameRenderer } from '../rendering/BrowserSubtitleFrameRenderer';
|
|
9
|
+
import { SpriteSheetSizeProbe } from '../rendering/subtitle/SpriteSheetSizeProbe';
|
|
10
|
+
import { ImageDecodeSpriteSheetRasterProbe } from '../rendering/subtitle/ImageDecodeSpriteSheetRasterProbe';
|
|
9
11
|
import { BrowserOverlayFrameRenderer } from '../rendering/BrowserOverlayFrameRenderer';
|
|
10
12
|
import { BrowserCssResourceEmbedder } from '../css/BrowserCssResourceEmbedder';
|
|
11
13
|
import { MediaBunnyVideoRenderer } from '../video/mediabunny/MediaBunnyVideoRenderer';
|
|
@@ -27,10 +29,15 @@ const DEFAULT_SEGMENT_SPLITTER_CONFIG = {
|
|
|
27
29
|
minChars: 10,
|
|
28
30
|
scale: 1,
|
|
29
31
|
};
|
|
32
|
+
// A centred caption at `maxWidthRatio` leaves half of what it does not take
|
|
33
|
+
// clear on each side, and the short-form players draw an action rail down the
|
|
34
|
+
// right edge — the widest of them claims around 11% of the width. Anything
|
|
35
|
+
// past 0.78 puts a full line under it, so the default sits below that with
|
|
36
|
+
// room for the rail's own imprecision.
|
|
30
37
|
const DEFAULT_LINE_SPLITTER_CONFIG = {
|
|
31
38
|
maxLines: 2,
|
|
32
39
|
minLines: 1,
|
|
33
|
-
maxWidthRatio: 0.
|
|
40
|
+
maxWidthRatio: 0.72,
|
|
34
41
|
};
|
|
35
42
|
const DEFAULT_ALIGNMENT = {
|
|
36
43
|
verticalAlign: 'bottom',
|
|
@@ -174,7 +181,7 @@ export class RenderPipelineBuilder {
|
|
|
174
181
|
this.style = { ...this.style, inlineStyles };
|
|
175
182
|
return this;
|
|
176
183
|
}
|
|
177
|
-
/** Replaces the single-style default wholesale; subsequent style
|
|
184
|
+
/** Replaces the single-style default wholesale; subsequent style shortcuts layer on top of this. */
|
|
178
185
|
withSubtitleStyle(style) {
|
|
179
186
|
this.style = style;
|
|
180
187
|
return this;
|
|
@@ -307,16 +314,19 @@ export class RenderPipelineBuilder {
|
|
|
307
314
|
});
|
|
308
315
|
}
|
|
309
316
|
buildDefaultSubtitleLayerSource(cssResourceEmbedder, wordSplitter) {
|
|
310
|
-
|
|
317
|
+
// Shared by both renderers: a walk decodes rasters up to the whole
|
|
318
|
+
// pixel budget, and the two work at the same output size.
|
|
319
|
+
const sizeProbe = new SpriteSheetSizeProbe(new ImageDecodeSpriteSheetRasterProbe());
|
|
320
|
+
return new ComposedSubtitleLayerSource(new BatchedSubtitleLayerSource(this.resolveSubtitleFrameRenderer(cssResourceEmbedder, wordSplitter, sizeProbe)), new VideoBoundSubtitleLayerSource(this.resolveSubtitleFrameRenderer(cssResourceEmbedder, wordSplitter, sizeProbe)));
|
|
311
321
|
}
|
|
312
322
|
// Each layer source gets its own subtitle frame renderer when the
|
|
313
323
|
// builder owns the default: the two sources hold independent open()
|
|
314
324
|
// state that would clash on a shared instance. A consumer-supplied
|
|
315
325
|
// renderer is reused as-is — sharing is then the consumer's call.
|
|
316
|
-
resolveSubtitleFrameRenderer(cssResourceEmbedder, wordSplitter) {
|
|
326
|
+
resolveSubtitleFrameRenderer(cssResourceEmbedder, wordSplitter, sizeProbe) {
|
|
317
327
|
if (this.subtitleFrameRenderer !== null)
|
|
318
328
|
return this.subtitleFrameRenderer;
|
|
319
|
-
return BrowserSubtitleFrameRenderer.create(cssResourceEmbedder, wordSplitter);
|
|
329
|
+
return BrowserSubtitleFrameRenderer.create(cssResourceEmbedder, wordSplitter, { sizeProbe });
|
|
320
330
|
}
|
|
321
331
|
}
|
|
322
332
|
//# sourceMappingURL=RenderPipelineBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderPipelineBuilder.js","sourceRoot":"","sources":["../../../src/modules/pipeline/RenderPipelineBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAIvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderPipelineBuilder.js","sourceRoot":"","sources":["../../../src/modules/pipeline/RenderPipelineBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import type { VideoFrameSource } from '../rendering/types/VideoFrameSource';
|
|
|
4
4
|
import type { CssResourceEmbedder } from '../css/CssResourceEmbedder';
|
|
5
5
|
import type { WordSplitter } from '../splitting/WordSplitter';
|
|
6
6
|
import { PreparedStyleFactory } from '../rendering/subtitle/PreparedStyleFactory';
|
|
7
|
-
import {
|
|
7
|
+
import { SpriteSheetSizeProbe } from '../rendering/subtitle/SpriteSheetSizeProbe';
|
|
8
8
|
import { ActiveRenderSessionFactory } from '../rendering/subtitle/ActiveRenderSessionFactory';
|
|
9
|
+
import type { AnimationStateFingerprintStrategy } from '../rendering/subtitle/AnimationStateFingerprint';
|
|
9
10
|
/**
|
|
10
11
|
* Browser-native `SubtitleFrameRenderer` that builds each batch as a
|
|
11
12
|
* single SVG holding one `foreignObject` per unique visual state, and
|
|
@@ -24,28 +25,37 @@ import { ActiveRenderSessionFactory } from '../rendering/subtitle/ActiveRenderSe
|
|
|
24
25
|
*/
|
|
25
26
|
export declare class BrowserSubtitleFrameRenderer implements SubtitleFrameRenderer {
|
|
26
27
|
private readonly preparedStyleFactory;
|
|
27
|
-
private readonly
|
|
28
|
+
private readonly sizeProbe;
|
|
28
29
|
private readonly sessionFactory;
|
|
29
30
|
private session;
|
|
30
31
|
private preparedStyles;
|
|
31
32
|
private width;
|
|
32
33
|
private height;
|
|
33
|
-
|
|
34
|
+
private maxTilesPerBatch;
|
|
35
|
+
constructor(preparedStyleFactory: PreparedStyleFactory, sizeProbe: SpriteSheetSizeProbe, sessionFactory: ActiveRenderSessionFactory);
|
|
34
36
|
/**
|
|
35
37
|
* Wires the default collaborator graph: a fresh `CssScoper`,
|
|
36
38
|
* `CssMinifier`, `CssVarReferenceScanner`, `BaselineCssComposer`,
|
|
37
39
|
* `SvgFilterScoper`, and `SegmentPaddingCssRuleBuilder` for the
|
|
38
|
-
* style preparation pipeline, plus the
|
|
39
|
-
*
|
|
40
|
-
*
|
|
40
|
+
* style preparation pipeline, plus the sprite-size probe and the
|
|
41
|
+
* per-session render-state factory.
|
|
42
|
+
*
|
|
43
|
+
* `sizeProbe` shares one probe across renderers working at the same
|
|
44
|
+
* output size, which is worth doing — a walk decodes rasters up to
|
|
45
|
+
* the whole pixel budget. It carries its own budget, so
|
|
46
|
+
* `maxBufferPixels` is ignored alongside it.
|
|
47
|
+
*
|
|
48
|
+
* `animationStateFingerprint` picks which implementation describes
|
|
49
|
+
* where a segment's animations stand. Defaults to `keyframe-scan`.
|
|
41
50
|
*/
|
|
42
51
|
static create(cssEmbedder: CssResourceEmbedder, wordSplitter: WordSplitter, options?: {
|
|
43
52
|
maxBufferPixels?: number;
|
|
53
|
+
sizeProbe?: SpriteSheetSizeProbe;
|
|
54
|
+
animationStateFingerprint?: AnimationStateFingerprintStrategy;
|
|
44
55
|
}): BrowserSubtitleFrameRenderer;
|
|
45
56
|
open(doc: Document, styles: Readonly<Record<string, SubtitleStyle>>, width: number, height: number, videoFrameSource?: VideoFrameSource): Promise<void>;
|
|
46
|
-
|
|
57
|
+
getMaxTilesPerBatch(): Promise<number>;
|
|
47
58
|
getFrames(timestamps: ReadonlyArray<number>): Promise<Array<SubtitleFrame | null>>;
|
|
48
|
-
getFrame(timestamp: number): Promise<SubtitleFrame | null>;
|
|
49
59
|
close(): void;
|
|
50
60
|
}
|
|
51
61
|
//# sourceMappingURL=BrowserSubtitleFrameRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserSubtitleFrameRenderer.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/BrowserSubtitleFrameRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,aAAa,EACd,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAOpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"BrowserSubtitleFrameRenderer.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/BrowserSubtitleFrameRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,aAAa,EACd,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAOpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uDAAuD,CAAC;AAO/G;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IAQtE,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IATjC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,gBAAgB,CAAuB;gBAG5B,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,oBAAoB,EAC/B,cAAc,EAAE,0BAA0B;IAG7D;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,MAAM,CACX,WAAW,EAAE,mBAAmB,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;QAAC,yBAAyB,CAAC,EAAE,iCAAiC,CAAA;KAAE,GACtI,4BAA4B;IAyBzB,IAAI,CACR,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC/C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC;IAkBV,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOtC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAKxF,KAAK,IAAI,IAAI;CAcd"}
|
|
@@ -5,7 +5,8 @@ import { BaselineCssComposer } from '../rendering/styles/BaselineCssComposer';
|
|
|
5
5
|
import { SvgFilterScoper } from '../svg-filter/SvgFilterScoper';
|
|
6
6
|
import { SegmentPaddingCssRuleBuilder } from '../rendering/styles/SegmentPaddingCssRuleBuilder';
|
|
7
7
|
import { PreparedStyleFactory } from '../rendering/subtitle/PreparedStyleFactory';
|
|
8
|
-
import {
|
|
8
|
+
import { SpriteSheetSizeProbe } from '../rendering/subtitle/SpriteSheetSizeProbe';
|
|
9
|
+
import { ImageDecodeSpriteSheetRasterProbe } from '../rendering/subtitle/ImageDecodeSpriteSheetRasterProbe';
|
|
9
10
|
import { ActiveRenderSessionFactory } from '../rendering/subtitle/ActiveRenderSessionFactory';
|
|
10
11
|
import { WordFragmenter } from '../bidi/WordFragmenter';
|
|
11
12
|
import { BidiJsAnalyzer } from '../bidi/BidiJsAnalyzer';
|
|
@@ -28,33 +29,39 @@ import { CursiveScriptDetector } from '../bidi/CursiveScriptDetector';
|
|
|
28
29
|
*/
|
|
29
30
|
export class BrowserSubtitleFrameRenderer {
|
|
30
31
|
preparedStyleFactory;
|
|
31
|
-
|
|
32
|
+
sizeProbe;
|
|
32
33
|
sessionFactory;
|
|
33
34
|
session = null;
|
|
34
35
|
preparedStyles = null;
|
|
35
36
|
width;
|
|
36
37
|
height;
|
|
37
|
-
|
|
38
|
+
maxTilesPerBatch = null;
|
|
39
|
+
constructor(preparedStyleFactory, sizeProbe, sessionFactory) {
|
|
38
40
|
this.preparedStyleFactory = preparedStyleFactory;
|
|
39
|
-
this.
|
|
41
|
+
this.sizeProbe = sizeProbe;
|
|
40
42
|
this.sessionFactory = sessionFactory;
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
43
45
|
* Wires the default collaborator graph: a fresh `CssScoper`,
|
|
44
46
|
* `CssMinifier`, `CssVarReferenceScanner`, `BaselineCssComposer`,
|
|
45
47
|
* `SvgFilterScoper`, and `SegmentPaddingCssRuleBuilder` for the
|
|
46
|
-
* style preparation pipeline, plus the
|
|
47
|
-
*
|
|
48
|
-
*
|
|
48
|
+
* style preparation pipeline, plus the sprite-size probe and the
|
|
49
|
+
* per-session render-state factory.
|
|
50
|
+
*
|
|
51
|
+
* `sizeProbe` shares one probe across renderers working at the same
|
|
52
|
+
* output size, which is worth doing — a walk decodes rasters up to
|
|
53
|
+
* the whole pixel budget. It carries its own budget, so
|
|
54
|
+
* `maxBufferPixels` is ignored alongside it.
|
|
55
|
+
*
|
|
56
|
+
* `animationStateFingerprint` picks which implementation describes
|
|
57
|
+
* where a segment's animations stand. Defaults to `keyframe-scan`.
|
|
49
58
|
*/
|
|
50
59
|
static create(cssEmbedder, wordSplitter, options) {
|
|
51
60
|
const baselineCssComposer = new BaselineCssComposer();
|
|
52
61
|
const preparedStyleFactory = new PreparedStyleFactory(cssEmbedder, new CssScoper(), new CssMinifier(), new CssVarReferenceScanner(), baselineCssComposer, new SvgFilterScoper(), new SegmentPaddingCssRuleBuilder());
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const sessionFactory = new ActiveRenderSessionFactory(wordSplitter, new WordFragmenter(new BidiJsAnalyzer(), new CursiveScriptDetector()), baselineCssComposer);
|
|
57
|
-
return new BrowserSubtitleFrameRenderer(preparedStyleFactory, sizeProber, sessionFactory);
|
|
62
|
+
const sizeProbe = options?.sizeProbe ?? new SpriteSheetSizeProbe(new ImageDecodeSpriteSheetRasterProbe(), null, options?.maxBufferPixels);
|
|
63
|
+
const sessionFactory = new ActiveRenderSessionFactory(wordSplitter, new WordFragmenter(new BidiJsAnalyzer(), new CursiveScriptDetector()), baselineCssComposer, options?.animationStateFingerprint ?? 'keyframe-scan');
|
|
64
|
+
return new BrowserSubtitleFrameRenderer(preparedStyleFactory, sizeProbe, sessionFactory);
|
|
58
65
|
}
|
|
59
66
|
async open(doc, styles, width, height, videoFrameSource) {
|
|
60
67
|
const requiresFrame = Object.values(styles).some((s) => s.rendering.videoFrame.required);
|
|
@@ -62,6 +69,7 @@ export class BrowserSubtitleFrameRenderer {
|
|
|
62
69
|
throw new Error('A SubtitleStyle declares videoFrame.required=true but no VideoFrameSource was supplied to open().');
|
|
63
70
|
}
|
|
64
71
|
this.width = width;
|
|
72
|
+
this.maxTilesPerBatch = null;
|
|
65
73
|
this.height = height;
|
|
66
74
|
const prepared = {};
|
|
67
75
|
for (const [kind, style] of Object.entries(styles)) {
|
|
@@ -70,19 +78,16 @@ export class BrowserSubtitleFrameRenderer {
|
|
|
70
78
|
this.preparedStyles = prepared;
|
|
71
79
|
this.session = this.sessionFactory.create(doc, prepared, width, height, videoFrameSource ?? null);
|
|
72
80
|
}
|
|
73
|
-
async
|
|
74
|
-
|
|
81
|
+
async getMaxTilesPerBatch() {
|
|
82
|
+
if (this.maxTilesPerBatch === null) {
|
|
83
|
+
this.maxTilesPerBatch = Math.max(1, await this.sizeProbe.probe(this.width, this.height));
|
|
84
|
+
}
|
|
85
|
+
return this.maxTilesPerBatch;
|
|
75
86
|
}
|
|
76
87
|
async getFrames(timestamps) {
|
|
77
88
|
if (!this.session)
|
|
78
89
|
return timestamps.map(() => null);
|
|
79
|
-
return this.session.getFrames(timestamps);
|
|
80
|
-
}
|
|
81
|
-
async getFrame(timestamp) {
|
|
82
|
-
if (!this.session)
|
|
83
|
-
return null;
|
|
84
|
-
const [frame] = await this.session.getFrames([timestamp]);
|
|
85
|
-
return frame ?? null;
|
|
90
|
+
return this.session.getFrames(timestamps, await this.getMaxTilesPerBatch());
|
|
86
91
|
}
|
|
87
92
|
close() {
|
|
88
93
|
this.session?.dispose();
|
|
@@ -96,6 +101,7 @@ export class BrowserSubtitleFrameRenderer {
|
|
|
96
101
|
}
|
|
97
102
|
this.width = undefined;
|
|
98
103
|
this.height = undefined;
|
|
104
|
+
this.maxTilesPerBatch = null;
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
//# sourceMappingURL=BrowserSubtitleFrameRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserSubtitleFrameRenderer.js","sourceRoot":"","sources":["../../../src/modules/rendering/BrowserSubtitleFrameRenderer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"BrowserSubtitleFrameRenderer.js","sourceRoot":"","sources":["../../../src/modules/rendering/BrowserSubtitleFrameRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,11 +40,17 @@ export interface SubtitleStyle {
|
|
|
40
40
|
* A drawable handle for one rendered subtitle frame. The consumer
|
|
41
41
|
* paints it into its own 2D context through `draw`.
|
|
42
42
|
*
|
|
43
|
-
* The underlying raster
|
|
44
|
-
* frame and stays valid
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
43
|
+
* The underlying raster belongs to the **batch** that produced this
|
|
44
|
+
* frame rather than to the renderer, and stays valid until `close`.
|
|
45
|
+
* Frames from separate batches can therefore be held and painted
|
|
46
|
+
* alongside each other.
|
|
47
|
+
*
|
|
48
|
+
* That is load-bearing, not incidental: a caller gathers a run of
|
|
49
|
+
* frames before it paints any of them, and a run can span a batch
|
|
50
|
+
* boundary. An implementation that recycled one surface across
|
|
51
|
+
* batches would leave every frame but the last painting a raster that
|
|
52
|
+
* has since been overwritten — silently, and only for the runs that
|
|
53
|
+
* happen to straddle the boundary.
|
|
48
54
|
*/
|
|
49
55
|
export interface SubtitleFrame {
|
|
50
56
|
/**
|
|
@@ -58,16 +64,15 @@ export interface SubtitleFrame {
|
|
|
58
64
|
*
|
|
59
65
|
* Usage:
|
|
60
66
|
* 1. `open` once per document.
|
|
61
|
-
* 2.
|
|
62
|
-
*
|
|
63
|
-
* individual timestamp.
|
|
67
|
+
* 2. `getFrames(timestamps)` per batch, advancing by the length of
|
|
68
|
+
* what it returns.
|
|
64
69
|
* 3. `close` when done.
|
|
65
70
|
*/
|
|
66
71
|
export interface SubtitleFrameRenderer {
|
|
67
72
|
/**
|
|
68
73
|
* Prepares the renderer for `doc` and the set of styles its
|
|
69
74
|
* Sections may reference. `styles` is keyed by `Section.kind`.
|
|
70
|
-
* Must complete before the first `getFrames
|
|
75
|
+
* Must complete before the first `getFrames` call.
|
|
71
76
|
*
|
|
72
77
|
* `videoFrameSource` is required when any style in `styles` has
|
|
73
78
|
* `rendering.videoFrame.required` set, and may be omitted
|
|
@@ -76,40 +81,43 @@ export interface SubtitleFrameRenderer {
|
|
|
76
81
|
*/
|
|
77
82
|
open(doc: Document, styles: Readonly<Record<string, SubtitleStyle>>, width: number, height: number, videoFrameSource?: VideoFrameSource): Promise<void>;
|
|
78
83
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
84
|
+
* How many distinct pictures one batch can rasterize at the given
|
|
85
|
+
* output dimensions, bounded by the renderer's memory budget and by
|
|
86
|
+
* any platform raster-size caps.
|
|
87
|
+
*
|
|
88
|
+
* This is a count of pictures, not of timestamps: timestamps that
|
|
89
|
+
* paint the same thing share one, so a batch covers as much video as
|
|
90
|
+
* the captions hold still for. Offer `getFrames` as many timestamps
|
|
91
|
+
* as you are willing to look ahead and let it answer how far it
|
|
92
|
+
* reached.
|
|
83
93
|
*/
|
|
84
|
-
|
|
94
|
+
getMaxTilesPerBatch(): Promise<number>;
|
|
85
95
|
/**
|
|
86
|
-
* Renders subtitle frames for the given timestamps.
|
|
87
|
-
*
|
|
88
|
-
*
|
|
96
|
+
* Renders subtitle frames for the given timestamps, in order. An
|
|
97
|
+
* entry is `null` for a timestamp where no Section is active.
|
|
98
|
+
*
|
|
99
|
+
* The returned array covers a **prefix** of `timestamps`: the batch
|
|
100
|
+
* ends where the pictures it holds run out of room, so ask for as
|
|
101
|
+
* many as you want to look ahead, take what comes back, and start
|
|
102
|
+
* the next call where this one stopped. It is never empty for a
|
|
103
|
+
* non-empty input, so a caller advancing by its length always makes
|
|
104
|
+
* progress. Asking for at most `getMaxTilesPerBatch()` timestamps
|
|
105
|
+
* always comes back whole, since no batch can need more pictures
|
|
106
|
+
* than it has timestamps.
|
|
89
107
|
*
|
|
90
|
-
* The implementation
|
|
91
|
-
*
|
|
92
|
-
*
|
|
108
|
+
* The implementation deduplicates internally: timestamps that hit
|
|
109
|
+
* the same visual state share a single raster tile inside the batch
|
|
110
|
+
* and their return entries point at the same tile.
|
|
93
111
|
*
|
|
94
112
|
* Frames produced by one call may share underlying raster
|
|
95
|
-
* resources
|
|
96
|
-
* `getFrames
|
|
113
|
+
* resources, and those resources belong to the call rather than to
|
|
114
|
+
* the renderer: a later `getFrames` does not disturb them.
|
|
97
115
|
*/
|
|
98
116
|
getFrames(timestamps: ReadonlyArray<number>): Promise<Array<SubtitleFrame | null>>;
|
|
99
|
-
/**
|
|
100
|
-
* Renders the subtitle frame for a single timestamp. Returns
|
|
101
|
-
* `null` when no Section is active at `timestamp`. Equivalent in
|
|
102
|
-
* result to `(await getFrames([timestamp]))[0]`.
|
|
103
|
-
*
|
|
104
|
-
* The returned frame's underlying raster follows the same
|
|
105
|
-
* lifetime as `getFrames` results: valid until the next
|
|
106
|
-
* `getFrames`/`getFrame` call or until `close`.
|
|
107
|
-
*/
|
|
108
|
-
getFrame(timestamp: number): Promise<SubtitleFrame | null>;
|
|
109
117
|
/**
|
|
110
118
|
* Releases any host-document state the renderer attached during
|
|
111
119
|
* `open` (probe stylesheets, offscreen containers). After `close`,
|
|
112
|
-
* `getFrames
|
|
120
|
+
* `getFrames` returns `null` for every timestamp.
|
|
113
121
|
*/
|
|
114
122
|
close(): void;
|
|
115
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubtitleFrameRenderer.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/SubtitleFrameRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,oLAAoL;IACpL,YAAY,EAAE,cAAc,CAAC;IAC7B,kIAAkI;IAClI,SAAS,EAAE,eAAe,CAAC;IAC3B,yFAAyF;IACzF,SAAS,EAAE,eAAe,CAAC;IAC3B,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,8CAA8C;IAC9C,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,sHAAsH;IACtH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,0IAA0I;IAC1I,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACpE,8NAA8N;IAC9N,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED
|
|
1
|
+
{"version":3,"file":"SubtitleFrameRenderer.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/SubtitleFrameRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAElF;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,oLAAoL;IACpL,YAAY,EAAE,cAAc,CAAC;IAC7B,kIAAkI;IAClI,SAAS,EAAE,eAAe,CAAC;IAC3B,yFAAyF;IACzF,SAAS,EAAE,eAAe,CAAC;IAC3B,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,8CAA8C;IAC9C,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,sHAAsH;IACtH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,0IAA0I;IAC1I,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACpE,8NAA8N;IAC9N,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CACF,OAAO,EAAE,iCAAiC,GAAG,wBAAwB,EACrE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAAC;CACT;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,IAAI,CACF,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,EAC/C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IAEnF;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export type { SubtitleFrameRenderer, SubtitleFrame, SubtitleStyle } from '../rendering/SubtitleFrameRenderer';
|
|
2
2
|
export { BrowserSubtitleFrameRenderer } from '../rendering/BrowserSubtitleFrameRenderer';
|
|
3
|
+
export { SpriteSheetSizeProbe } from '../rendering/subtitle/SpriteSheetSizeProbe';
|
|
4
|
+
export { ImageDecodeSpriteSheetRasterProbe } from '../rendering/subtitle/ImageDecodeSpriteSheetRasterProbe';
|
|
5
|
+
export type { SpriteSheetProbeObserver, SingleTileFallback, } from '../rendering/subtitle/SpriteSheetProbeObserver';
|
|
6
|
+
export type { SpriteSheetRasterProbe, SpriteSheetRasterOutcome, SpriteSheetRasterRefusal, } from '../rendering/subtitle/SpriteSheetRasterProbe';
|
|
3
7
|
export { LayeredSubtitleFrame } from '../rendering/LayeredSubtitleFrame';
|
|
4
8
|
export type { OverlayFrameRenderer, OverlayFrame } from '../rendering/OverlayFrameRenderer';
|
|
5
9
|
export { BrowserOverlayFrameRenderer } from '../rendering/BrowserOverlayFrameRenderer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACvG,YAAY,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACzK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,YAAY,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/rendering/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,iCAAiC,EAAE,MAAM,+DAA+D,CAAC;AAClH,YAAY,EACV,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,sDAAsD,CAAC;AAC9D,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,YAAY,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAChG,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACvG,YAAY,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACzK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,YAAY,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { BrowserSubtitleFrameRenderer } from '../rendering/BrowserSubtitleFrameRenderer';
|
|
2
|
+
export { SpriteSheetSizeProbe } from '../rendering/subtitle/SpriteSheetSizeProbe';
|
|
3
|
+
export { ImageDecodeSpriteSheetRasterProbe } from '../rendering/subtitle/ImageDecodeSpriteSheetRasterProbe';
|
|
2
4
|
export { LayeredSubtitleFrame } from '../rendering/LayeredSubtitleFrame';
|
|
3
5
|
export { BrowserOverlayFrameRenderer } from '../rendering/BrowserOverlayFrameRenderer';
|
|
4
6
|
export { VERTICAL_ALIGNS } from '../rendering/types/AlignmentConfig';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/rendering/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAK7F,OAAO,EAAE,mBAAmB,EAAsB,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACzK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/rendering/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,iCAAiC,EAAE,MAAM,+DAA+D,CAAC;AAUlH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAK7F,OAAO,EAAE,mBAAmB,EAAsB,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACzK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import type { SubtitleFrame } from '../../rendering/SubtitleFrameRenderer';
|
|
2
2
|
import type { BatchPlanner } from '../../rendering/subtitle/BatchPlanner';
|
|
3
3
|
import type { SpriteSheetCompositor } from '../../rendering/subtitle/SpriteSheetCompositor';
|
|
4
|
-
import type { AnimationProbe } from '../../rendering/subtitle/AnimationProbe';
|
|
5
4
|
import type { SegmentPaintRegionCache } from '../../rendering/subtitle/SegmentPaintRegionCache';
|
|
5
|
+
import type { ElementWidthMeasurer } from '../../rendering/subtitle/ElementWidthMeasurer';
|
|
6
6
|
/**
|
|
7
7
|
* Per-document render session. Routes each `getFrames` batch through
|
|
8
|
-
* the planner → compositor pipeline and clears the
|
|
9
|
-
*
|
|
8
|
+
* the planner → compositor pipeline and clears the segment
|
|
9
|
+
* paint-region cache on dispose.
|
|
10
10
|
*/
|
|
11
11
|
export declare class ActiveRenderSession {
|
|
12
12
|
private readonly batchPlanner;
|
|
13
13
|
private readonly spriteSheetCompositor;
|
|
14
|
-
private readonly animationProbe;
|
|
15
14
|
private readonly paintRegionCache;
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
private readonly elementWidthMeasurer;
|
|
16
|
+
constructor(batchPlanner: BatchPlanner, spriteSheetCompositor: SpriteSheetCompositor, paintRegionCache: SegmentPaintRegionCache, elementWidthMeasurer: ElementWidthMeasurer);
|
|
17
|
+
/**
|
|
18
|
+
* Frames for as many of `timestamps` as one sprite sheet of
|
|
19
|
+
* `maxTilesPerSheet` tiles per asset group can serve. The result
|
|
20
|
+
* covers a prefix of the input — at least its first entry — so a
|
|
21
|
+
* caller may offer more timestamps than any sheet could hold and
|
|
22
|
+
* read back how far this one reached.
|
|
23
|
+
*/
|
|
24
|
+
getFrames(timestamps: ReadonlyArray<number>, maxTilesPerSheet: number): Promise<Array<SubtitleFrame | null>>;
|
|
18
25
|
dispose(): void;
|
|
19
26
|
}
|
|
20
27
|
//# sourceMappingURL=ActiveRenderSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveRenderSession.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/ActiveRenderSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ActiveRenderSession.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/ActiveRenderSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAE7F;;;;GAIG;AACH,qBAAa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAHpB,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,uBAAuB,EACzC,oBAAoB,EAAE,oBAAoB;IAG7D;;;;;;OAMG;IACG,SAAS,CACb,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAQvC,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-document render session. Routes each `getFrames` batch through
|
|
3
|
-
* the planner → compositor pipeline and clears the
|
|
4
|
-
*
|
|
3
|
+
* the planner → compositor pipeline and clears the segment
|
|
4
|
+
* paint-region cache on dispose.
|
|
5
5
|
*/
|
|
6
6
|
export class ActiveRenderSession {
|
|
7
7
|
batchPlanner;
|
|
8
8
|
spriteSheetCompositor;
|
|
9
|
-
animationProbe;
|
|
10
9
|
paintRegionCache;
|
|
11
|
-
|
|
10
|
+
elementWidthMeasurer;
|
|
11
|
+
constructor(batchPlanner, spriteSheetCompositor, paintRegionCache, elementWidthMeasurer) {
|
|
12
12
|
this.batchPlanner = batchPlanner;
|
|
13
13
|
this.spriteSheetCompositor = spriteSheetCompositor;
|
|
14
|
-
this.animationProbe = animationProbe;
|
|
15
14
|
this.paintRegionCache = paintRegionCache;
|
|
15
|
+
this.elementWidthMeasurer = elementWidthMeasurer;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Frames for as many of `timestamps` as one sprite sheet of
|
|
19
|
+
* `maxTilesPerSheet` tiles per asset group can serve. The result
|
|
20
|
+
* covers a prefix of the input — at least its first entry — so a
|
|
21
|
+
* caller may offer more timestamps than any sheet could hold and
|
|
22
|
+
* read back how far this one reached.
|
|
23
|
+
*/
|
|
24
|
+
async getFrames(timestamps, maxTilesPerSheet) {
|
|
18
25
|
if (timestamps.length === 0)
|
|
19
26
|
return [];
|
|
20
|
-
const plan = this.batchPlanner.plan(timestamps);
|
|
27
|
+
const plan = await this.batchPlanner.plan(timestamps, maxTilesPerSheet);
|
|
21
28
|
if (plan.groups.size === 0)
|
|
22
|
-
return
|
|
29
|
+
return plan.assignments.map(() => null);
|
|
23
30
|
const sprites = await this.spriteSheetCompositor.renderGroups(plan.groups);
|
|
24
31
|
return this.spriteSheetCompositor.buildFrames(plan.assignments, sprites);
|
|
25
32
|
}
|
|
26
33
|
dispose() {
|
|
27
|
-
this.animationProbe.clear();
|
|
28
34
|
this.paintRegionCache.clear();
|
|
35
|
+
this.elementWidthMeasurer.clear();
|
|
29
36
|
}
|
|
30
37
|
}
|
|
31
38
|
//# sourceMappingURL=ActiveRenderSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveRenderSession.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/ActiveRenderSession.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAGX;IACA;IACA;IACA;IAJnB,YACmB,YAA0B,EAC1B,qBAA4C,EAC5C,
|
|
1
|
+
{"version":3,"file":"ActiveRenderSession.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/ActiveRenderSession.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAGX;IACA;IACA;IACA;IAJnB,YACmB,YAA0B,EAC1B,qBAA4C,EAC5C,gBAAyC,EACzC,oBAA0C;QAH1C,iBAAY,GAAZ,YAAY,CAAc;QAC1B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,qBAAgB,GAAhB,gBAAgB,CAAyB;QACzC,yBAAoB,GAApB,oBAAoB,CAAsB;IAC1D,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,UAAiC,EACjC,gBAAwB;QAExB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;CACF"}
|