You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement CODEC_M4AAC (codec 2) decoding in libSceAjm.native using the project's linked FFmpeg integration (AV_CODEC_ID_AAC).
Supports M4AAC_CONFIG_ADTS (1) with 7-byte ADTS header parsing, AAC-LC profile, frequency indices < 12, and mono (1), stereo (2), or 5.1 (6) channel configurations.
Supports M4AAC_CONFIG_RAW (2) access units by synthesizing 2-byte AudioSpecificConfig extradata at initialization.
Emulates Sony hardware 2-frame delay (M4AAC_DELAY_FRAMES = 2) unless M4AAC_ENABLE_NONDELAY_OUTPUT is passed in instance creation flags.
Reports dynamic bitrate and format in run job sidebands; applies gapless priming skips (skipSamples) and total sample limits ( otalSamples).
Handles buffer management, padding (AV_INPUT_BUFFER_PADDING_SIZE), and status signaling (AJM_RESULT_PARTIAL_INPUT, AJM_RESULT_NOT_ENOUGH_ROOM, AJM_RESULT_FATAL).
Updates TechnicalDebt.md documenting unimplemented HE-AAC profile without ENABLE_SBR_DECODE and multi-AU raw access buffers.
Adds regression and fixture tests in GuestAjm.cpp using a synthetic AAC-LC chirp bitstream validating delay, non-delay, bitrate, and channel isolation.
Note on title compatibility: Resolving this stub addresses the recorded crash signature from issue #3410, but full title compatibility (e.g. Ghost of Yotei, PPSA26344) has not been verified in a real game run.
Tested
MinGW-w64 GCC 15.2.0 (WinLibs), Windows 10, Release:
Cross-linking for the review: this implements the M4AAC decoder tracked in #3410, which has an independent Linux verification on that issue — full suite 522/522, guest_ajm stable across repeated runs, plus a negative control: with the extended test but main's Ajm.cpp, the test aborts at exactly INITIALIZE for a codec other than MP3, ATRAC9 and Opus not implemented, so the new paths are provably covered. The one Windows-only failure reported on the original issue (windows_exceptions) passes on Linux.
This is the commit from #3410 (screamm:feat/ajm-m4aac, a395684b) with the author and the commit message replaced. Please push that commit as it is, rebased onto main with its author kept, as #3410 asks.
Closing: this is the commit from #3410 (screamm:feat/ajm-m4aac, a395684b) with the author and message replaced (same three files, +545 lines), and the request above to push it as it is with its author kept wasn't addressed. #4934 also implements the M4AAC decoder and is still open, and this PR conflicts with main.
Feel free to reopen if the original commit is carried with its authorship preserved (e.g. Co-authored-by/original author) and rebased, and #4934 is accounted for.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Implement CODEC_M4AAC (codec 2) decoding in libSceAjm.native using the project's linked FFmpeg integration (AV_CODEC_ID_AAC).
Note on title compatibility: Resolving this stub addresses the recorded crash signature from issue #3410, but full title compatibility (e.g. Ghost of Yotei, PPSA26344) has not been verified in a real game run.
Tested
MinGW-w64 GCC 15.2.0 (WinLibs), Windows 10, Release:
Checklist