Repository navigation
feat(libSceVideodec2): implement the HEVC decoder aliases - #14722
oneandonlydean merged 1 commit into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed — no blocking findings
The HEVC aliases forward directly to the existing generic implementations, and the new test exercises parity through decoding; hosted checks are still pending and the reported builds/tests were not independently reproduced.
What I ran
Reviewed exact head 28f157cc6cf3c9010ad1b543392f592c7b001012 against base f2d874c1fdccf781c0fa5d86619bb5dd8894b958; the PR's merge preview against main was clean. Environment: Debian Linux x86_64, Python 3.11.2, GCC 12.2.0. I did not build or run C++ tests.
python3 tools/pr_precheck.py --repo boykopovar/AnyPS5 --pr 14722
python3 tools/pr_abi_audit.py --base f2d874c1fdccf781c0fa5d86619bb5dd8894b958 --head 28f157cc6cf3c9010ad1b543392f592c7b001012
gh search prs 'repo:boykopovar/AnyPS5 is:open sceVideodec2CreateHevcDecoder' --json number,title,url
gh search prs 'repo:boykopovar/AnyPS5 is:open sceVideodec2QueryHevcDecoderMemoryInfo' --json number,title,urlResults
| Check | Result | Note |
|---|---|---|
| Diff whitespace and conventions | passed | No findings. |
| ABI declarations and NIDs | passed | Both aliases have one declaration and definition. |
| Exact-name duplicate search | passed | No other open PR result for either alias. |
Merge preview against main |
passed | Clean. |
| Pair preview with #14212 | failed | Broad debt-file conflicts include this library's debt file. |
| C++ build/runtime tests | not run | No local build was run. |
| Hosted CI | not run | Six jobs were queued when inspected. |
Unedited check output
Conventions-check stdout:
All conventions checks passed.
ABI-audit stdout:
ABI audit: passed
sceVideodec2AllocateComputeQueue_nid_postfix: NID=eD+X2SmxUt4 declarations=1 definitions=1 aliases=0
sceVideodec2CreateDecoderBid: NID=hjoVB02yu0U declarations=1 definitions=1 aliases=0
sceVideodec2CreateDecoder_nid_postfix: NID=CNNRoRYd8XI declarations=1 definitions=1 aliases=0
sceVideodec2CreateHevcDecoder: NID=pu4kxXkYz3E declarations=1 definitions=1 aliases=0
sceVideodec2Decode_nid_postfix: NID=852F5+q6+iM declarations=1 definitions=1 aliases=0
sceVideodec2DeleteDecoder_nid_postfix: NID=jwImxXRGSKA declarations=1 definitions=1 aliases=0
sceVideodec2Flush_nid_postfix: NID=l1hXwscLuCY declarations=1 definitions=1 aliases=0
sceVideodec2GetAvcPictureInfo_nid_postfix: NID=kjrLbcyhEiw declarations=1 definitions=1 aliases=0
sceVideodec2GetHevcPictureInfo_nid_postfix: NID=7M+1UFqWOAI declarations=1 definitions=1 aliases=0
sceVideodec2GetPictureInfo_nid_postfix: NID=NtXRa3dRzU0 declarations=1 definitions=1 aliases=0
sceVideodec2GetVp9PictureInfo_nid_postfix: NID=69fVNDtk2Zk declarations=1 definitions=1 aliases=0
sceVideodec2InitLibrary: NID=DXlobplVYj0 declarations=1 definitions=1 aliases=0
sceVideodec2MapDirectMemory: NID=hIIZXUsMeI8 declarations=1 definitions=1 aliases=0
sceVideodec2MapMemory: NID=2C6StOEz+nM declarations=1 definitions=1 aliases=0
sceVideodec2PresetDecoderConfigInfo: NID=B92MMJrPQMI declarations=1 definitions=1 aliases=0
sceVideodec2PresetDecoderConfigInfoAvc: NID=X9RNCpx+mFE declarations=1 definitions=1 aliases=0
sceVideodec2PresetDecoderConfigInfoHevc: NID=KoHlJNQCzIw declarations=1 definitions=1 aliases=0
sceVideodec2PresetDecoderConfigInfoVp9: NID=ao7f1-9zqkk declarations=1 definitions=1 aliases=0
sceVideodec2QueryComputeMemoryInfo_nid_postfix: NID=RnDibcGCPKw declarations=1 definitions=1 aliases=0
sceVideodec2QueryDecoderInfo: NID=EQtFad2c1T8 declarations=1 definitions=1 aliases=0
sceVideodec2QueryDecoderMemoryInfo_nid_postfix: NID=qqMCwlULR+E declarations=1 definitions=1 aliases=0
sceVideodec2QueryHevcDecoderMemoryInfo: NID=krChT8KBUDU declarations=1 definitions=1 aliases=0
sceVideodec2QueryLibraryInfo: NID=mhKZJqhGnXg declarations=1 definitions=1 aliases=0
sceVideodec2ReleaseComputeQueue_nid_postfix: NID=UvtA3FAiF4Y declarations=1 definitions=1 aliases=0
sceVideodec2Reset_nid_postfix: NID=wJXikG6QFN8 declarations=1 definitions=1 aliases=0
sceVideodec2TermLibrary: NID=q0gN8e4VLZo declarations=1 definitions=1 aliases=0
limit: This lexical audit does not parse C++ fully, prove calling-convention or binary ABI correctness, verify runtime version tables, or replace compilation.
limit: An absent source declaration or explicit alias can be intentional for assembly exports, conditional platform code, or generated interfaces; inspect findings before treating them as defects.
Exact-name PR search output:
[]
[]
The full pr_overlap.py scan did not complete; its unedited stderr was:
pr_overlap: Invalid \uXXXX escape: line 1 column 1655513 (char 1655512)
Pair preview command:
set +e
git merge-tree --write-tree refs/review/14212/head refs/review/14722/head > /tmp/merge-tree-14212-14722.txt 2>&1
merge_rc=$?
grep -E 'CONFLICT|libSceVideodec2.md' /tmp/merge-tree-14212-14722.txt
printf 'git merge-tree exit status: %s\n' "$merge_rc"Filtered output from that command:
100644 7d2bc73f0afc99aff16f058e89b5bac016ef0710 1 docs/dev/debt/libSceVideodec2.md
100644 b4f24faa72992dc60ef1be915d2d42755fd1b880 2 docs/dev/debt/libSceVideodec2.md
100644 fcc4b75f6b337312b4ef8c1229197a9196006cc4 3 docs/dev/debt/libSceVideodec2.md
CONFLICT (content): Merge conflict in docs/dev/debt/libSceVideodec2.md
git merge-tree exit status: 1
Negative control
Not run by me. The PR description reports a base-source failure and a mutation check, but those results were not independently reproduced in this session.
Findings
Blocking
None found in the reviewed change.
Non-blocking
Open PR #14212 also changes docs/dev/debt/libSceVideodec2.md as part of a broad blank-line update and is currently marked conflicting with main. The pair preview reports a conflict in that debt file; it does not show a functional-code conflict for this PR. Preserve both documentation updates when the older PR is reconciled with main.
The PR description reports passing Linux and Windows tests, a host build and a mutation check. I did not independently run these. The new debt entry correctly labels exact PS5 alias equivalence as unverified, so the PS4 reference is not presented as console proof.
Sources
- Alias declarations at the reviewed head
- Alias forwarding definitions at the reviewed head
- New HEVC alias test and CTest registration and CMake registration
- Debt entry marking PS5 alias equivalence unverified
- Older documentation PR head
Not verified
No local C++ build, CTest, Windows run, physical PS5 run, or console measurement was performed. The PR's reported Linux and Windows tests and mutation check are author-supplied. Hosted CI was queued when inspected. The full overlap scan could not parse the GitHub response.
To get this to a good state
No source change is requested. Let the hosted checks finish and preserve the debt-file information if #14212 is updated or lands first. I will rerun applicable no-build checks if this PR's head changes.
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
Progress report (f2d874c → 28f157c)📈 System libraries: 26.26% (+0.01%, +2 implemented functions) ✅ 2 implemented
Changed libraries (implemented exports)
|
What
Implements
sceVideodec2CreateHevcDecoder(pu4kxXkYz3E) andsceVideodec2QueryHevcDecoderMemoryInfo(krChT8KBUDU) in libSceVideodec2. Both threw throughNotImplemented_nid_no_patchinUnimplemented.cpp.sceVideodec2CreateDecoderandsceVideodec2QueryDecoderMemoryInfo, so they share those functions' validation, memory sizing, error codes and decoding.videodec2.cpplines 327–339. There, both functions return the generic call's result, and lines 351–355 register them under these NIDs. No shadPS4 code is copied.Debt. In
docs/dev/debt/libSceVideodec2.md:Unimplemented.cpp.Tested
guest_videodec2_hevc_aliases(core/libs/tests/GuestVideodec2HevcAliases.cpp):DecoderMemoryInfofields;guest_videodec2_unimplementedno longer expects the two aliases to throw.main, the new test fails with the alias's not-implemented throw.ctest -R "videodec2|hevc"passes 4/4 (guest_videodec2_hevc_aliases,guest_videodec2,guest_videodec2_unimplemented,guest_hevc_metadata).public_headerspasses.python3 tools/check_conventions.py --base origin/main: all conventions checks passed.python3 tools/pr_overlap.py:main. Its only change to this library is blank lines in the debt file.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code