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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

2,625 次查看
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.

标记 (3)
1 回复

2,138 次查看
joanxie
NXP TechSupport
NXP TechSupport

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