Commit Graph
1792 Commits
Author SHA1 Message Date
Dylan M. Taylor d9419a111a Merge pull request #1136 from alehel/craft-video/mpeg2-encode-ip
craft-video: MPEG-2 encoder, first step: I and P pictures (#1133)
2026-11-13 05:41:51 -05:00
Dylan M. Taylor ba12997467 Merge pull request #1175 from alehel/claude/avi-muxer
craft-media: AVI muxer (AviWriter)
2026-11-13 05:41:45 -05:00
Dylan M. Taylor 58ae17473c Merge pull request #1179 from dylanmtaylor/codex/stencilcraft-typed-format
StencilCraft: share the native document model and codec
2026-11-13 05:33:43 -05:00
Dylan M. Taylor db49c2d50e Merge pull request #1165 from storytold/codex/soundcraft-format
Add shared SoundCraft session format
2026-11-13 05:26:41 -05:00
Dylan M. Taylor 81b88332b5 Share library and recent files JSON models 2026-11-13 04:34:44 -05:00
Dylan M. Taylor 2f281a419c Align frame grid lines with typed position rounding 2026-11-13 09:22:49 +00:00
Dylan M. Taylor b32e55a956 Preserve session repairs and frame grid boundaries 2026-11-13 09:21:57 +00:00
Dylan M. Taylor 10e7f7763a Test typed StencilCraft document readers 2026-11-13 04:13:55 -05:00
Dylan M. Taylor 68ad072e4a Merge remote-tracking branch 'origin/main' into codex/soundcraft-format 2026-11-13 09:12:20 +00:00
Dylan M. Taylor 915fc54458 Merge pull request #1164 from storytold/codex/craft-time-soundcraft
craft-time: preserve SoundCraft sample-time APIs
2026-11-13 04:10:26 -05:00
Dylan M. Taylor 27d3b4acf5 Keep StencilCraft v1 fixtures with shared document crate 2026-11-13 04:08:30 -05:00
Dylan M. Taylor 7c56d282a2 Merge pull request #1170 from dylanmtaylor/codex/designcraft-format-migration
Add reusable document bundle and SVG preflight APIs
2026-11-13 04:03:23 -05:00
Dylan M. Taylor 686b5478ea Merge pull request #1173 from dylanmtaylor/codex/file-formats-api
Add shared file format detection
2026-11-13 03:55:21 -05:00
Dylan M. Taylor ea24422ae9 Merge pull request #1154 from storytold/codex/778-h264-picnum
video: harden H.264 and configure frame limits
2026-11-13 03:49:15 -05:00
Dylan M. Taylor fd9e3d67e6 Merge pull request #1177 from dylanmtaylor/codex/craft-pcraft-bundle
Add shared .pcraft bundle storage
2026-11-13 03:48:30 -05:00
Dylan M. Taylor 166d0d2127 craft-stencilcraft-document: share the native document model 2026-11-13 03:46:47 -05:00
Dylan M. Taylor 370f6714ed craft-stencilcraft-format: support typed document fields 2026-11-13 03:34:41 -05:00
Dylan M. Taylor 01452740b6 Merge pull request #1169 from dylanmtaylor/codex/stencilcraft-format-api
Add bounded common raster codec facade
2026-11-13 03:25:55 -05:00
Dylan M. Taylor f16d99f71c fix time parsing and frame boundary edge cases 2026-11-13 07:57:51 +00:00
Dylan M. Taylor f6cab1980b Preserve SVG picture fallbacks in the Presentation model 2026-11-13 02:54:31 -05:00
Dylan M. Taylor 55f6235c5b Simplify gridline no-fill check 2026-11-13 02:54:31 -05:00
Dylan M. Taylor 5e24ea380e Avoid duplicated timeline time primitives 2026-11-13 07:47:44 +00:00
Dylan M. Taylor de724aa188 Configure bundle directory save locks 2026-11-13 02:27:57 -05:00
Dylan M. Taylor c0df5be07d Reuse verified objects in directory bundles 2026-11-13 02:26:51 -05:00
Dylan M. Taylor 9814469613 Bound extreme H264 POC cycle arithmetic 2026-11-13 07:24:13 +00:00
Dylan M. Taylor 6b8e79294d Expose bounded pcraft object codecs 2026-11-13 02:23:08 -05:00
Dylan M. Taylor de087a4524 Expose bounded directory bundle entries 2026-11-13 02:23:08 -05:00
Dylan M. Taylor b0284aad09 Expose bounded pcraft entry reads 2026-11-13 02:23:08 -05:00
Dylan M. Taylor fd5133174b Add shared pcraft bundle storage 2026-11-13 02:23:08 -05:00
Dylan M. Taylor 47107f6601 craft-mesh: retain glTF texture and sampler inventory (#1151)
* craft-mesh: expose unreferenced glTF texture variants

* mesh: validate texture inventory image indices

* Fix PR 1151 validation and workspace checks

* Fix remaining Rust 1.95 workspace lint findings

* Fix proof workspace Clippy warning

* Fix remaining workspace Clippy findings

* Fix video all-features Clippy warning

* KRA: parse nested layers without recursion

* Preserve KRA layer limit traversal order

* Avoid expect in iterative KRA parser

* OpenRaster: parse nested stacks without recursion

* Plate tests honor optional font fixtures

* Keep bundled font index bytes unchanged

* Preserve font build license fixture bytes

* ci: allow longer workspace test matrix

* test: respect Windows Hunspell path behavior

* ci: provision keymap fonts for all-feature tests

* ci: provision PSD corpus for full workspace tests
2026-11-13 02:17:30 -05:00
Dylan M. Taylor 72d544b707 Merge pull request #1153 from storytold/fix/psd-head-view
psd: expose bounded borrowed header resources
2026-11-13 02:15:50 -05:00
Dylan M. Taylor e2cab3f651 Merge pull request #1158 from storytold/feat/stencilcraft-format
Add versioned flattened JSON format schema
2026-11-13 02:13:29 -05:00
Dylan M. Taylor 56a1f2b7c4 Avoid premature saturation in H264 type 1 POC 2026-11-13 07:11:12 +00:00
Dylan M. Taylor eeee3d08b6 Add shared Base64 PNG helpers 2026-11-13 02:03:55 -05:00
Dylan M. Taylor c5d1e937ae feat(materialx): add bounded reader and OpenPBR writer (#1167)
* feat(materialx): add bounded document reader and OpenPBR writer

* proof, video, latex, cms: satisfy the clippy lints that ship with Rust 1.100

The newer clippy flags needless bool guards and range loops whose index
only indexes one slice; express both with the equivalent iterators so
the workspace lint stays green on every platform.

* cms: index the ink loops instead of a range loop, which newer clippy rejects

* feat(materialx): resolve shader graphs and write OpenPBR materials

* feat(materialx): resolve shader graphs and write OpenPBR materials
2026-11-13 02:03:31 -05:00
Dylan M. Taylor 63196e66f3 Merge pull request #1157 from dylanmtaylor/codex/craft-metafile-hatch-percent
metafile: render GDI+ percentage hatch brushes
2026-11-13 02:03:14 -05:00
Dylan M. Taylor 8abfa9d0f1 Classify legacy Excel extensions in shared registry 2026-11-13 01:53:37 -05:00
Dylan M. Taylor c3a39369ce Merge pull request #1163 from dylanmtaylor/codex/vp8-consumer-limit
video: let VP8 consumers preserve existing frame limits
2026-11-13 01:52:28 -05:00
Dylan M. Taylor 71337f6772 Add shared CSV and TSV file formats 2026-11-13 01:51:08 -05:00
Dylan M. Taylor fccc008271 Detect DesignCraft and IDML document content 2026-11-13 01:44:49 -05:00
Dylan M. Taylor b4ada28f19 Fix format registry clippy and add ASE support 2026-11-13 01:37:48 -05:00
alehel 7af2f8e868 craft-media: AVI muxer (AviWriter)
Write AVI files: hdrl with avih and one strl (strh, strf, strn, indx) per
stream, odml/dmlh, an interleaved movi and idx1. Past the RIFF limit
(default 1 GiB) the file continues in OpenDML RIFF AVIX extensions with
ix## standard indexes and an indx super index per stream.

- VideoSpec::for_codec builds the stream from CodecParams; MPEG-4 Part 2
  is tagged FMP4.
- Audio is timed by bytes (PCM-style) or one packet per chunk.
- Bad options and chunks are errors; finish() closes a readable file
  after a failed write.

Tests read the files back through this crate's demuxer by every index,
and through ffmpeg (decode identical to the sources, seeks through the
index, ffprobe fields), in one RIFF and across AVIX extensions. The
MPEG-4 encoder tests play its packets from an AVI file.
2026-11-13 07:34:28 +01:00
alehel 1df8d98c85 craft-video: MPEG-2 encoder, first step: I and P pictures (#1133)
The start of MPEG-2 encoding in craft_video::mpeg2 (feature
mpeg2-encode): progressive frame pictures, closed I/P GOPs, 4:2:0 Main
Profile and 4:2:2 Profile, constant quantiser or single-pass average
bitrate with adaptive quantisation, half-sample motion search.

The encoder shares the decoder's code tables, IDCT, dequantisation and
motion compensation, so the decoder outputs exactly the encoder's
reconstruction. B pictures, a VBV guarantee, interlaced coding and DVD
or broadcast presets are later steps of #1133.

The mpeg2 feature is split into mpeg2-decode and mpeg2-encode; mpeg2
still turns on both.
2026-11-13 07:34:05 +01:00
Dylan M. Taylor 47bf5650b0 Expose shared InDesign signature 2026-11-13 01:31:26 -05:00
Dylan M. Taylor 96c8487984 Add shared InDesign conversion facade 2026-11-13 01:30:54 -05:00
Dylan M. Taylor 6ba1ca33ca Recognize InDesign files in shared registry 2026-11-13 01:27:11 -05:00
Dylan M. Taylor 1f9c271f7d Recognize legacy Word extension in shared registry 2026-11-13 01:26:09 -05:00
Dylan M. Taylor 32529b94e8 Resolve plain text format extensions 2026-11-13 01:24:40 -05:00
Dylan M. Taylor fc9ecb40e7 Extend shared file-format registry 2026-11-13 01:22:58 -05:00
Dylan M. Taylor 80731087bf Merge remote-tracking branch 'origin/main' into codex/1154-main-refresh 2026-11-13 06:10:02 +00:00