From 4b07ac4f27218e9b52deaf29aecd8d221476bdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20L=C3=B3pez=20Guimaraes?= Date: Wed, 14 Jan 2026 18:29:59 +0000 Subject: [PATCH] cellVdec: Document all supported codecs These are all the codecs that the PS3 can handle. There are some numbers skipped on the codecs enum, but this is intentional: there isn't a codec assigned to those. --- rpcs3/Emu/Cell/Modules/cellVdec.cpp | 6 ++---- rpcs3/Emu/Cell/Modules/cellVdec.h | 13 +++++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/cellVdec.cpp b/rpcs3/Emu/Cell/Modules/cellVdec.cpp index 2a8f855d6b..2f1cb6862b 100644 --- a/rpcs3/Emu/Cell/Modules/cellVdec.cpp +++ b/rpcs3/Emu/Cell/Modules/cellVdec.cpp @@ -1200,8 +1200,7 @@ error_code cellVdecDecodeAu(ppu_thread& ppu, u32 handle, CellVdecDecodeMode mode return { CELL_VDEC_ERROR_ARG, "mode=%d", +mode }; } - // TODO: what does the 3 stand for ? - if ((mode == (CELL_VDEC_DEC_MODE_B_SKIP | CELL_VDEC_DEC_MODE_PB_SKIP) && vdec->type != 3) || + if ((mode == (CELL_VDEC_DEC_MODE_B_SKIP | CELL_VDEC_DEC_MODE_PB_SKIP) && vdec->type != CELL_VDEC_CODEC_TYPE_VC1) || (mode == CELL_VDEC_DEC_MODE_PB_SKIP && vdec->type != CELL_VDEC_CODEC_TYPE_AVC)) { return { CELL_VDEC_ERROR_ARG, "mode=%d, type=%d", +mode, vdec->type }; @@ -1248,8 +1247,7 @@ error_code cellVdecDecodeAuEx2(ppu_thread& ppu, u32 handle, CellVdecDecodeMode m return { CELL_VDEC_ERROR_ARG, "mode=%d", +mode }; } - // TODO: what does the 3 stand for ? - if ((mode == (CELL_VDEC_DEC_MODE_B_SKIP | CELL_VDEC_DEC_MODE_PB_SKIP) && vdec->type != 3) || + if ((mode == (CELL_VDEC_DEC_MODE_B_SKIP | CELL_VDEC_DEC_MODE_PB_SKIP) && vdec->type != CELL_VDEC_CODEC_TYPE_VC1) || (mode == CELL_VDEC_DEC_MODE_PB_SKIP && vdec->type != CELL_VDEC_CODEC_TYPE_AVC)) { return { CELL_VDEC_ERROR_ARG, "mode=%d, type=%d", +mode, vdec->type }; diff --git a/rpcs3/Emu/Cell/Modules/cellVdec.h b/rpcs3/Emu/Cell/Modules/cellVdec.h index b18530ca33..a1f9c3ae50 100644 --- a/rpcs3/Emu/Cell/Modules/cellVdec.h +++ b/rpcs3/Emu/Cell/Modules/cellVdec.h @@ -14,10 +14,15 @@ enum CellVdecError : u32 enum CellVdecCodecType : s32 { - CELL_VDEC_CODEC_TYPE_MPEG2 = 0, - CELL_VDEC_CODEC_TYPE_AVC = 1, - CELL_VDEC_CODEC_TYPE_MPEG4 = 2, - CELL_VDEC_CODEC_TYPE_DIVX = 5, + CELL_VDEC_CODEC_TYPE_MPEG2 = 0, + CELL_VDEC_CODEC_TYPE_AVC = 1, + CELL_VDEC_CODEC_TYPE_MPEG4 = 2, + CELL_VDEC_CODEC_TYPE_VC1 = 3, + CELL_VDEC_CODEC_TYPE_DIVX = 5, + CELL_VDEC_CODEC_TYPE_JVT = 7, + CELL_VDEC_CODEC_TYPE_DIVX3_11 = 9, + CELL_VDEC_CODEC_TYPE_MVC = 11, + CELL_VDEC_CODEC_TYPE_MVC2 = 13, // seems the same as CELL_VDEC_CODEC_TYPE_MVC? CELL_VDEC_CODEC_TYPE_MAX };