Repository navigation
Read FLIC animations (.flc, .fli) as video (#940) - #1099
Merged
Merged
Conversation
FLIC is the animation format of Autodesk Animator (.fli) and Animator Pro (.flc), also found in DOS games and pixel-art tools. FFmpeg's flic demuxer and decoder read both, so the new read-only "flc" video format goes to GIF, the video targets and PNG frames through FFmpeg, like Bink in #771. FFmpeg has no FLIC encoder, so it is never a target. - Graded legacy, in the legacy and game fields (both off by default; it is never an output, so nothing in the slots changes). - Schema 65: the video donut learns "flc" and "fli"; custom claims stay put. - Tests build a small FLC / FLI in code (FFmpeg can't write one) and convert it to GIF, MP4 and PNG. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
What changed
FLIC, the animation format of Autodesk Animator (
.fli) and Animator Pro (.flc), is now a read-only video input, the same way Bink came in with #771. FFmpeg, which Filee already uses for video, reads it: the pinned build (9.0.2) lists theflicdemuxer (D flic FLI/FLC/FLX animation) and theflicdecoder (D.V..S flic Autodesk Animator Flic video), and has no FLIC encoder. So the new format converts to GIF, every video target and PNG frames, and is never a target.FormatRegistry:new("flc", "FLIC", FormatCategory.Video, ["flc", "fli"], Writable: false)after Bink. One format with both extensions: same container family, same demuxer and decoder.FormatFields: graded legacy (replaced by GIF and video, hardly anyone makes new FLIC files), fields legacy + game (DOS game cutscenes; Aseprite and similar pixel-art tools still read and write it). Both fields are off by default, but FLIC is never an output, so no slot or list changes (rule 5: a read-only format comes in).flcandfli; a user's own donut that already claims one keeps it. (Schema 65 may be renumbered if another change takes it first: the.kra~and.dbmlPRs add one each.)docs/ENGINES.md: one paragraph next to Bink.No converter code changes:
FfmpegConverterbuilds its edges from every video format in the registry.How it was tested
FFmpeg has no FLIC encoder, so the tests write a small FLIC in code, the way Animator does (128-byte header, frame chunks with a palette chunk and uncompressed
COPYpixels): 64×48, ten frames at 10 per second,.flcwith an 8-bit palette (COLOR_256) and speed in ms,.fliwith a 6-bit palette (COLOR_64) and speed in 1/70 s. Same approach as the hand-built DHAV recording for.dav.Filee.Core.Tests/FlicFormatTests:.flc/.FLIare the read-onlyflcvideo, named after the file, on the video donut; schema 64 → 65 learns them once and leaves a custom claim alone.FormatFieldsTests: grade counts (legacy 51) and the legacy / game field members.Filee.Engines.Tests/MediaTests(need Filee's FFmpeg, skipped in CI like the other real FFmpeg tests):flc → gifis one FFmpeg step, nothing converts toflc;.flc → GIF,.flc → MP4,.fli → GIF: 64×48, all frames, about one second;.fli → PNG: the 6-bit palette comes out full red and blue (not darkened).dotnet build, all ofFilee.Core.Tests(973 passed, 3 skipped),MediaTests+NewExtensionsRealTestswith FFmpeg 9.0.2 (174 passed),dotnet format Filee.slnx --verify-no-changes.Closes #940
🤖 Generated with Claude Code