@tscaps/engine 0.3.0 → 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 +4 -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":"SegmentSubtreeHtmlBuilder.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SegmentSubtreeHtmlBuilder.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentSubtreeHtmlBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import type { Segment } from '../../document/Segment';
|
|
|
2
2
|
import type { HorizontalPlacementResolver } from '../../rendering/HorizontalPlacementResolver';
|
|
3
3
|
import type { SegmentSubtreeHtmlBuilder } from '../../rendering/subtitle/SegmentSubtreeHtmlBuilder';
|
|
4
4
|
import type { VideoFrameVarsBuilder } from '../../rendering/subtitle/VideoFrameVarsBuilder';
|
|
5
|
+
import type { SegmentAnchorVarsBuilder } from '../../rendering/subtitle/SegmentAnchorVarsBuilder';
|
|
6
|
+
import type { ElementWidthMeasurer } from '../../rendering/subtitle/ElementWidthMeasurer';
|
|
5
7
|
import type { SvgFilterMaterializer } from '../../rendering/subtitle/SvgFilterMaterializer';
|
|
6
8
|
import type { PreparedStyle } from '../../rendering/subtitle/PreparedStyle';
|
|
7
9
|
import type { SegmentSubtreeDecomposer } from '../../rendering/subtitle/SegmentSubtreeDecomposer';
|
|
@@ -24,14 +26,18 @@ export declare class SegmentWrapperRenderer {
|
|
|
24
26
|
private readonly subtreeDecomposer;
|
|
25
27
|
private readonly filterMaterializer;
|
|
26
28
|
private readonly videoFrameVarsBuilder;
|
|
29
|
+
private readonly segmentAnchorVarsBuilder;
|
|
30
|
+
private readonly elementWidthMeasurer;
|
|
27
31
|
private readonly horizontalPlacementResolver;
|
|
28
32
|
private readonly width;
|
|
29
33
|
private readonly height;
|
|
30
|
-
constructor(subtreeBuilder: SegmentSubtreeHtmlBuilder, subtreeDecomposer: SegmentSubtreeDecomposer, filterMaterializer: SvgFilterMaterializer, videoFrameVarsBuilder: VideoFrameVarsBuilder, horizontalPlacementResolver: HorizontalPlacementResolver, width: number, height: number);
|
|
34
|
+
constructor(subtreeBuilder: SegmentSubtreeHtmlBuilder, subtreeDecomposer: SegmentSubtreeDecomposer, filterMaterializer: SvgFilterMaterializer, videoFrameVarsBuilder: VideoFrameVarsBuilder, segmentAnchorVarsBuilder: SegmentAnchorVarsBuilder, elementWidthMeasurer: ElementWidthMeasurer, horizontalPlacementResolver: HorizontalPlacementResolver, width: number, height: number);
|
|
31
35
|
buildWrapperHtml(style: PreparedStyle, seg: Segment, t: number, indexInSection: number, nextUid: () => number): Promise<WrapperRender>;
|
|
32
36
|
private buildSegmentSubtreeHtml;
|
|
33
37
|
private buildPositionedWordSubtreeHtml;
|
|
34
38
|
private buildPositionedDecorationSubtreeHtml;
|
|
39
|
+
/** Every variable the engine publishes onto one subtree's wrapper. */
|
|
40
|
+
private buildEngineVars;
|
|
35
41
|
private composeAnchorStyle;
|
|
36
42
|
private composeStyleInput;
|
|
37
43
|
private mergeExtras;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentWrapperRenderer.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentWrapperRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAElG,OAAO,KAAK,EAAE,yBAAyB,EAA4B,MAAM,uDAAuD,CAAC;AACjI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,sDAAsD,CAAC;AAG9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"SegmentWrapperRenderer.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentWrapperRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAElG,OAAO,KAAK,EAAE,yBAAyB,EAA4B,MAAM,uDAAuD,CAAC;AACjI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AACrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,sDAAsD,CAAC;AAG9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAaD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBARN,cAAc,EAAE,yBAAyB,EACzC,iBAAiB,EAAE,wBAAwB,EAC3C,kBAAkB,EAAE,qBAAqB,EACzC,qBAAqB,EAAE,qBAAqB,EAC5C,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB,EAC1C,2BAA2B,EAAE,2BAA2B,EACxD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;IAG3B,gBAAgB,CACpB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,OAAO,EACZ,CAAC,EAAE,MAAM,EACT,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC;YA8CX,uBAAuB;YA8BvB,8BAA8B;YA2B9B,oCAAoC;IA2BlD,sEAAsE;YACxD,eAAe;IAgB7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;CAgBzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ElementWidths } from '../../rendering/subtitle/ElementWidths';
|
|
1
2
|
import { profiler } from '../../profiling/Profiler';
|
|
2
3
|
/**
|
|
3
4
|
* Builds the HTML wrapper for one render tile. Handles three subtree
|
|
@@ -14,14 +15,18 @@ export class SegmentWrapperRenderer {
|
|
|
14
15
|
subtreeDecomposer;
|
|
15
16
|
filterMaterializer;
|
|
16
17
|
videoFrameVarsBuilder;
|
|
18
|
+
segmentAnchorVarsBuilder;
|
|
19
|
+
elementWidthMeasurer;
|
|
17
20
|
horizontalPlacementResolver;
|
|
18
21
|
width;
|
|
19
22
|
height;
|
|
20
|
-
constructor(subtreeBuilder, subtreeDecomposer, filterMaterializer, videoFrameVarsBuilder, horizontalPlacementResolver, width, height) {
|
|
23
|
+
constructor(subtreeBuilder, subtreeDecomposer, filterMaterializer, videoFrameVarsBuilder, segmentAnchorVarsBuilder, elementWidthMeasurer, horizontalPlacementResolver, width, height) {
|
|
21
24
|
this.subtreeBuilder = subtreeBuilder;
|
|
22
25
|
this.subtreeDecomposer = subtreeDecomposer;
|
|
23
26
|
this.filterMaterializer = filterMaterializer;
|
|
24
27
|
this.videoFrameVarsBuilder = videoFrameVarsBuilder;
|
|
28
|
+
this.segmentAnchorVarsBuilder = segmentAnchorVarsBuilder;
|
|
29
|
+
this.elementWidthMeasurer = elementWidthMeasurer;
|
|
25
30
|
this.horizontalPlacementResolver = horizontalPlacementResolver;
|
|
26
31
|
this.width = width;
|
|
27
32
|
this.height = height;
|
|
@@ -64,16 +69,20 @@ export class SegmentWrapperRenderer {
|
|
|
64
69
|
}
|
|
65
70
|
async buildSegmentSubtreeHtml(style, seg, t, indexInSection, alignment, baseInlineStyles, segmentClasses, excludedWordIds, nextUid) {
|
|
66
71
|
const resolved = this.resolveAlignment(alignment, style.rendering.textDirection);
|
|
67
|
-
const engineVars = await this.
|
|
72
|
+
const engineVars = await this.buildEngineVars(style, seg, resolved, t);
|
|
68
73
|
const { defs, bindings } = profiler.time('SegmentWrapperRenderer.filterDefs', () => this.filterMaterializer.materialize(style, t, engineVars, nextUid));
|
|
69
|
-
const
|
|
74
|
+
const unmeasured = this.composeStyleInput(style, this.mergeExtras(engineVars, bindings, baseInlineStyles), segmentClasses);
|
|
75
|
+
const styleInput = {
|
|
76
|
+
...unmeasured,
|
|
77
|
+
elementWidths: this.elementWidthMeasurer.widthsFor(style, unmeasured, seg, t, indexInSection),
|
|
78
|
+
};
|
|
70
79
|
const subtreeHtml = profiler.time('SegmentWrapperRenderer.subtreeHtml', () => this.subtreeBuilder.buildSegmentSubtree(styleInput, seg, t, excludedWordIds, indexInSection));
|
|
71
80
|
const anchorStyle = this.composeAnchorStyle(resolved);
|
|
72
81
|
return { html: `<div style="${anchorStyle}">${subtreeHtml}</div>`, defs };
|
|
73
82
|
}
|
|
74
83
|
async buildPositionedWordSubtreeHtml(style, seg, positioned, t, indexInSection, alignment, baseInlineStyles, nextUid) {
|
|
75
84
|
const resolved = this.resolveAlignment(alignment, style.rendering.textDirection);
|
|
76
|
-
const engineVars = await this.
|
|
85
|
+
const engineVars = await this.buildEngineVars(style, seg, resolved, t);
|
|
77
86
|
const { defs, bindings } = profiler.time('SegmentWrapperRenderer.filterDefs', () => this.filterMaterializer.materialize(style, t, engineVars, nextUid));
|
|
78
87
|
const styleInput = this.composeStyleInput(style, this.mergeExtras(engineVars, bindings, baseInlineStyles));
|
|
79
88
|
const subtreeHtml = profiler.time('SegmentWrapperRenderer.subtreeHtml', () => this.subtreeBuilder.buildSingleWordSubtree(styleInput, seg, positioned.line, positioned.word, t, indexInSection, positioned.indexInLine));
|
|
@@ -82,13 +91,20 @@ export class SegmentWrapperRenderer {
|
|
|
82
91
|
}
|
|
83
92
|
async buildPositionedDecorationSubtreeHtml(style, seg, positioned, t, indexInSection, alignment, baseInlineStyles, nextUid) {
|
|
84
93
|
const resolved = this.resolveAlignment(alignment, style.rendering.textDirection);
|
|
85
|
-
const engineVars = await this.
|
|
94
|
+
const engineVars = await this.buildEngineVars(style, seg, resolved, t);
|
|
86
95
|
const { defs, bindings } = profiler.time('SegmentWrapperRenderer.filterDefs', () => this.filterMaterializer.materialize(style, t, engineVars, nextUid));
|
|
87
96
|
const styleInput = this.composeStyleInput(style, this.mergeExtras(engineVars, bindings, baseInlineStyles));
|
|
88
97
|
const subtreeHtml = profiler.time('SegmentWrapperRenderer.subtreeHtml', () => this.subtreeBuilder.buildSingleDecorationSubtree(styleInput, seg, positioned.line, positioned.word, t, indexInSection));
|
|
89
98
|
const anchorStyle = this.composeAnchorStyle(resolved);
|
|
90
99
|
return { html: `<div style="${anchorStyle}">${subtreeHtml}</div>`, defs };
|
|
91
100
|
}
|
|
101
|
+
/** Every variable the engine publishes onto one subtree's wrapper. */
|
|
102
|
+
async buildEngineVars(style, seg, resolved, t) {
|
|
103
|
+
return {
|
|
104
|
+
...(await this.videoFrameVarsBuilder.build(style, seg, resolved, t)),
|
|
105
|
+
...this.segmentAnchorVarsBuilder.build(resolved),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
92
108
|
// Zero-sized grid anchor places the wrapper via `place-items`
|
|
93
109
|
// so the wrapper stays transform-free and doesn't form a
|
|
94
110
|
// stacking context (which would trap descendant
|
|
@@ -111,6 +127,7 @@ export class SegmentWrapperRenderer {
|
|
|
111
127
|
extraSegmentClasses,
|
|
112
128
|
decorationPlacements: style.decorationPlacements,
|
|
113
129
|
addressableElementIds: style.addressableElementIds,
|
|
130
|
+
elementWidths: ElementWidths.empty(),
|
|
114
131
|
inlineStyleEmitter: style.inlineStyleEmitter,
|
|
115
132
|
};
|
|
116
133
|
}
|
|
@@ -120,6 +137,7 @@ export class SegmentWrapperRenderer {
|
|
|
120
137
|
resolveAlignment(alignment, textDirection) {
|
|
121
138
|
const horizontal = this.horizontalPlacementResolver.resolve(alignment.horizontalAlign, alignment.horizontalOffset, textDirection);
|
|
122
139
|
return {
|
|
140
|
+
verticalOffset: alignment.verticalOffset,
|
|
123
141
|
yPx: Math.round(alignment.verticalOffset * this.height),
|
|
124
142
|
xPx: Math.round(horizontal.offsetFromLeft * this.width),
|
|
125
143
|
vAnchorPct: alignment.verticalAlign === 'top' ? 0 : alignment.verticalAlign === 'center' ? 50 : 100,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentWrapperRenderer.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentWrapperRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SegmentWrapperRenderer.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SegmentWrapperRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SpriteSheetRasterRefusal } from '../../rendering/subtitle/SpriteSheetRasterProbe';
|
|
2
|
+
/** A sizing walk that ended with room for a single tile, and what stopped it. */
|
|
3
|
+
export interface SingleTileFallback {
|
|
4
|
+
/** Output dimensions the sheet was being sized for. */
|
|
5
|
+
readonly width: number;
|
|
6
|
+
readonly height: number;
|
|
7
|
+
/**
|
|
8
|
+
* Tiles the sheet held when the host turned it down — only ever 1 or
|
|
9
|
+
* 2. Refusing 2 is a small host; refusing 1 is one that cannot hold a
|
|
10
|
+
* single frame.
|
|
11
|
+
*/
|
|
12
|
+
readonly refusedTiles: number;
|
|
13
|
+
readonly refusal: SpriteSheetRasterRefusal;
|
|
14
|
+
/** Whatever was thrown, when `refusal` is `error`. */
|
|
15
|
+
readonly cause?: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Told when sizing a sprite sheet ends with room for one tile, which
|
|
19
|
+
* costs a rasterization per frame instead of one per batch.
|
|
20
|
+
*
|
|
21
|
+
* Only a refusal is reported; a capacity the pixel budget decided is
|
|
22
|
+
* the sizing working as designed.
|
|
23
|
+
*
|
|
24
|
+
* Implementations must not throw.
|
|
25
|
+
*/
|
|
26
|
+
export interface SpriteSheetProbeObserver {
|
|
27
|
+
onSingleTileFallback(fallback: SingleTileFallback): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SpriteSheetProbeObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetProbeObserver.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetProbeObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAEnG,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetProbeObserver.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetProbeObserver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a host would not hold a raster of the size it was offered.
|
|
3
|
+
*
|
|
4
|
+
* - `no-context` — the surface gave back no 2D context.
|
|
5
|
+
* - `blank-edge` — it drew, but the far corner came back unpainted.
|
|
6
|
+
* - `error` — decoding, allocating or reading back threw.
|
|
7
|
+
*/
|
|
8
|
+
export type SpriteSheetRasterRefusal = 'no-context' | 'blank-edge' | 'error';
|
|
9
|
+
/** `refusal` is `null` when the host held the raster whole. */
|
|
10
|
+
export interface SpriteSheetRasterOutcome {
|
|
11
|
+
readonly refusal: SpriteSheetRasterRefusal | null;
|
|
12
|
+
readonly cause?: unknown;
|
|
13
|
+
}
|
|
14
|
+
/** Asks a host whether it can hold one raster of a given size and read it back whole. */
|
|
15
|
+
export interface SpriteSheetRasterProbe {
|
|
16
|
+
/** Never rejects: a host that will not hold the raster is an answer, not a failure. */
|
|
17
|
+
offer(width: number, height: number): Promise<SpriteSheetRasterOutcome>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=SpriteSheetRasterProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetRasterProbe.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetRasterProbe.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;AAE7E,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,yFAAyF;AACzF,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetRasterProbe.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetRasterProbe.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SpriteSheetProbeObserver } from '../../rendering/subtitle/SpriteSheetProbeObserver';
|
|
2
|
+
import type { SpriteSheetRasterProbe } from '../../rendering/subtitle/SpriteSheetRasterProbe';
|
|
3
|
+
/**
|
|
4
|
+
* Finds how many subtitle tiles fit into one sprite sheet at given
|
|
5
|
+
* output dimensions, by offering a host a ladder of sizes until it
|
|
6
|
+
* refuses or the pixel budget runs out.
|
|
7
|
+
*
|
|
8
|
+
* Answers are memoized per dimension pair for the life of the instance.
|
|
9
|
+
* A walk decodes rasters up to the whole budget, so renderers working
|
|
10
|
+
* at the same size should share one instance.
|
|
11
|
+
*
|
|
12
|
+
* A capacity of one that came from a refusal reaches `observer`.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SpriteSheetSizeProbe {
|
|
15
|
+
private readonly rasterProbe;
|
|
16
|
+
private readonly observer;
|
|
17
|
+
private readonly maxBufferPixels;
|
|
18
|
+
private readonly byDimensions;
|
|
19
|
+
constructor(rasterProbe: SpriteSheetRasterProbe, observer?: SpriteSheetProbeObserver | null, maxBufferPixels?: number);
|
|
20
|
+
/**
|
|
21
|
+
* Tiles per sheet at these dimensions, never below one and never
|
|
22
|
+
* rejecting. Calls for the same dimensions share one walk, including
|
|
23
|
+
* calls that overlap in flight.
|
|
24
|
+
*/
|
|
25
|
+
probe(width: number, height: number): Promise<number>;
|
|
26
|
+
private measure;
|
|
27
|
+
/** Tiles stack along the smaller axis, so a sheet grows in one dimension only. */
|
|
28
|
+
private sheetFor;
|
|
29
|
+
private reportFallback;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=SpriteSheetSizeProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetSizeProbe.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetSizeProbe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AACrG,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,oDAAoD,CAAC;AAa5D;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAK7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;gBAGhD,WAAW,EAAE,sBAAsB,EACnC,QAAQ,GAAE,wBAAwB,GAAG,IAAW,EAChD,eAAe,GAAE,MAAkC;IAGtE;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAUvC,OAAO;IAuBrB,kFAAkF;IAClF,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,cAAc;CAqBvB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const NUMBER_OF_TILES_TO_TEST = [1, 2, 4, 6, 8, 10, 12, 15, 18, 21, 25, 30];
|
|
2
|
+
// 10 frames at 1080×1920 ≈ 80 MB of pixel buffer.
|
|
3
|
+
// At 4K the same budget admits only ~2 tiles per batch.
|
|
4
|
+
const DEFAULT_MAX_BUFFER_PIXELS = 10 * 1080 * 1920;
|
|
5
|
+
/**
|
|
6
|
+
* Finds how many subtitle tiles fit into one sprite sheet at given
|
|
7
|
+
* output dimensions, by offering a host a ladder of sizes until it
|
|
8
|
+
* refuses or the pixel budget runs out.
|
|
9
|
+
*
|
|
10
|
+
* Answers are memoized per dimension pair for the life of the instance.
|
|
11
|
+
* A walk decodes rasters up to the whole budget, so renderers working
|
|
12
|
+
* at the same size should share one instance.
|
|
13
|
+
*
|
|
14
|
+
* A capacity of one that came from a refusal reaches `observer`.
|
|
15
|
+
*/
|
|
16
|
+
export class SpriteSheetSizeProbe {
|
|
17
|
+
rasterProbe;
|
|
18
|
+
observer;
|
|
19
|
+
maxBufferPixels;
|
|
20
|
+
byDimensions = new Map();
|
|
21
|
+
constructor(rasterProbe, observer = null, maxBufferPixels = DEFAULT_MAX_BUFFER_PIXELS) {
|
|
22
|
+
this.rasterProbe = rasterProbe;
|
|
23
|
+
this.observer = observer;
|
|
24
|
+
this.maxBufferPixels = maxBufferPixels;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Tiles per sheet at these dimensions, never below one and never
|
|
28
|
+
* rejecting. Calls for the same dimensions share one walk, including
|
|
29
|
+
* calls that overlap in flight.
|
|
30
|
+
*/
|
|
31
|
+
probe(width, height) {
|
|
32
|
+
const key = `${width}x${height}`;
|
|
33
|
+
let pending = this.byDimensions.get(key);
|
|
34
|
+
if (!pending) {
|
|
35
|
+
pending = this.measure(width, height);
|
|
36
|
+
this.byDimensions.set(key, pending);
|
|
37
|
+
}
|
|
38
|
+
return pending;
|
|
39
|
+
}
|
|
40
|
+
async measure(width, height) {
|
|
41
|
+
try {
|
|
42
|
+
let held = 1;
|
|
43
|
+
for (const tiles of NUMBER_OF_TILES_TO_TEST) {
|
|
44
|
+
const sheet = this.sheetFor(width, height, tiles);
|
|
45
|
+
if (sheet.width * sheet.height > this.maxBufferPixels)
|
|
46
|
+
return held;
|
|
47
|
+
const outcome = await this.rasterProbe.offer(sheet.width, sheet.height);
|
|
48
|
+
if (outcome.refusal === null) {
|
|
49
|
+
held = tiles;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (held === 1)
|
|
53
|
+
this.reportFallback(width, height, tiles, outcome.refusal, outcome.cause);
|
|
54
|
+
return held;
|
|
55
|
+
}
|
|
56
|
+
return held;
|
|
57
|
+
}
|
|
58
|
+
catch (cause) {
|
|
59
|
+
// The raster probe promises not to reject, so something under it
|
|
60
|
+
// broke that promise. Still owes a usable number.
|
|
61
|
+
this.reportFallback(width, height, 1, 'error', cause);
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** Tiles stack along the smaller axis, so a sheet grows in one dimension only. */
|
|
66
|
+
sheetFor(width, height, tiles) {
|
|
67
|
+
return width < height
|
|
68
|
+
? { width: width * tiles, height }
|
|
69
|
+
: { width, height: height * tiles };
|
|
70
|
+
}
|
|
71
|
+
reportFallback(width, height, refusedTiles, refusal, cause) {
|
|
72
|
+
if (!this.observer)
|
|
73
|
+
return;
|
|
74
|
+
try {
|
|
75
|
+
this.observer.onSingleTileFallback({
|
|
76
|
+
width,
|
|
77
|
+
height,
|
|
78
|
+
refusedTiles,
|
|
79
|
+
refusal,
|
|
80
|
+
...(cause !== undefined ? { cause } : {}),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Reporting is best-effort by contract; a broken channel must not
|
|
85
|
+
// take the render with it.
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=SpriteSheetSizeProbe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteSheetSizeProbe.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SpriteSheetSizeProbe.ts"],"names":[],"mappings":"AAMA,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE5E,kDAAkD;AAClD,wDAAwD;AACxD,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAOnD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,oBAAoB;IAKZ;IACA;IACA;IALF,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEnE,YACmB,WAAmC,EACnC,WAA4C,IAAI,EAChD,kBAA0B,yBAAyB;QAFnD,gBAAW,GAAX,WAAW,CAAwB;QACnC,aAAQ,GAAR,QAAQ,CAAwC;QAChD,oBAAe,GAAf,eAAe,CAAoC;IACnE,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,KAAa,EAAE,MAAc;QACjC,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,MAAc;QACjD,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe;oBAAE,OAAO,IAAI,CAAC;gBACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxE,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBAC7B,IAAI,GAAG,KAAK,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iEAAiE;YACjE,kDAAkD;YAClD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,kFAAkF;IAC1E,QAAQ,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;QAC3D,OAAO,KAAK,GAAG,MAAM;YACnB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,MAAM,EAAE;YAClC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;IACxC,CAAC;IAEO,cAAc,CACpB,KAAa,EACb,MAAc,EACd,YAAoB,EACpB,OAAiC,EACjC,KAAc;QAEd,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACjC,KAAK;gBACL,MAAM;gBACN,YAAY;gBACZ,OAAO;gBACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;YAClE,2BAA2B;QAC7B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** One effect the browser reported, timed against the playhead it was read at. */
|
|
2
|
+
export interface TimedEffect {
|
|
3
|
+
readonly address: string;
|
|
4
|
+
readonly rule: string;
|
|
5
|
+
/** When the effect's active phase opens, relative to the playhead. */
|
|
6
|
+
readonly startsInMs: number;
|
|
7
|
+
/** How long that phase lasts, or `null` where the effect repeats forever. */
|
|
8
|
+
readonly activeDurationMs: number | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* What the browser reported about one mounted subtree, and what that
|
|
12
|
+
* still decides at other playheads.
|
|
13
|
+
*
|
|
14
|
+
* A frozen frame anchors every effect's timeline to the playhead
|
|
15
|
+
* through a negative delay, so advancing the playhead by Δ is expected
|
|
16
|
+
* to move each phase boundary by −Δ. A stylesheet doing arithmetic on
|
|
17
|
+
* a clock breaks that, which {@link predicts} is there to catch.
|
|
18
|
+
*
|
|
19
|
+
* A reading answers only where being wrong about the shift could not
|
|
20
|
+
* change the answer: the playhead has to sit farther from every
|
|
21
|
+
* boundary than the distance travelled since the reading was taken.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SubtreeAnimationReading {
|
|
24
|
+
private readonly effects;
|
|
25
|
+
private readonly takenAtSeconds;
|
|
26
|
+
constructor(effects: ReadonlyArray<TimedEffect>, takenAtSeconds: number);
|
|
27
|
+
/**
|
|
28
|
+
* Whether this reading decides the question at `seconds` on its own.
|
|
29
|
+
* `false` means the subtree has to be read again there.
|
|
30
|
+
*/
|
|
31
|
+
answersAt(seconds: number): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* A value equal for two playheads exactly when every effect holds the
|
|
34
|
+
* same fixed value at both, or `null` where one of them is mid-run or
|
|
35
|
+
* repeats forever.
|
|
36
|
+
*/
|
|
37
|
+
phaseKeyAt(seconds: number): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Whether `later` is what this reading said would be found there:
|
|
40
|
+
* the same effects, each shifted by exactly the elapsed time. A
|
|
41
|
+
* mismatch means the subtree's timing does not follow the playhead,
|
|
42
|
+
* and nothing may be carried across playheads for it.
|
|
43
|
+
*/
|
|
44
|
+
predicts(later: SubtreeAnimationReading): boolean;
|
|
45
|
+
private elapsedMsTo;
|
|
46
|
+
/** How far the playhead at `seconds` sits from the nearer end of the effect's active phase. */
|
|
47
|
+
private distanceToBoundariesMs;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=SubtreeAnimationReading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtreeAnimationReading.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SubtreeAnimationReading.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAOD;;;;;;;;;;;;GAYG;AACH,qBAAa,uBAAuB;IAGhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EACnC,cAAc,EAAE,MAAM;IAGzC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWnC;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAa1C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO;IAYjD,OAAO,CAAC,WAAW;IAInB,+FAA+F;IAC/F,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// A clock reaches the stylesheet as a `<time>` rounded to milliseconds,
|
|
2
|
+
// so the same effect read at two playheads can report delays that
|
|
3
|
+
// disagree by a whole millisecond without either being wrong.
|
|
4
|
+
const CLOCK_QUANTUM_MS = 1;
|
|
5
|
+
/**
|
|
6
|
+
* What the browser reported about one mounted subtree, and what that
|
|
7
|
+
* still decides at other playheads.
|
|
8
|
+
*
|
|
9
|
+
* A frozen frame anchors every effect's timeline to the playhead
|
|
10
|
+
* through a negative delay, so advancing the playhead by Δ is expected
|
|
11
|
+
* to move each phase boundary by −Δ. A stylesheet doing arithmetic on
|
|
12
|
+
* a clock breaks that, which {@link predicts} is there to catch.
|
|
13
|
+
*
|
|
14
|
+
* A reading answers only where being wrong about the shift could not
|
|
15
|
+
* change the answer: the playhead has to sit farther from every
|
|
16
|
+
* boundary than the distance travelled since the reading was taken.
|
|
17
|
+
*/
|
|
18
|
+
export class SubtreeAnimationReading {
|
|
19
|
+
effects;
|
|
20
|
+
takenAtSeconds;
|
|
21
|
+
constructor(effects, takenAtSeconds) {
|
|
22
|
+
this.effects = effects;
|
|
23
|
+
this.takenAtSeconds = takenAtSeconds;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether this reading decides the question at `seconds` on its own.
|
|
27
|
+
* `false` means the subtree has to be read again there.
|
|
28
|
+
*/
|
|
29
|
+
answersAt(seconds) {
|
|
30
|
+
const travelledMs = Math.abs(this.elapsedMsTo(seconds));
|
|
31
|
+
const safeDistanceMs = Math.max(travelledMs, CLOCK_QUANTUM_MS * 2);
|
|
32
|
+
return this.effects.every((effect) => {
|
|
33
|
+
// An effect that repeats forever answers the same at every
|
|
34
|
+
// playhead, so no distance protects anything.
|
|
35
|
+
if (effect.activeDurationMs === null)
|
|
36
|
+
return true;
|
|
37
|
+
return this.distanceToBoundariesMs(effect, seconds) > safeDistanceMs;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A value equal for two playheads exactly when every effect holds the
|
|
42
|
+
* same fixed value at both, or `null` where one of them is mid-run or
|
|
43
|
+
* repeats forever.
|
|
44
|
+
*/
|
|
45
|
+
phaseKeyAt(seconds) {
|
|
46
|
+
const elapsedMs = this.elapsedMsTo(seconds);
|
|
47
|
+
const phases = [];
|
|
48
|
+
for (const effect of this.effects) {
|
|
49
|
+
if (effect.activeDurationMs === null)
|
|
50
|
+
return null;
|
|
51
|
+
const startsInMs = effect.startsInMs - elapsedMs;
|
|
52
|
+
if (startsInMs <= 0 && startsInMs + effect.activeDurationMs > 0)
|
|
53
|
+
return null;
|
|
54
|
+
phases.push(`${effect.address}:${effect.rule}:${startsInMs > 0 ? 'before' : 'after'}`);
|
|
55
|
+
}
|
|
56
|
+
phases.sort();
|
|
57
|
+
return JSON.stringify(phases);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Whether `later` is what this reading said would be found there:
|
|
61
|
+
* the same effects, each shifted by exactly the elapsed time. A
|
|
62
|
+
* mismatch means the subtree's timing does not follow the playhead,
|
|
63
|
+
* and nothing may be carried across playheads for it.
|
|
64
|
+
*/
|
|
65
|
+
predicts(later) {
|
|
66
|
+
if (later.effects.length !== this.effects.length)
|
|
67
|
+
return false;
|
|
68
|
+
const elapsedMs = this.elapsedMsTo(later.takenAtSeconds);
|
|
69
|
+
return this.effects.every((effect, index) => {
|
|
70
|
+
const found = later.effects[index];
|
|
71
|
+
return found.address === effect.address
|
|
72
|
+
&& found.rule === effect.rule
|
|
73
|
+
&& found.activeDurationMs === effect.activeDurationMs
|
|
74
|
+
&& Math.abs(found.startsInMs - (effect.startsInMs - elapsedMs)) <= CLOCK_QUANTUM_MS;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
elapsedMsTo(seconds) {
|
|
78
|
+
return (seconds - this.takenAtSeconds) * 1000;
|
|
79
|
+
}
|
|
80
|
+
/** How far the playhead at `seconds` sits from the nearer end of the effect's active phase. */
|
|
81
|
+
distanceToBoundariesMs(effect, seconds) {
|
|
82
|
+
const startsInMs = effect.startsInMs - this.elapsedMsTo(seconds);
|
|
83
|
+
const endsInMs = startsInMs + (effect.activeDurationMs ?? 0);
|
|
84
|
+
return Math.min(Math.abs(startsInMs), Math.abs(endsInMs));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=SubtreeAnimationReading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtreeAnimationReading.js","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SubtreeAnimationReading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the browser can be asked what animations a subtree runs.
|
|
3
|
+
*
|
|
4
|
+
* Answered by mounting a fixture rather than by naming versions: the
|
|
5
|
+
* question needs `getAnimations` to exist, to honour the `subtree`
|
|
6
|
+
* option, and to report an effect that lives on a descendant's
|
|
7
|
+
* pseudo-element. One fixture exercises all three.
|
|
8
|
+
*
|
|
9
|
+
* Checked on first use and remembered for the lifetime of the
|
|
10
|
+
* instance.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SubtreeAnimationSupport {
|
|
13
|
+
private available;
|
|
14
|
+
isAvailable(): boolean;
|
|
15
|
+
private check;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=SubtreeAnimationSupport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtreeAnimationSupport.d.ts","sourceRoot":"","sources":["../../../../src/modules/rendering/subtitle/SubtreeAnimationSupport.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,SAAS,CAAwB;IAEzC,WAAW,IAAI,OAAO;IAKtB,OAAO,CAAC,KAAK;CAyBd"}
|