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

2.5 KiB

libSceJpegDec technical debt

Unknown function info

  • sceJpegDecDecodeWithInputControl (libSceJpegDec) - its name and NID are in the PS5 3.20 export inventory, but no credible prototype was found. It is declared without parameters solely to resolve known imports; this is not an ABI claim
  • libSceJpegDec (libSceJpegDec) - structure layouts follow OpenOrbis jpeg.h and SharpProspero JpegDec.cs; attributes 1 and 2 are the values SharpProspero's JpegImage.cs passes. Error codes, creation validation, 32-byte handle alignment and the attribute/width-dependent work-memory size are confirmed by the native exports. Image info always reports color space 3, suitable CSC attribute 1 and zero component ids and sampling factors; the console's values, including which images it reports attribute 2 for, are unknown. The coefficient memory size is 0 because the host decoder needs no coefficient buffer; the size the console reports for progressive images is unknown. the output-width limit, aligned output address, pitch, alpha and option validation are confirmed by native checks, and the packed width << 16 | height decode result is confirmed by the native export

Functional

  • libSceJpegDec (libSceJpegDec) - decode mode 1 and pixel formats 9, 10 and 11 throw; invalid modes and down scales return the native invalid-parameter error, as does a down scale of 2, 4 or 8 on a CMYK or YCCK image, which libjpeg-turbo cannot decode to RGB. The down scale factors are the ones SharpProspero JpegDec.cs documents; the output size is the source size divided by the factor and rounded up, and the pixels come from libjpeg-turbo's scaled inverse DCT. The native ceiling division and packed scaled output dimensions are confirmed; exact decoded pixel values remain unverified