O que controla a velocidade de reprodução ao codificar com o MediaCodec + mp4parser do Android?

Estou tentando gravar, codificar e finalmente criar um curta-metragem no Android (usando a API 16) com uma combinação de MediaCodec e Mp4Parser (para encapsular em .mp4).

Tudo está funcionando bem, exceto pela duração do .mp4: tem sempre 3 segundos de duração - e roda aproximadamente o dobro da velocidade 'certa'.

A entrada para o codificador é de 84 quadros (separados por 100ms).O último quadro define o sinalizador 'fim do fluxo'.Defino o tempo de apresentação para cada quadro emqueueInputBuffer

Eu tentei ajustar todos os parâmetros possíveis - mas nada parece fazer a diferença - o filme tem sempre 3 segundos de duração - e sempre é exibido muito rápido.

Então, o que governa a reprodução seepd? como faço para gerar um filme com velocidade 'natuarl'?

questionAnswers(1)

yourAnswerToTheQuestion