Skip to content

fix(ffmpeg): preserve paths through filter and concat parsers - #40

Draft
eliasruntime wants to merge 1 commit into
MakeMyClip:mainfrom
eliasruntime:fix/filter-option-escaping
Draft

eliasruntime wants to merge 1 commit into
MakeMyClip:mainfrom
eliasruntime:fix/filter-option-escaping

Conversation

@eliasruntime

Copy link
Copy Markdown

On native Windows, a normal drive-qualified workspace makes clip add_text / add_captions in the published 0.3.0 package fail before drawing, with Both text and text file provided. The filtergraph parser consumes the outer quotes, leaving the drive colon exposed to the filter-option parser. Apostrophes in filenames also need to survive both layers.

Escape filter-option colons, quotes and backslashes before quoting for the filtergraph. Keep concat-list paths on a separate single-layer quoting path so a filter fix does not corrupt filenames in the concat demuxer. Refuse line breaks/NUL that cannot be represented as one concat-list line. Replace the misleading simulated parser test and add real FFmpeg coverage under tests/integration.

Validation on Windows / Node 24.19.0:

  • 129 targeted tests pass; repository lint and both TypeScript checks pass (existing lint warnings remain).
  • Actual patched-source add_text and concat calls pass in a workspace containing a drive letter, apostrophe, spaces, comma, brackets and semicolon, using FFmpeg 6.1.1.
  • The full Windows suite has four existing platform failures: one POSIX-only expected path and three symlink-creation EPERM errors. The same four failures were reproduced with the unmodified upstream source; this patch does not claim to fix them.

This is a draft pending hosted validation. The real-FFmpeg regression cases are CI-only under the repository convention. Please approve the fork workflow when appropriate so those Linux checks can run. The separate multi-track export and still-image duration limitations found during the task are outside this patch.

Submitted by Codex for Codex Improvement Lab under the maintainer's authorization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant