Hello:
环境:
H264编码端:android mediacodec 编码
H264解码端:IMX6 VPU 硬解
问题:
H264解码端 display 乱码
尝试:
修改 H264 解码端,发现:如果不调用 vpu_DecBitBufferFlush 清空 inbuffer 的话,则显示正常;如果调用 vpu_DecBitBufferFlush, 则显示乱码
vpu_DecGetOutputInfo 获取失败原因:解码失败的时候, pictype 为 no-IDR(P-slice); 解码成功的时候,pictype 为 no-IDR(I-slice)
从目前的分析情况来看, 关键应该在于slice type
请教:
如果从 H264编码端, 我该如何配置 android mediacodec encoder 使其输出 no-IDR(I-slice) 数据;或者有不同见解,帮我分析分析,谢谢
编码的时候加上SPS和PPS试试?
byte[] sps = {0, 0, 0, 1, 103, 100, 0, 40, -84, 52, -59, 1, -32, 17, 31, 120, 11, 80, 16, 16, 31, 0, 0, 3, 3, -23, 0, 0, -22, 96, -108};
byte[] pps = {0, 0, 0, 1, 104, -18, 60, -128};
//这里SPS和PPS可以换成你自己I帧的帧信息
mediaFormat.setByteBuffer("csd-0", ByteBuffer.wrap(sps));
mediaFormat.setByteBuffer("csd-1", ByteBuffer.wrap(pps));