我正在寻找从 MediaCodec 解码器接收到的图像帧并将其绘制到 Android 设备屏幕的最快方法。重要的限制和解释是:
无法使用媒体播放器。不允许中间应用。
必须尽快将来自 MediaCodec 解码器的输出帧绘制到屏幕上(最小化延迟)。
可用的解码器输出格式如下:
ColorFormat[0] 0x00000013 COLOR_FormatYUV420Planar
ColorFormat[1] 0x00000015 COLOR_FormatYUV420SemiPlanar
ColorFormat[2] 0x7F000001 OMX_SEC_COLOR_FormatNV12TPhysicalAddress
ColorFormat[3] 0x7FC00002 OMX_SEC_COLOR_FormatNV12Ti视频分辨率以及每个输出帧的分辨率为 960x720。
目标平台是 Galaxy Note II,并且该方法可以特定于该平台(例如,利用可用的硬件功能)。这不需要在其他平台上工作或成为通用解决方案。
花费少于 66 毫秒的方法会很好。少于 33 毫秒会很棒。我目前的方法需要 80-90 毫秒,这很糟糕。(我不会费心去描述它,因为我不想让答案偏向任何特定的方向。)