mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 15:01:28 +12:00
cellVdecDecodeAu mode implemented
This commit is contained in:
parent
4ecf05aa13
commit
2bc8723824
1 changed files with 6 additions and 7 deletions
|
@ -172,7 +172,7 @@ struct vdec_thread : ppu_thread
|
||||||
AVPacket packet{};
|
AVPacket packet{};
|
||||||
packet.pos = -1;
|
packet.pos = -1;
|
||||||
|
|
||||||
u32 au_type{};
|
u32 au_mode{};
|
||||||
u32 au_addr{};
|
u32 au_addr{};
|
||||||
u32 au_size{};
|
u32 au_size{};
|
||||||
u64 au_pts{};
|
u64 au_pts{};
|
||||||
|
@ -182,7 +182,7 @@ struct vdec_thread : ppu_thread
|
||||||
|
|
||||||
if (vcmd == vdec_cmd::decode)
|
if (vcmd == vdec_cmd::decode)
|
||||||
{
|
{
|
||||||
au_type = cmd.arg2<u32>(); // TODO
|
au_mode = cmd.arg2<u32>(); // TODO
|
||||||
au_addr = cmd_get(1).arg1<u32>();
|
au_addr = cmd_get(1).arg1<u32>();
|
||||||
au_size = cmd_get(1).arg2<u32>();
|
au_size = cmd_get(1).arg2<u32>();
|
||||||
au_pts = cmd_get(2).as<u64>();
|
au_pts = cmd_get(2).as<u64>();
|
||||||
|
@ -208,6 +208,10 @@ struct vdec_thread : ppu_thread
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
ctx->skip_frame =
|
||||||
|
au_mode == CELL_VDEC_DEC_MODE_NORMAL ? AVDISCARD_DEFAULT :
|
||||||
|
au_mode == CELL_VDEC_DEC_MODE_B_SKIP ? AVDISCARD_NONREF : AVDISCARD_NONINTRA;
|
||||||
|
|
||||||
vdec_frame frame;
|
vdec_frame frame;
|
||||||
frame.avf.reset(av_frame_alloc());
|
frame.avf.reset(av_frame_alloc());
|
||||||
|
|
||||||
|
@ -484,11 +488,6 @@ s32 cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::cptr<CellVdecAuInf
|
||||||
return CELL_VDEC_ERROR_ARG;
|
return CELL_VDEC_ERROR_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode != CELL_VDEC_DEC_MODE_NORMAL)
|
|
||||||
{
|
|
||||||
fmt::throw_exception("Unsupported decoding mode (%d)" HERE, (s32)mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: check info
|
// TODO: check info
|
||||||
vdec->cmd_list
|
vdec->cmd_list
|
||||||
({
|
({
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue