filled videodec parameters

This commit is contained in:
georgemoralis 2024-11-03 13:19:33 +02:00
parent af98386ea4
commit be69f7a004
2 changed files with 105 additions and 12 deletions

View File

@ -9,22 +9,29 @@
namespace Libraries::Videodec { namespace Libraries::Videodec {
int PS4_SYSV_ABI sceVideodecCreateDecoder() { int PS4_SYSV_ABI sceVideodecCreateDecoder(const OrbisVideodecConfigInfo* pCfgInfoIn,
const OrbisVideodecResourceInfo* pRsrcInfoIn,
OrbisVideodecCtrl* pCtrlOut) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceVideodecDecode() { int PS4_SYSV_ABI sceVideodecDecode(OrbisVideodecCtrl* pCtrlIn,
const OrbisVideodecInputData* pInputDataIn,
OrbisVideodecFrameBuffer* pFrameBufferInOut,
OrbisVideodecPictureInfo* pPictureInfoOut) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceVideodecDeleteDecoder() { int PS4_SYSV_ABI sceVideodecDeleteDecoder(OrbisVideodecCtrl* pCtrlIn) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceVideodecFlush() { int PS4_SYSV_ABI sceVideodecFlush(OrbisVideodecCtrl* pCtrlIn,
OrbisVideodecFrameBuffer* pFrameBufferInOut,
OrbisVideodecPictureInfo* pPictureInfoOut) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -34,12 +41,13 @@ int PS4_SYSV_ABI sceVideodecMapMemory() {
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceVideodecQueryResourceInfo() { int PS4_SYSV_ABI sceVideodecQueryResourceInfo(const OrbisVideodecConfigInfo* pCfgInfoIn,
OrbisVideodecResourceInfo* pRsrcInfoOut) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceVideodecReset() { int PS4_SYSV_ABI sceVideodecReset(OrbisVideodecCtrl* pCtrlIn) {
LOG_ERROR(Lib_Videodec, "(STUBBED) called"); LOG_ERROR(Lib_Videodec, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }

View File

@ -11,13 +11,98 @@ class SymbolsResolver;
namespace Libraries::Videodec { namespace Libraries::Videodec {
int PS4_SYSV_ABI sceVideodecCreateDecoder(); struct OrbisVideodecConfigInfo {
int PS4_SYSV_ABI sceVideodecDecode(); u64 thisSize;
int PS4_SYSV_ABI sceVideodecDeleteDecoder(); u32 codecType;
int PS4_SYSV_ABI sceVideodecFlush(); u32 profile;
u32 maxLevel;
s32 maxFrameWidth;
s32 maxFrameHeight;
s32 maxDpbFrameCount;
u64 videodecFlags;
};
struct OrbisVideodecResourceInfo {
u64 thisSize;
u64 cpuMemorySize;
void* pCpuMemory;
u64 cpuGpuMemorySize;
void* pCpuGpuMemory;
u64 maxFrameBufferSize;
u32 frameBufferAlignment;
};
struct OrbisVideodecCtrl {
u64 thisSize;
u64 handle;
u64 version;
};
struct OrbisVideodecFrameBuffer {
u64 thisSize;
void* pFrameBuffer;
u64 frameBufferSize;
};
struct OrbisVideodecAvcInfo {
u32 numUnitsInTick;
u32 timeScale;
u8 fixedFrameRateFlag;
u8 aspectRatioIdc;
u16 sarWidth;
u16 sarHeight;
u8 colourPrimaries;
u8 transferCharacteristics;
u8 matrixCoefficients;
u8 videoFullRangeFlag;
u32 frameCropLeftOffset;
u32 frameCropRightOffset;
u32 frameCropTopOffset;
u32 frameCropBottomOffset;
};
union OrbisVideodecCodecInfo {
u8 reserved[64];
OrbisVideodecAvcInfo avc;
};
struct OrbisVideodecPictureInfo {
u64 thisSize;
u32 isValid;
u32 codecType;
u32 frameWidth;
u32 framePitch;
u32 frameHeight;
u32 isErrorPic;
u64 ptsData;
u64 attachedData;
OrbisVideodecCodecInfo codec;
};
struct OrbisVideodecInputData {
u64 thisSize;
void* pAuData;
u64 auSize;
u64 ptsData;
u64 dtsData;
u64 attachedData;
};
int PS4_SYSV_ABI sceVideodecCreateDecoder(const OrbisVideodecConfigInfo* pCfgInfoIn,
const OrbisVideodecResourceInfo* pRsrcInfoIn,
OrbisVideodecCtrl* pCtrlOut);
int PS4_SYSV_ABI sceVideodecDecode(OrbisVideodecCtrl* pCtrlIn,
const OrbisVideodecInputData* pInputDataIn,
OrbisVideodecFrameBuffer* pFrameBufferInOut,
OrbisVideodecPictureInfo* pPictureInfoOut);
int PS4_SYSV_ABI sceVideodecDeleteDecoder(OrbisVideodecCtrl* pCtrlIn);
int PS4_SYSV_ABI sceVideodecFlush(OrbisVideodecCtrl* pCtrlIn,
OrbisVideodecFrameBuffer* pFrameBufferInOut,
OrbisVideodecPictureInfo* pPictureInfoOut);
int PS4_SYSV_ABI sceVideodecMapMemory(); int PS4_SYSV_ABI sceVideodecMapMemory();
int PS4_SYSV_ABI sceVideodecQueryResourceInfo(); int PS4_SYSV_ABI sceVideodecQueryResourceInfo(const OrbisVideodecConfigInfo* pCfgInfoIn,
int PS4_SYSV_ABI sceVideodecReset(); OrbisVideodecResourceInfo* pRsrcInfoOut);
int PS4_SYSV_ABI sceVideodecReset(OrbisVideodecCtrl* pCtrlIn);
void RegisterlibSceVideodec(Core::Loader::SymbolsResolver* sym); void RegisterlibSceVideodec(Core::Loader::SymbolsResolver* sym);
} // namespace Libraries::Videodec } // namespace Libraries::Videodec