Commit 1a7d5d3
Dhanush Varma
feat: port SRT encoder to Rust
Implement ccxr_write_stringz_as_srt and ccxr_write_cc_buffer_as_srt
in src/rust/src/encoder/srt.rs. Covers:
- Subtitle counter and timestamp formatting with -1ms overlap prevention
- \n unescape handling for multi-line subtitles
- Encoding conversion (UTF-8, Latin1, UCS-2)
- Autodash detection for CEA-608 screen buffers
- Speaker name detection (colon-based)
Uses existing Rust encoder infrastructure (encode_line, write_wrapped)
and calls C get_decoder_line_encoded for CEA-608 line encoding until
that function is also ported.
Exported as #[no_mangle] extern C functions ready to replace the C
versions in ccx_encoders_srt.c.1 parent 9f250b1 commit 1a7d5d3
4 files changed
Lines changed: 558 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
9 | 13 | | |
10 | 14 | | |
| 15 | + | |
11 | 16 | | |
12 | 17 | | |
13 | 18 | | |
| |||
83 | 88 | | |
84 | 89 | | |
85 | 90 | | |
86 | | - | |
| 91 | + | |
87 | 92 | | |
88 | 93 | | |
89 | 94 | | |
90 | 95 | | |
91 | | - | |
92 | | - | |
| 96 | + | |
93 | 97 | | |
94 | 98 | | |
95 | 99 | | |
| |||
156 | 160 | | |
157 | 161 | | |
158 | 162 | | |
| 163 | + | |
| 164 | + | |
159 | 165 | | |
160 | 166 | | |
161 | 167 | | |
| |||
191 | 197 | | |
192 | 198 | | |
193 | 199 | | |
| 200 | + | |
194 | 201 | | |
195 | 202 | | |
196 | 203 | | |
197 | 204 | | |
| 205 | + | |
| 206 | + | |
198 | 207 | | |
199 | 208 | | |
200 | 209 | | |
| |||
311 | 320 | | |
312 | 321 | | |
313 | 322 | | |
| 323 | + | |
314 | 324 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
0 commit comments