0

我正在从事一个项目,该项目涉及读取要由 Surfaceflinger 合成的图层的内容。

我特别需要检查要合成的层是否全为1位0r全为0位。

这是为了在 SurfaceFlinger 合成之前应用一些优化。

我通过adb-logcat跟踪缓冲区的创建(通过添加我自己的日志消息),但找不到读取层实际内容的方法。

谁能告诉我这是否可能,如果是,怎么做?

4

1 回答 1

0

一般来说,它不是。例如,如果图层显示受 DRM 保护的视频,则无法读取数据。

对于未受保护的图层,您可以读取像素值glReadPixels()——SurfaceFlinger 的屏幕截图代码中有一些代码可以启用以检查空白屏幕截图——但这会很慢。

请记住,并非所有图层都是 RGB。如果图层是 YUV,则“全零”图层实际上是暗绿色。

于 2014-06-06T17:39:21.943 回答