#pragma once // Error Codes enum { CELL_DMUX_ERROR_ARG = 0x80610201, CELL_DMUX_ERROR_SEQ = 0x80610202, CELL_DMUX_ERROR_BUSY = 0x80610203, CELL_DMUX_ERROR_EMPTY = 0x80610204, CELL_DMUX_ERROR_FATAL = 0x80610205, }; enum CellDmuxStreamType { CELL_DMUX_STREAM_TYPE_UNDEF = 0, CELL_DMUX_STREAM_TYPE_PAMF = 1, CELL_DMUX_STREAM_TYPE_TERMINATOR = 2, }; enum CellDmuxMsgType { CELL_DMUX_MSG_TYPE_DEMUX_DONE = 0, CELL_DMUX_MSG_TYPE_FATAL_ERR = 1, CELL_DMUX_MSG_TYPE_PROG_END_CODE = 2, }; enum CellDmuxEsMsgType { CELL_DMUX_ES_MSG_TYPE_AU_FOUND = 0, CELL_DMUX_ES_MSG_TYPE_FLUSH_DONE = 1, }; struct CellDmuxMsg { be_t msgType; //CellDmuxMsgType enum be_t supplementalInfo; }; struct CellDmuxEsMsg { be_t msgType; //CellDmuxEsMsgType enum be_t supplementalInfo; }; struct CellDmuxType { CellDmuxStreamType streamType; be_t reserved[2]; //0 }; struct CellDmuxType2 { CellDmuxStreamType streamType; be_t streamSpecificInfo_addr; }; struct CellDmuxResource { be_t memAddr; be_t memSize; be_t ppuThreadPriority; be_t ppuThreadStackSize; be_t spuThreadPriority; be_t numOfSpus; }; struct CellDmuxResourceEx { be_t memAddr; be_t memSize; be_t ppuThreadPriority; be_t ppuThreadStackSize; be_t spurs_addr; u8 priority[8]; be_t maxContention; }; /* struct CellDmuxResource2Ex { bool isResourceEx; //true CellDmuxResourceEx resourceEx; }; struct CellDmuxResource2NoEx { bool isResourceEx; //false CellDmuxResource resource; }; */ struct CellDmuxResource2 { bool isResourceEx; be_t memAddr; be_t memSize; be_t ppuThreadPriority; be_t ppuThreadStackSize; union { struct { be_t spuThreadPriority; be_t numOfSpus; }; struct { be_t ex_spurs_addr; u8 ex_priority[8]; be_t ex_maxContention; }; }; }; struct CellDmuxCb { // CellDmuxCbMsg callback be_t demuxerMsg, u32 cbArg_addr)>> cbMsgFunc; be_t cbArg_addr; }; struct CellDmuxEsCb { // CellDmuxCbEsMsg callback be_t esMsg, u32 cbArg_addr)>> cbEsMsgFunc; be_t cbArg_addr; }; struct CellDmuxAttr { be_t memSize; be_t demuxerVerUpper; be_t demuxerVerLower; }; struct CellDmuxEsAttr { be_t memSize; }; struct CellDmuxEsResource { be_t memAddr; be_t memSize; }; struct CellDmuxAuInfo { be_t auAddr; be_t auSize; be_t auMaxSize; be_t userData; be_t ptsUpper; be_t ptsLower; be_t dtsUpper; be_t dtsLower; }; struct CellDmuxAuInfoEx { be_t auAddr; be_t auSize; be_t reserved; bool isRap; be_t userData; CellCodecTimeStamp pts; CellCodecTimeStamp dts; };