ImDebugger: list the sceVideocodec contexts alongside sceAudiocodec

Same shape as the audio table: one row per open context, with its EDRAM block
and frame buffer allocation. Both are in ME memory, so the addresses shown are
in that space, not in PSP RAM.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5 committed 2026-09-12 12:53:13 -06:00
1 parent ad7cfefd49
commit 9dfce3ec2f
3 files changed
+80

No files matched your search

+34
View File
@@ -47,6 +47,7 @@
#include "Core/HLE/sceAtrac.h"
#include "Core/HLE/sceAudio.h"
#include "Core/HLE/sceAudiocodec.h"
#include "Core/HLE/sceVideocodec.h"
#include "Core/HLE/sceMp3.h"
#include "Core/HLE/AtracCtx.h"
#include "Core/HLE/sceSas.h"
@@ -1577,6 +1578,39 @@ void DrawMediaDecodersView(ImConfig &cfg, ImControl &control) {
}
}
std::vector<VideocodecCtxInfo> videoCtxs;
VideocodecGetCtxInfo(&videoCtxs);
if (ImGui::CollapsingHeaderWithCount("sceVideocodec", (int)videoCtxs.size(), ImGuiTreeNodeFlags_DefaultOpen)) {
if (ImGui::BeginTable("videocodecs", 7, ImGuiTableFlags_RowBg | ImGuiTableFlags_BordersH)) {
ImGui::TableSetupColumn("CtxAddr", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("Type", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("Size", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("Frames", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("Decoder", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("EDRAM", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("Frame buffers", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableHeadersRow();
for (const VideocodecCtxInfo &ctx : videoCtxs) {
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::Text("%08x", ctx.ctxAddr);
ImGui::TableNextColumn();
ImGui::Text("H.264 (%d)", ctx.type);
ImGui::TableNextColumn();
ImGui::Text("%dx%d", ctx.width, ctx.height);
ImGui::TableNextColumn();
ImGui::Text("%d", ctx.frameCount);
ImGui::TableNextColumn();
ImGui::TextUnformatted(ctx.hasDecoder ? "open" : "-");
ImGui::TableNextColumn();
ImGui::Text("%08x (%d)", ctx.edramToken, ctx.edramSize);
ImGui::TableNextColumn();
ImGui::Text("%08x (%d)", ctx.frameBuffers, ctx.frameBuffersSize);
}
ImGui::EndTable();
}
}
ImGui::End();
}