Add IMSC 1.1 image profile image-based export#12547
Merged
Merged
Conversation
IMSC 1.1 image profile (W3C/ISO TTML image profile) is the standardized image-subtitle carriage for streaming and broadcast delivery. It was the one widely-used image-based export SE lacked. ExportHandlerImscImage writes a single self-contained TTML file: each cue is a cropped PNG embedded as a base64 <smpte:image> in the head, referenced from a <div smpte:backgroundImage> in the body, positioned by a per-cue region with percentage origin/extent computed from the cue's on-screen placement (same alignment/override logic as the BDN XML handler). Media timebase, HH:MM:SS.mmm times. Reuses the shared ImageRenderer, so it picks up the export dialog's font/outline/box/position settings for free. Wired into the File > Export menu and the image-based export dialog; the output round-trips through SE's own Timed Text Base64 Image reader. Verified: 3 libuilogic tests (conformant profile/timebase/smpte shape, round-trip through the base64-image reader recovering exact timings, and embedded PNGs decoding to the right dimensions), plus a rendered sample whose extracted PNG shows the correct subtitle. Full solution builds; all libuilogic tests pass. Docs (File features) + change-log updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 16, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the IMSC 1.1 image profile (W3C/ISO TTML image profile) as an image-based export — the standardized image-subtitle carriage used for streaming and broadcast delivery, and the one widely-used image-based format SE didn't have (the gap identified in the EBU-TT-D discussion).
What it produces
ExportHandlerImscImagewrites a single self-contained TTML file:<smpte:image imagetype="PNG" encoding="Base64">in<head>,<div smpte:backgroundImage="#imgN">in<body>withbegin/end,<region>with percentagetts:origin/tts:extentcomputed from the cue's on-screen placement (same alignment +OverridePositionlogic as the BDN XML handler),ttp:profile=".../imsc1/image",ttp:timeBase="media",HH:MM:SS.mmmtimes.It reuses the shared
ImageRenderer, so it inherits the export dialog's font / outline / shadow / box / position settings automatically.Wiring
ExportImageType.ImscImage).Verified
smpte:imageshape, round-trip through the base64-image reader recovering exact timings, and embedded PNGs decoding to the right dimensions.origin 39.58% 87.04%,extent 20.83% 8.33%).Pairs naturally with the EBU-TT-D text format added earlier — together they cover both the text and image TTML profiles European/streaming delivery asks for.
🤖 Generated with Claude Code