pdftract/crates/pdftract-core/src/parser
jedarden f236d787e8 feat(pdftract-66dd8): implement DCTDecode passthrough with SOI/EOI validation
Implement the DCTDecode (JPEG) passthrough filter with marker validation
and /ColorTransform metadata parsing.

Changes:
- Add StreamInvalidJpeg diagnostic code for missing SOI/EOI markers
- Implement DCTDecoder struct with:
  - SOI (0xFFD8) marker validation
  - EOI (0xFFD9) marker validation
  - /ColorTransform parameter parsing
  - Raw byte passthrough with bomb limit enforcement
- Replace PassthroughDecoder with DCTDecoder in get_decoder()
- Add comprehensive test coverage (6 test cases)

The decoder validates JPEG markers but passes through data even when
markers are missing (INV-8 error recovery). Diagnostics are emitted
for missing markers but currently dropped due to trait limitations
(future enhancement will add diagnostics buffer to StreamDecoder).

Closes: pdftract-66dd8

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 11:42:09 -04:00
..
lexer feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
object feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
catalog.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
diagnostic.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
marked_content.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
marked_content_operators.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
marked_content_stack.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
mod.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
objstm.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
ocg.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
outline.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
pages.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
resources.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
secrets.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
stream.rs feat(pdftract-66dd8): implement DCTDecode passthrough with SOI/EOI validation 2026-05-24 11:42:09 -04:00
struct_tree.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
xref.rs feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00