#pragma once struct SceAudiodecInitStreamParam { le_t size; le_t totalStreams; }; struct SceAudiodecInitChParam { le_t size; le_t totalCh; }; union SceAudiodecInitParam { le_t size; SceAudiodecInitChParam at9; SceAudiodecInitStreamParam mp3; SceAudiodecInitStreamParam aac; SceAudiodecInitStreamParam celp; }; struct SceAudiodecInfoAt9 { le_t size; u8 configData[4]; le_t ch; le_t bitRate; le_t samplingRate; le_t superFrameSize; le_t framesInSuperFrame; }; struct SceAudiodecInfoMp3 { le_t size; le_t ch; le_t version; }; struct SceAudiodecInfoAac { le_t size; le_t isAdts; le_t ch; le_t samplingRate; le_t isSbr; }; struct SceAudiodecInfoCelp { le_t size; le_t excitationMode; le_t samplingRate; le_t bitRate; le_t lostCount; }; union SceAudiodecInfo { le_t size; SceAudiodecInfoAt9 at9; SceAudiodecInfoMp3 mp3; SceAudiodecInfoAac aac; SceAudiodecInfoCelp celp; }; struct SceAudiodecCtrl { le_t size; le_t handle; vm::lptr pEs; le_t inputEsSize; le_t maxEsSize; vm::lptr pPcm; le_t outputPcmSize; le_t maxPcmSize; le_t wordLength; vm::lptr pInfo; };