Eu estou escrevendo uma biblioteca de analisador universal para vários formatos binários em Rust, como parte de um projeto pessoal. Eu comecei a pesquisar a estrutura dos arquivos MP3. Pelo que entendi, uma estrutura de arquivos MP3 consiste em quadros de cabeçalho e dados. Cada quadro de cabeçalho contém informações meta sobre o quadro de dados de processo. Aqui está um diagrama e uma lista de valores permitidos para os quadros de cabeçalho MP3 que eu estou fazendo referência.
Eu entendo o formato do cabeçalho MP3. Minha confusão, ou falta de informação, envolve quadros de dados MP3. Eu não consigo encontrar uma fonte que especifica qual tipo inteiro amostras são codificados como na parte de quadro de dados de um arquivo MP3. Estão 8 bits, 16 bits, 32 bits, assinado, não assinados, etc?
O melhor que eu posso pensar é, para usar uma combinação de frequência taxa de amostragem e taxa de bits para calcular o que cada tamanho da amostra deveria. No entanto, isso não determina se cada amostra é um inteiro assinado ou não assinado.
Eu não estou tentando decodificar esses arquivos, eu só estou tentando analisá-los. Eu tive um tempo surpreendentemente difícil encontrar esta informação. Qualquer informação ou útil alguém oferecer pode seria muito apreciado.