Android MediaCodec : getOutputImage() returns NULL always on Freescale AVC Decoder

cancel
Showing results for 
Search instead for 
Did you mean: 

Android MediaCodec : getOutputImage() returns NULL always on Freescale AVC Decoder

709 Views
dwarakeshradhak
Contributor II

Hi,

I am using iMX8x Board. Android firmware version is : P9.0.0_1.0.0_GA_DEMO_8Q

I am trying to get decoded image out of : OMX.Freescale.std.video_decoder.avc.v3.hw-based

My code snippet is :

mDecoder.configure(
   format,
   null,
   null,
   0);
mOutputIdx = mDecoder.dequeueOutputBuffer(mInfo, TIMEOUT_US);
if (mOutputIdx >= 0)
{
   Image = mDecoder.getOutputImage(mOutputIdx);
}

I have made sure the following

1. Surface is null

2. Made sure output format is RAW from Mime Type and also color format (COLOR_FormatYCbYCr : The only color format supported by OMX.Freescale.std.video_decoder.avc.v3.hw-based is this)

3. Dequeue'd  index is used to getOutputImage, meaning same buffer index that is dequeued has been passed to get Output image.

But still getOutputImage() returns NULL always

If I change it to software decoder it works fine.

I am suspecting if freescale decoder is not supporting COLOR_FormatYUV422Flexible or any flexible formats to be the issue, that getOutputImage() returns NULL always. Also if I give surface at the time of configure, I get the display. We need to get this Output image to do post processing.

Has anybody faced similar issue ? Any pointers would help.

1 Reply

222 Views
joanxie
NXP TechSupport
NXP TechSupport

if your source code use vpu decoding, which only supports yuv420