Android MediaCodec 解码器,携带输入视频帧的自定义信息

Android MediaCodec decoder ,carry custom info with input video frames

解码视频帧并使用 Android MediaCodec

将其显示在屏幕上

我必须在 MediaCodec 解码输出步骤中指出视频帧是否可以显示在屏幕上。因此,视频帧必须携带信息才能在 MediaCodec 帧输入步骤中显示在屏幕上。

我试过设置 BufferInfo.flag 一些位,但是 MediaCodec 会覆盖这个变量,我无法在输出步骤的输入步骤中设置标志位。

我有另一种方式来指示显示或不显示。使用 MediaCodec.BufferInfo#flags 奇数或偶数来表示此信息。

有什么正式的方法可以完成这项工作吗?

据我所知,没有其他机制可以传输自定义信息。但是,您可以做的是手动跟踪此类信息。如果时间戳是唯一的,你可以有一个地图来跟踪时间戳 - >自定义信息。如果时间戳不是唯一的,您可能需要将真实时间戳存储在自定义信息中并为每个帧生成新的时间戳(例如,只是一个递增的数字)——只要解码器不尝试实际使用,这就应该有效解码过程中任何内容的时间戳。