Commit Graph
1927 Commits
Author SHA1 Message Date
Dylan M. Taylor 964ccae812 craft-eps: share PostScript numeric operators 2026-11-14 02:26:40 +00:00
Dylan M. Taylor de7640a006 feat(xml): preserve strict end-tag parsing as an option 2026-11-13 21:11:56 -05:00
alehelandClaude Opus 5.5 7c652beec4 craft-audio: review fixes, round 1 (#446)
- `Encoder::with_application` checks the channel count before clamping
  the bitrate, so 86 channels or more return `Error::Channels` instead
  of panicking in `clamp`. Tested with 86 and 255.
- The ffmpeg oracle test skips a missing `opus`/`libopus` decoder
  through the testkit's `skip`, so `CRAFT_MEDIA_REQUIRE_ORACLES=1` fails
  it.
- README: the encode example pads at least the pre-skip after the audio
  before rounding up to a frame, so the encoder delay is flushed; the
  MP4 note says an explicit edit replaces the `media_start` edit and
  gives its fields.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 21:09:46 -05:00
alehelandClaude Opus 5.5 bdf8cb2a19 craft-audio: Opus encoder
EffectCraft's `effectcraft-opusenc` as `opus::encoder` (and
`opus::Encoder`) behind `opus-encode`: SILK, hybrid and CELT, 48 kHz,
20 ms frames, mono or stereo. The constructors and `encode_float`
return `Result` instead of panicking. `Bandwidth` is one type for the
decoder and the encoder, and the two `Mode` enums convert into each
other. `encode` now turns on `opus-encode`.

The encoder tests (modes, ffmpeg's two Opus decoders as oracles) and
`TrackDecoder` on Opus without an `OpusHead` come with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 21:09:46 -05:00
Dylan M. Taylor dc200ff58c Merge pull request #1236 from dylanmtaylor/codex/eps-postscript-vm
Add reusable PostScript VM stack operators
2026-11-13 20:59:50 -05:00
Dylan M. Taylor 948b5c23c1 Merge pull request #1222 from dylanmtaylor/codex/gif-animation-writer
Add shared animated GIF writer
2026-11-13 20:23:11 -05:00
Dylan M. Taylor 39f45eda55 Avoid ambiguous empty stack assertions 2026-11-14 00:48:11 +00:00
Dylan M. Taylor 6d620e971e Merge pull request #1229 from storytold/codex/craft-jxl-extraction
Add shared JPEG XL decoder and encoder
2026-11-13 19:39:17 -05:00
Dylan M. Taylor 26feec69cb Add reusable PostScript VM stack operators 2026-11-14 00:37:04 +00:00
Dylan M. Taylor 543e5d4983 Validate GIF frame length before copying 2026-11-14 00:34:24 +00:00
Dylan M. Taylor 387c64892b Merge pull request #1219 from dylanmtaylor/codex/csv-strict-utf8
Add strict UTF-8 decoding for delimited text
2026-11-13 19:14:46 -05:00
Dylan M. Taylor d61671b6de Preserve JPEG XL metadata and associated alpha 2026-11-13 23:47:44 +00:00
Dylan M. Taylor d5e9fd7a49 Preserve GIF writer default disposal 2026-11-13 23:37:55 +00:00
Dylan M. Taylor 7bb6c90076 Merge pull request #1228 from storytold/codex/craft-dwg-extraction
Add shared DWG-DXF byte bridge
2026-11-13 18:35:13 -05:00
Dylan M. Taylor 2b9a325f57 Merge pull request #1224 from storytold/codex/xlsx-orphan-shared-strings
Preserve XLSX shared strings without a relationship
2026-11-13 18:34:55 -05:00
Dylan M. Taylor 6eac66c1fe Merge remote-tracking branch 'origin/main' into codex/eps-postscript-vm 2026-11-13 23:20:31 +00:00
Dylan M. Taylor 4d322fc5a4 Merge pull request #1218 from dylanmtaylor/codex/eps-postscript-api
Add reusable PostScript EPS scanner
2026-11-13 18:18:50 -05:00
Dylan M. Taylor ade25d64eb Expose structured JPEG XL pixel limits 2026-11-13 23:13:26 +00:00
Dylan M. Taylor 8fcb191515 Preserve JPEG XL color rendering options 2026-11-13 23:06:05 +00:00
Dylan M. Taylor 86621fbab3 Keep GIF render batches palette-quantized 2026-11-13 22:49:33 +00:00
Dylan M. Taylor 9405f3652b Merge remote-tracking branch 'origin/main' into codex/craft-jxl-extraction 2026-11-13 22:47:47 +00:00
Dylan M. Taylor 4d3e920954 Add shared JPEG XL decoder and encoder 2026-11-13 22:47:47 +00:00
Dylan M. Taylor 888bffcbb3 Add shared DWG-DXF byte bridge 2026-11-13 22:45:07 +00:00
Dylan M. Taylor f399135165 Merge remote-tracking branch 'origin/main' into codex/gif-animation-writer 2026-11-13 22:22:08 +00:00
Dylan M. Taylor 68b8171b0d Merge pull request #1215 from dylanmtaylor/codex/lightcraft-gif-frame-decode
gif: bound frame decoding and expose ICC metadata
2026-11-13 17:18:28 -05:00
Dylan M. Taylor a9080bf1fd Merge remote-tracking branch 'origin/main' into codex/eps-postscript-api 2026-11-13 22:16:25 +00:00
Dylan M. Taylor 2fea4b4ce2 Merge pull request #1217 from dylanmtaylor/codex/eps-embedded-font-fix
Fix EPS embedded font token scanning
2026-11-13 17:15:50 -05:00
Dylan M. Taylor 6d0b33c0cd Read conventional XLSX shared strings without a relationship 2026-11-13 22:11:05 +00:00
Dylan M. Taylor 6159ef9c39 Bound streaming GIF writer lifecycle 2026-11-13 22:09:54 +00:00
Dylan M. Taylor 8b8603c6e7 Support streaming animated GIF output 2026-11-13 22:08:57 +00:00
Dylan M. Taylor 2b4f6b4f87 Add shared animated GIF writer 2026-11-13 22:05:00 +00:00
Dylan M. Taylor d62c51645e Add bounded PostScript VM primitives 2026-11-13 21:59:03 +00:00
Dylan M. Taylor 69e457a8eb Add strict UTF-8 text decoder 2026-11-13 21:38:11 +00:00
Dylan M. Taylor ab51daff1a Respect PostScript delimiters after literal names 2026-11-13 21:29:53 +00:00
Dylan M. Taylor 74337e8fc5 fix(gif): report frame cap after merging 2026-11-13 21:27:44 +00:00
Dylan M. Taylor 4cc86fc7cf Add reusable PostScript EPS scanner 2026-11-13 21:21:47 +00:00
Dylan M. Taylor 24a011ae59 Fix lexical EPS embedded font scanning 2026-11-13 21:17:24 +00:00
Dylan M. Taylor 830e897714 Merge craft-libs main after GIF limits 2026-11-13 21:09:43 +00:00
Dylan M. Taylor b5b8a7750d Merge pull request #1192 from dylanmtaylor/codex/effectcraft-shared-format-cutover
fix: bound GIF allocations and clarify WebP canvas limits
2026-11-13 16:06:01 -05:00
Dylan M. Taylor 61cfc7f3d1 Merge pull request #1212 from storytold/codex/craft-eps-fontscan
Extract embedded PostScript font scanning to craft-eps
2026-11-13 16:05:35 -05:00
Dylan M. Taylor acfcaa1b0e Merge pull request #1209 from storytold/fix/csv-delimiter-quote-boundaries
fix(csv): preserve quoted delimiter coherence
2026-11-13 15:51:25 -05:00
Dylan M. Taylor 669d62e755 docs(gif): clarify combined allocation budget 2026-11-13 20:36:02 +00:00
Dylan M. Taylor dd21ee372d Merge remote-tracking branch 'origin/main' into codex/effectcraft-gif-review-fix 2026-11-13 20:11:02 +00:00
Dylan M. Taylor 142102fc94 Merge remote-tracking branch 'origin/main' into codex/craft-eps-fontscan 2026-11-13 20:02:18 +00:00
Dylan M. Taylor ededdd75c9 gif: expose first-frame data byte count 2026-11-13 19:51:49 +00:00
Dylan M. Taylor 0b73ba5337 Clarify GIF decoder combined allocation budget 2026-11-13 19:43:38 +00:00
Dylan M. Taylor 415dc3204c fix(csv): preserve bounded delimiter sampling 2026-11-13 19:25:10 +00:00
Dylan M. Taylor 3c51d88330 gif: stop at requested frame limit 2026-11-13 19:20:05 +00:00
Dylan M. Taylor aefb34b3c2 Merge remote-tracking branch 'origin/main' into codex/lightcraft-gif-frame-decode 2026-11-13 19:16:53 +00:00
Dylan M. Taylor a8b889fe2a gif: expose bounded first-frame pixel coverage and ICC metadata 2026-11-13 19:16:25 +00:00