繁体   English   中英

MediaCodec作为解码器,用于将解码后的数据发送到两个表面。 如何避免大量中继数据复制?

[英]MediaCodec as decoder to send decoded data to two surfaces. How can we avoid big trunk data copy?

要配置解码器,我们称

decoder.configure(format,surface, crypto,flags)

然后,在

MediaCodec.Callback.onOutputBufferAvailable()

我们称之为

codec.releaseOutputBuffer(index,System.nanoTime())

在该表面上绘制解码的视频,该视频在configure()函数中传递。 我们是否有办法将输出缓冲区发送到另一个表面,该表面由编码器从

MediaCodec.createInputSurface()

避免大量中继数据复制。

没有办法做到这一点。 研究完Nvidia的Android源代码和omx解码器工具之后; 如果需要将数据发送到两个表面,则必须使用制造商提供的本地DMA内存复制功能,或直接使用本地omx解码器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM