Ir para o conteúdo
PS5PCEM
ParcialÁudio e vídeo

Codecs AJM

O AJM decodifica ATRAC9, MP3, AAC MPEG-4 e Opus. Cada instância de codec guarda o próprio estado, e um codec desconhecido é rejeitado em vez de ser informado como sucesso silencioso.

Notas do repositório até 10 de outubro de 2026

Codecs e formatos de amostra

O codec 0 é MP3, por meio de minimp3. O codec 1 é ATRAC9. O codec 2 é AAC MPEG-4, por meio de FAAD2, para trabalhos ADTS, brutos e SAF. O codec 24 é Opus, por meio de libopus. A saída ATRAC9 pode ser de 16 bits com sinal, de 32 bits com sinal, float ou planar. São preservados a inicialização, a informação do codec, os metadados sem lacuna, as contagens de bytes do fluxo, as contagens de frames decodificados e as bandas laterais do total de amostras.

Os trabalhos podem usar um buffer contíguo ou um buffer dividido. O estado da instância é por decodificador, então dois fluxos não compartilham um reservatório de bits. O caminho legado da libSceAudiodec usa o mesmo backend para ATRAC9, MP3 e AAC, depois das próprias chamadas de init, create, reset e delete.

Áudio de filme e prévias

O layout multicanal de ATRAC9 de PlayStation 5 que foi observado é decodificado como fluxos mono intercalados. O áudio de filme de Ghost of Yōtei começa no ponto certo por causa desse layout. Uma faixa háptica que o filme carrega é temporizada com silêncio. A vibração do controle não é sintetizada a partir dela.

Prévias de reserva apoiadas em FSB são reamostradas para a mistura de 48 kHz, recebem um fade curto e são esvaziadas uma vez. Elas não entram na mistura do grafo AudioOut ao vivo, a menos que PS5_AUDIO_FALLBACK_MIX=1, porque uma segunda cópia do mesmo clipe é um eco.

Licenças

ATRAC9, FAAD2, minimp3 e Opus são decodificadores de terceiros. As licenças deles acompanham o diretório docs/licenses do repositório e a compilação portátil. O código do próprio emulador permanece GPL-3.0-or-later.

Um número de codec fora dos quatro valores implementados é um erro. Devolver um buffer de zeros e um código de sucesso faria um título acreditar que o fluxo tinha sido decodificado.

O que está implementado

  • ATRAC9, MP3, AAC MPEG-4 e Opus, com estado de decodificador por instância.
  • Saída ATRAC9 como PCM de 16 bits com sinal, de 32 bits com sinal, float ou planar.
  • Metadados sem lacuna e de banda lateral, com buffers de entrada contíguos e divididos.
  • O backend compartilhado por trás da libSceAudiodec.

O que ainda falta

  • Números desconhecidos de codec AJM são rejeitados.
  • Faixas hápticas permanecem em silêncio. A vibração não é emulada a partir delas.
  • A mistura das prévias de reserva fica desligada, a menos que PS5_AUDIO_FALLBACK_MIX=1.

Mecanismos relacionados

O que estas páginas descrevem

O texto segue as notas de arquitetura e os relatórios de outubro de 2026 no repositório do PS5PCEM. Um teste pontual que passa não é uma nova taxa de quadros nem uma nova conclusão de jogo.

Todas as tecnologias