|
3288硬件265解码无画面
发表于 2016-3-4 19:01:08
浏览:20390
|
回复:15
打印
只看该作者
[复制链接]
楼主
大家好,最近入手了3288的开发版,烧写了rk3288_box-userdebug版本的固件,然后我参考下面的链接
http://developer.t-firefly.com/f ... hlight=%BD%E2%C2%EB
能够成功的解码出264的文件,yuv数据都是对的,画面没什么问题。
然而,我去解码265的时候,发现解不出来,但是没有报错,但是yuv数据都是空的,画面是绿色的,从下方的打印来看,系统已经识别出了视频的分辨率(1280x720)。
下面是logcat的数据:
- 03-04 10:50:12.192: I/System.out(19966): decoder dequeueOutputBuffer:-1
- 03-04 10:50:12.192: D/DecodeActivity(19966): dequeueOutputBuffer timed out! android.media.MediaCodec$BufferInfo@19253be5
- 03-04 10:50:12.192: I/System.out(19966): dequeueInputBuffer start.
- 03-04 10:50:12.192: I/System.out(19966): inIndex:1
- 03-04 10:50:12.211: D/(163): return info change
- 03-04 10:50:12.211: E/(163): infochange value 0
- 03-04 10:50:12.211: E/(163): decode nal units value 0
- 03-04 10:50:12.211: I/pv_hevcdec_api(163): return info change default_width 1920,default_height 1080,new nDisplayWidth 1280,nDisplayHeight 720
- 03-04 10:50:12.211: I/vpu_api(163): info_change break
- 03-04 10:50:12.211: I/vpu_api(163): get info change out xxxx
- 03-04 10:50:12.238: I/System.out(19966): decoder dequeueOutputBuffer:-1
- 03-04 10:50:12.238: D/DecodeActivity(19966): dequeueOutputBuffer timed out! android.media.MediaCodec$BufferInfo@19253be5
- 03-04 10:50:12.238: I/System.out(19966): dequeueInputBuffer start.
- 03-04 10:50:12.239: I/System.out(19966): inIndex:2
- 03-04 10:50:12.255: E/ROCKCHIP_VIDEO_DECCONTROL(163): OMX_IndexParamdescribeColorFormat get
- 03-04 10:50:12.256: E/ROCKCHIP_OSAL_Android(163): OMX_ERRORTYPE Rockchip_OSAL_GetANBParameter(OMX_HANDLETYPE, OMX_INDEXTYPE, OMX_PTR): Rockchip_OMX_Check_SizeVersion(DescribeColorFormatParams) is failed
- 03-04 10:50:12.256: E/OMXNodeInstance(163): getParameter(2c:rk._decoder.hevc, ??(0x7f000017)) ERROR: BadParameter(0x80001005)
- 03-04 10:50:12.256: W/ACodec(19966): do not know color format 0x0 = 0
- 03-04 10:50:12.256: E/OMXNodeInstance(163): getConfig(2c:rk._decoder.hevc, ConfigCommonOutputCrop(0x700000f)) ERROR: UnsupportedIndex(0x8000101a)
- 03-04 10:50:12.267: I/System.out(19966): decoder dequeueOutputBuffer:-3
- 03-04 10:50:12.267: D/DecodeActivity(19966): INFO_OUTPUT_BUFFERS_CHANGED
- 03-04 10:50:12.268: I/System.out(19966): dequeueInputBuffer start.
- 03-04 10:50:12.268: I/System.out(19966): inIndex:3
- 03-04 10:50:12.314: I/System.out(19966): decoder dequeueOutputBuffer:-2
- 03-04 10:50:12.315: D/DecodeActivity(19966): New format {image-data=java.nio.ByteArrayBuffer[position=0,limit=80,capacity=80], mime=video/raw, crop-top=0, crop-right=1279, slice-height=720, color-format=0, height=720, width=1280, what=1869968451, crop-bottom=719, crop-left=0, stride=1280}
复制代码 我对比了和264的打印,区别是264的在这个后面还用红色的打印了一次分辨率。
1.我用的265视频数据肯定是没有任何问题,而且保证是有I帧的。
2.我传递到mediacode的数据能保证是每一帧都是刚刚好分开的。
3.我的264和265的视频都是裸码流,能够直接用标准的工具(Elecard 、Elecard HEVC Analyzer)进行播放的。
4.硬解265从上方的打印来看的话,好像系统认为已经解码成功了,但是不知道为什么,出来的yuv数据是空的,所以看到的画面都是绿色的!
5.各位大神给看看是啥原因
|
|