Files
AnyPS5/docs/dev/debt/libSceJxr.md
T

2.2 KiB

libSceJxr technical debt

Functional

  • PixelFormatLookup uses the pinned public jxrlib table and lookup algorithm through a C bridge. The signed 64-bit result and 56-byte LP64 pixel-info model, 16-byte GUID, 32-bit enums and TIFF fields, module/library versions and Sony table/configuration equivalence are inferred or unknown, not console-measured. Modes 0/1 follow forward GUID/reverse TIFF lookup; other modes and misses return the public unsupported-format error without modifying the record. Valid-mode null records and forward null GUIDs throw because console behavior is unknown. Success returns a borrowed read-only static GUID valid while the module remains loaded; the caller must not free it. Closes when: Sony prototypes, layouts, configuration, table and invalid-argument behavior are verified by attributable disassembly or console measurements

  • PKFree (libSceJxr) follows Microsoft's jxrlib JXRGlue.c, whose four exported names the module shares: a non-null ppv has *ppv released with the guest free and set to null, and the result is always WMP_errSuccess (0) as a 64-bit ERR (long). That the console's module is built from jxrlib, and that its PKFree releases through libc's free, is inferred from the export names and not checked against the console's code. Closes when: the console's PKFree is disassembled or measured on a PS5

  • readIS and writeIS use the non-ARM, LP64 BitIOInfo and WMPStream ABI and packet algorithm from Microsoft's JPEG XR reference implementation. Console structure layouts and execution remain unverified. Profiling callbacks are omitted as in the reference Unix build with DISABLE_PERF_MEASUREMENT; the codec argument is unused. Invalid null state or required callbacks throw instead of dereferencing them. No codec is instantiated by these helpers; callers must supply the reference ring buffer and guest-ABI stream callbacks.