MediaCodec e PCM de 24 bits

Estou usando com sucesso o MediaCodec para decodificar o áudio, no entanto, quando carrego um arquivo com amostras de 24 bits, não tenho como saber que isso ocorreu. Como o aplicativo estava assumindo amostras de 16 bits, ele falhou.

Quando imprimo o MediaFormat, vejo

{mime=audio/raw, durationUs=239000000, bits-format=6, channel-count=2, channel-mask=0, sample-rate=96000}

Suponho que o "formato de bits" seja uma dica, no entanto, essa chave não é declarada na API e não é realmente emitida quando o formato de saída é alterado. eu recebo

{mime=audio/raw, what=1869968451, channel-count=2, channel-mask=0, sample-rate=96000}

(A propósito, qual é a chave "what"? Percebo que, se interpretar como um 4charcode, é "outC"... apenas uma bandeira de que é um formato de saída?)

Então, qual é o melhor recurso aqui? Se eu alimentar oByteBuffer direto para oAudioTrack é claro estático (assumindo PCM 16).

Se eu souber o valor, eu mesmo posso convertê-lo! Entendo por outras perguntas que você também não pode ditar o formato de saída.

questionAnswers(0)

yourAnswerToTheQuestion