mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-28 00:35:47 +00:00
sceJpegDecParseHeader and sceJpegDecDecode threw for every down scale other than 1. SharpProspero's JpegDec.cs documents the factors 1, 2, 4 and 8 and output dimensions that account for the down scale. Decoder::Jpeg gains DecodeScaled, which decodes through libjpeg-turbo's scaled inverse DCT, and ScaledDimension, its rounded-up output size. sceJpegDecParseHeader reports the scaled output size; sceJpegDecDecode checks the pitch and image buffer against it, writes the scaled image and packs the output size into its result. A down scale of 1 still decodes as before. Decode modes other than 0, other down scales and a down-scaled CMYK or YCCK image still throw.
2.1 KiB
2.1 KiB
libSceJpegDec technical debt
Unknown function info
- libSceJpegDec (libSceJpegDec) - structure layouts follow OpenOrbis
jpeg.hand SharpProsperoJpegDec.cs; attributes 1 and 2 are the values SharpProspero'sJpegImage.cspasses. The error codes are libScePngDec's: no reference lists the JpegDec ones, and SharpProspero raises 0x80650020 on its JpegDec path where it raises libScePngDec's 0x80690020 on its PngDec path. 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.max_image_widthis not checked, and the packedwidth << 16 | heightdecode result is libScePngDec's
Functional
- libSceJpegDec (libSceJpegDec) - decode modes other than 0 and down scales other than 1, 2, 4 and 8 throw, 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.csdocuments; 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 console's rounding, pixel values and the packed decode result for a down-scaled image (the output size here) are unverified