Repository navigation
Render Discord Lottie stickers with tlottie - #21
Conversation
itz4blitz
left a comment
There was a problem hiding this comment.
Lottie JSON is rendered on the CPU into the existing frame cache, GUI-only, with the input, canvas, frame, and two-second budgets the tests cover. A still first frame is kept when animation is off or will not fit, and the picker registers the same sticker id a received message uses. The straight-BGRA conversion matches the fixture. macOS, Linux, and Windows are green on 3c5b347.
This and #22 both insert a paragraph after the same line in docs/design/polish/06-composer.md. I am merging #22 first; if this no longer applies cleanly it needs a rebase that keeps both notes.
|
Approved on 3c5b347, and macOS, Linux, and Windows were green. It no longer merges: #22 landed first and both branches edit Please rebase onto current |
Render cached Lottie JSON natively into the existing animation cache, including sticker-picker previews. Keep still-frame fallback, playback settings, frame budgets, bounded parsing, and transparent BGRA output. Pin the GUI-only CPU renderer without adding daemon dependencies. Add synthetic rendering and cache regressions, extend the Discord picker fixture, and document resource limits. The reported cached sticker renders correctly, including its first-frame fallback. Co-Authored-By: GPT-6 <noreply@openai.com>
3c5b347 to
fb85278
Compare
itz4blitz
left a comment
There was a problem hiding this comment.
Rebase onto main kept both sides. Lottie still decodes before the still-image path, Linux and Windows still guess the format from the bytes, and a thumbnail still will not enlarge a smaller source. The design note keeps the still-image paragraph, the Lottie paragraph, and the Wikipedia section. I'll merge once macOS, Linux, and Windows are green on fb85278.
|
macOS failed in Test (no GUI) on the existing Slack spacing assertion in |
Discord Lottie stickers were downloaded as JSON but displayed a broken-image placeholder, and the sticker picker omitted them. Render them natively using tlottie's Rust CPU backend, pinned at 92df98dc209bc39b1e567ec74a8c86a0af5239de.
Feed decoded frames into the existing image cache and animation playback controls. Keep a first-frame fallback when animation is disabled or cannot fit, preserve transparency, and reuse the frame/byte budgets. Bound input size, canvas dimensions, source frame count, rendering resolution, and decode time. The renderer does not resolve external image/font references. Register Lottie files in the Discord picker using the same media IDs as incoming stickers. The dependency is GUI-only; daemons and non-GUI builds do not link it. Telegram compressed TGS support is unchanged.
Includes an authored JSON fixture, rendering/cache/cropping regressions, the updated Discord picker fixture, and design documentation. Based directly on current upstream main, independently of the companion cached-image/tooltip fix.
Validation:
git diff --checkpasses.