Files
AnyPS5/docs/dev/debt/libSceOpusCeltDec.md
T
2026-10-25 12:06:39 +13:00

1.8 KiB

libSceOpusCeltDec technical debt

Unknown function info

  • sceOpusCeltDecCreate, sceOpusCeltDecCtl (libSceOpusCeltDec) - names and NIDs are present in the PS5 3.20 export inventory, but no credible prototypes were found. They are declared without parameters solely to resolve known imports; this is not an ABI claim.
  • sceOpusCeltDecTerminate: the non-null path forwards the AJM finalization result, but the null path returns without setting the return register. Its source return type cannot be established from this callee alone. The existing integer return is retained.

Functional

  • libSceOpusCeltDec: the supplied module confirms the six exported argument lists, read-only context inputs, 640-byte state allocation, mono/stereo channels, five sample rates, byte-sized decode capacity and byte-count return. The implementation still keeps decoder state outside guest memory and uses host contexts instead of AJM contexts. AJM error propagation, resource ownership and termination with live decoders are not implemented. Wrapper validation errors and their precedence are recovered.
  • sceOpusCeltDecDecode: the original forwards packets to AJM codec 16 without a local CELT-only check. The backend response to SILK/hybrid packets is unresolved; packets whose TOC configuration is below 16 still throw. Decoding uses the bundled libopus decoder of OpusDecoderLibrary and shares its limits. Packet loss concealment and asynchronous AJM execution are not implemented.