Skip to content Skip to sidebar Skip to footer

How To Extract Pcm Samples From Mediacodec Decoder's Output

I'm trying to obtain the PCM samples for further processing from a decoded mp4 buffer. I'm first extracting the audio track from a video file recorded with the phone's camera app,

Solution 1:

I found the delays to be caused by the AAC encoding priming and remainder times, as explained here:

https://developer.apple.com/library/mac/documentation/quicktime/qtff/QTFFAppenG/QTFFAppenG.html

In my case, the priming time is always 2112 samples, and the remainder is naturally variable depending on the audio size.

Solution 2:

I know the problem is solved here. But the MediaCodec is used Synchronously in the current code, which is deprecated as of now. I learn from this question and made the same thing with Async use of MediaCodec. Just posting the github link so that it might help someone later on.

Github Asynchronous implementation: link

FYI: The audioplayer used is just copy paste from some other thread for the time being. It is depricated. I will update it when i get time. Also the code is in Kotlin.(It is still easy to understand)

Please check out the Async link for official MediaCodec documentation

Post a Comment for "How To Extract Pcm Samples From Mediacodec Decoder's Output"