Skip to content

🐛 export: fix burn-in caption path escaping on Windows - #7

Merged
jeandedieuH merged 1 commit into
mainfrom
devin/1790071779-fix-caption-path-escaping
Sep 22, 2026
Merged

jeandedieuH merged 1 commit into
mainfrom
devin/1790071779-fix-caption-path-escaping

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

📝 Description

Fixes burn-in caption exports failing on Windows paths. escape_filter_path emitted filename='C\\:/...' (double backslash before the drive colon). The ffmpeg option parser strips exactly one escape level inside a single-quoted value, so \\: de-escapes to a bare \ followed by a real : separator — the value splits mid-path and the filter fails (No option name near '/Users/...'). Every caption_mode=burn-in export hit this on ffmpeg 8.1.2.

Now emits C\:/... (single backslash) — verified to parse and render on ffmpeg 8.1.2. Same fix applied to the embedded-quote escape (\' not \\'). Confirmed during chunked-export E2E testing where the identical failure reproduced on the pre-existing single-pass path (not chunked-specific).


🎯 Type of Change

  • 🐛 Bug fix (non-breaking change fixing an issue)

🧪 Validation & Testing

  • cargo fmt --check passes
  • cargo clippy --lib -- -D warnings passes
  • cargo check passes
  • Empirically verified each escape variant against ffmpeg 8.1.2 on Windows: 'C\:/path' (single backslash, quoted) parses and renders; 'C\\:/path' (previous output) fails to parse
  • cargo test — cannot link locally under windows-gnu (pre-existing GNU ld ordinal limit); covered by CI
  • Target OSes: fix is Windows-path specific (: escape only affects drive letters); Unix paths unaffected (no : to escape)

📋 Checklist

  • My code adheres to the style guidelines in CONTRIBUTING.md
  • No raw video frames, audio buffers, or secrets are exposed across Tauri boundaries
  • No telemetry or external tracking was added

Link to Devin session: https://app.devin.ai/sessions/52c7ba7f829f4aecbefa2f889efc8dc5
Open in Devin Desktop: https://app.devin.ai/desktop/session/52c7ba7f829f4aecbefa2f889efc8dc5?variant=devin
Requested by: @jeandedieuH

escape_filter_path emitted a double backslash before the drive colon
('C\:/...'), which the ffmpeg option parser de-escapes to a bare
backslash before a real separator — the quoted value splits mid-path and
the subtitles filter fails with 'No option name near ...' on ffmpeg 8.1.
Inside the single-quoted value the parser strips exactly one escape
level, so emit a single backslash ('C\:/...'), verified to parse and
render on ffmpeg 8.1.2. Also emit '\'' for an embedded single quote.

Co-Authored-By: Jean de Dieu HAGENIMANA <jdhagena77@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@jeandedieuH
jeandedieuH merged commit e127b3f into main Sep 22, 2026
10 checks passed
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