cellVdec: add error_code

This commit is contained in:
Megamouse 2019-09-08 17:13:58 +02:00 committed by Ivan
parent 6aacec4694
commit aa262889f2
2 changed files with 42 additions and 22 deletions

View file

@ -26,6 +26,26 @@ std::mutex g_mutex_avcodec_open2;
LOG_CHANNEL(cellVdec); LOG_CHANNEL(cellVdec);
template<>
void fmt_class_string<CellVdecError>::format(std::string& out, u64 arg)
{
format_enum(out, arg, [](auto error)
{
switch (error)
{
STR_CASE(CELL_VDEC_ERROR_ARG);
STR_CASE(CELL_VDEC_ERROR_SEQ);
STR_CASE(CELL_VDEC_ERROR_BUSY);
STR_CASE(CELL_VDEC_ERROR_EMPTY);
STR_CASE(CELL_VDEC_ERROR_AU);
STR_CASE(CELL_VDEC_ERROR_PIC);
STR_CASE(CELL_VDEC_ERROR_FATAL);
}
return unknown;
});
}
vm::gvar<s32> _cell_vdec_prx_ver; // ??? vm::gvar<s32> _cell_vdec_prx_ver; // ???
constexpr struct vdec_start_seq_t{} vdec_start_seq{}; constexpr struct vdec_start_seq_t{} vdec_start_seq{};
@ -398,7 +418,7 @@ static void vdecEntry(ppu_thread& ppu, u32 vid)
ppu.state += cpu_flag::exit; ppu.state += cpu_flag::exit;
} }
static u32 vdecQueryAttr(s32 type, u32 profile, u32 spec_addr /* may be 0 */, vm::ptr<CellVdecAttr> attr) static error_code vdecQueryAttr(s32 type, u32 profile, u32 spec_addr /* may be 0 */, vm::ptr<CellVdecAttr> attr)
{ {
switch (type) // TODO: check profile levels switch (type) // TODO: check profile levels
{ {
@ -416,14 +436,14 @@ static u32 vdecQueryAttr(s32 type, u32 profile, u32 spec_addr /* may be 0 */, vm
return CELL_OK; return CELL_OK;
} }
s32 cellVdecQueryAttr(vm::cptr<CellVdecType> type, vm::ptr<CellVdecAttr> attr) error_code cellVdecQueryAttr(vm::cptr<CellVdecType> type, vm::ptr<CellVdecAttr> attr)
{ {
cellVdec.warning("cellVdecQueryAttr(type=*0x%x, attr=*0x%x)", type, attr); cellVdec.warning("cellVdecQueryAttr(type=*0x%x, attr=*0x%x)", type, attr);
return vdecQueryAttr(type->codecType, type->profileLevel, 0, attr); return vdecQueryAttr(type->codecType, type->profileLevel, 0, attr);
} }
s32 cellVdecQueryAttrEx(vm::cptr<CellVdecTypeEx> type, vm::ptr<CellVdecAttr> attr) error_code cellVdecQueryAttrEx(vm::cptr<CellVdecTypeEx> type, vm::ptr<CellVdecAttr> attr)
{ {
cellVdec.warning("cellVdecQueryAttrEx(type=*0x%x, attr=*0x%x)", type, attr); cellVdec.warning("cellVdecQueryAttrEx(type=*0x%x, attr=*0x%x)", type, attr);
@ -431,7 +451,7 @@ s32 cellVdecQueryAttrEx(vm::cptr<CellVdecTypeEx> type, vm::ptr<CellVdecAttr> att
} }
template <typename T, typename U> template <typename T, typename U>
static s32 vdecOpen(ppu_thread& ppu, T type, U res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle) static error_code vdecOpen(ppu_thread& ppu, T type, U res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle)
{ {
if (!type || !res || !cb || !handle) if (!type || !res || !cb || !handle)
{ {
@ -467,21 +487,21 @@ static s32 vdecOpen(ppu_thread& ppu, T type, U res, vm::cptr<CellVdecCb> cb, vm:
return CELL_OK; return CELL_OK;
} }
s32 cellVdecOpen(ppu_thread& ppu, vm::cptr<CellVdecType> type, vm::cptr<CellVdecResource> res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle) error_code cellVdecOpen(ppu_thread& ppu, vm::cptr<CellVdecType> type, vm::cptr<CellVdecResource> res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle)
{ {
cellVdec.warning("cellVdecOpen(type=*0x%x, res=*0x%x, cb=*0x%x, handle=*0x%x)", type, res, cb, handle); cellVdec.warning("cellVdecOpen(type=*0x%x, res=*0x%x, cb=*0x%x, handle=*0x%x)", type, res, cb, handle);
return vdecOpen(ppu, type, res, cb, handle); return vdecOpen(ppu, type, res, cb, handle);
} }
s32 cellVdecOpenEx(ppu_thread& ppu, vm::cptr<CellVdecTypeEx> type, vm::cptr<CellVdecResourceEx> res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle) error_code cellVdecOpenEx(ppu_thread& ppu, vm::cptr<CellVdecTypeEx> type, vm::cptr<CellVdecResourceEx> res, vm::cptr<CellVdecCb> cb, vm::ptr<u32> handle)
{ {
cellVdec.warning("cellVdecOpenEx(type=*0x%x, res=*0x%x, cb=*0x%x, handle=*0x%x)", type, res, cb, handle); cellVdec.warning("cellVdecOpenEx(type=*0x%x, res=*0x%x, cb=*0x%x, handle=*0x%x)", type, res, cb, handle);
return vdecOpen(ppu, type, res, cb, handle); return vdecOpen(ppu, type, res, cb, handle);
} }
s32 cellVdecClose(ppu_thread& ppu, u32 handle) error_code cellVdecClose(ppu_thread& ppu, u32 handle)
{ {
cellVdec.warning("cellVdecClose(handle=0x%x)", handle); cellVdec.warning("cellVdecClose(handle=0x%x)", handle);
@ -506,7 +526,7 @@ s32 cellVdecClose(ppu_thread& ppu, u32 handle)
return CELL_OK; return CELL_OK;
} }
s32 cellVdecStartSeq(u32 handle) error_code cellVdecStartSeq(u32 handle)
{ {
cellVdec.trace("cellVdecStartSeq(handle=0x%x)", handle); cellVdec.trace("cellVdecStartSeq(handle=0x%x)", handle);
@ -521,7 +541,7 @@ s32 cellVdecStartSeq(u32 handle)
return CELL_OK; return CELL_OK;
} }
s32 cellVdecEndSeq(u32 handle) error_code cellVdecEndSeq(u32 handle)
{ {
cellVdec.warning("cellVdecEndSeq(handle=0x%x)", handle); cellVdec.warning("cellVdecEndSeq(handle=0x%x)", handle);
@ -536,7 +556,7 @@ s32 cellVdecEndSeq(u32 handle)
return CELL_OK; return CELL_OK;
} }
s32 cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::cptr<CellVdecAuInfo> auInfo) error_code cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::cptr<CellVdecAuInfo> auInfo)
{ {
cellVdec.trace("cellVdecDecodeAu(handle=0x%x, mode=%d, auInfo=*0x%x)", handle, (s32)mode, auInfo); cellVdec.trace("cellVdecDecodeAu(handle=0x%x, mode=%d, auInfo=*0x%x)", handle, (s32)mode, auInfo);
@ -557,13 +577,13 @@ s32 cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::cptr<CellVdecAuInf
return CELL_OK; return CELL_OK;
} }
s32 cellVdecDecodeAuEx2() error_code cellVdecDecodeAuEx2()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecGetPicture(u32 handle, vm::cptr<CellVdecPicFormat> format, vm::ptr<u8> outBuff) error_code cellVdecGetPicture(u32 handle, vm::cptr<CellVdecPicFormat> format, vm::ptr<u8> outBuff)
{ {
cellVdec.trace("cellVdecGetPicture(handle=0x%x, format=*0x%x, outBuff=*0x%x)", handle, format, outBuff); cellVdec.trace("cellVdecGetPicture(handle=0x%x, format=*0x%x, outBuff=*0x%x)", handle, format, outBuff);
@ -670,7 +690,7 @@ s32 cellVdecGetPicture(u32 handle, vm::cptr<CellVdecPicFormat> format, vm::ptr<u
return CELL_OK; return CELL_OK;
} }
s32 cellVdecGetPictureExt(u32 handle, vm::cptr<CellVdecPicFormat2> format2, vm::ptr<u8> outBuff, u32 arg4) error_code cellVdecGetPictureExt(u32 handle, vm::cptr<CellVdecPicFormat2> format2, vm::ptr<u8> outBuff, u32 arg4)
{ {
cellVdec.warning("cellVdecGetPictureExt(handle=0x%x, format2=*0x%x, outBuff=*0x%x, arg4=*0x%x)", handle, format2, outBuff, arg4); cellVdec.warning("cellVdecGetPictureExt(handle=0x%x, format2=*0x%x, outBuff=*0x%x, arg4=*0x%x)", handle, format2, outBuff, arg4);
@ -687,7 +707,7 @@ s32 cellVdecGetPictureExt(u32 handle, vm::cptr<CellVdecPicFormat2> format2, vm::
return cellVdecGetPicture(handle, format, outBuff); return cellVdecGetPicture(handle, format, outBuff);
} }
s32 cellVdecGetPicItem(u32 handle, vm::pptr<CellVdecPicItem> picItem) error_code cellVdecGetPicItem(u32 handle, vm::pptr<CellVdecPicItem> picItem)
{ {
cellVdec.trace("cellVdecGetPicItem(handle=0x%x, picItem=**0x%x)", handle, picItem); cellVdec.trace("cellVdecGetPicItem(handle=0x%x, picItem=**0x%x)", handle, picItem);
@ -891,7 +911,7 @@ s32 cellVdecGetPicItem(u32 handle, vm::pptr<CellVdecPicItem> picItem)
return CELL_OK; return CELL_OK;
} }
s32 cellVdecSetFrameRate(u32 handle, CellVdecFrameRate frc) error_code cellVdecSetFrameRate(u32 handle, CellVdecFrameRate frc)
{ {
cellVdec.trace("cellVdecSetFrameRate(handle=0x%x, frc=0x%x)", handle, (s32)frc); cellVdec.trace("cellVdecSetFrameRate(handle=0x%x, frc=0x%x)", handle, (s32)frc);
@ -907,37 +927,37 @@ s32 cellVdecSetFrameRate(u32 handle, CellVdecFrameRate frc)
return CELL_OK; return CELL_OK;
} }
s32 cellVdecOpenExt() error_code cellVdecOpenExt()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecStartSeqExt() error_code cellVdecStartSeqExt()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecGetPicItemEx() error_code cellVdecGetPicItemEx()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecGetPicItemExt() error_code cellVdecGetPicItemExt()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecSetFrameRateExt() error_code cellVdecSetFrameRateExt()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;
} }
s32 cellVdecSetPts() error_code cellVdecSetPts()
{ {
UNIMPLEMENTED_FUNC(cellVdec); UNIMPLEMENTED_FUNC(cellVdec);
return CELL_OK; return CELL_OK;

View file

@ -3,7 +3,7 @@
#include "Utilities/BEType.h" #include "Utilities/BEType.h"
// Error Codes // Error Codes
enum enum CellVdecError : u32
{ {
CELL_VDEC_ERROR_ARG = 0x80610101, CELL_VDEC_ERROR_ARG = 0x80610101,
CELL_VDEC_ERROR_SEQ = 0x80610102, CELL_VDEC_ERROR_SEQ = 0x80610102,