我有一个android电视,但对比度和gama设置仅在使用exoplayer框架观看视频时适用,这意味着youtube和Netflix甚至是Play商店中的exoplayer演示,但是任何不使用exoplayer框架的东西都有一个问题无论我选择哪种gama设置,都是稳定的固定不变的淡色,如果您无法修补系统以解决问题并且我没有root访问权限,则应该对应用进行修补(我当然需要使用硬件编辑器,因为它是唯一具有色彩效果的层,所以我的问题是 exoplayer如何使用硬件编辑器模仿其他应用程序上的行为
我一直在努力解决问题并进行了整整一周的研究,所以这就是我的发现
当我启用(禁用硬件覆盖)(从开发人员选项设置)时,硬件覆盖又称为硬件编辑器 任何使用exoplayer的东西都会显示黑屏,并且不会显示视频输出,这意味着exoplayer用户是硬件作曲者 使用任何应用程序时,使用什么exoplayer框架 dumpsys SurfaceFlinger
SurfaceView - com.google.android.you[...]s.youtube.tv.activity.MainActivity#1
4294967294 | Device | 0 0 1280 720 | 0.0 0.0 1920.0 1080.0
com.google.android.youtube.tv/com.go[...]s.youtube.tv.activity.MainActivity#0
------21015 | Client | 0 0 1280 720 | 0.0 0.0 1920.0 1080.0
h/w composer state:
h/w composer enabled
Video Composer
VSC[0]: type = dvo(2), layer=0xafbc16d8
connected: 1
和logcat输出为
OMX_VDEC: consumer-usage: hwc, usage=0x900, adaptive=1
OMX_VDEC: update port mode: RAW_ANB -> DVO_ANB
OMX_VDEC: get-usage: 0xc400030
,但是当使用不使用explayre框架的任何内容(例如vlc)时,** dumpsys SurfaceFlinger就是
SurfaceView - org.videolan.vlc/org.v[...].vlc.gui.video.VideoPlayerActivity#1
4294967294 | Client | 0 0 1280 720 | 0.0 0.0 1920.0 1080.0
h/w composer state:
h/w composer enabled
Video Composer
VSC[0]: type = none(0),
,logcat是OMX_VDEC: update port mode: RAW -> RAW
我什至在运行vlc时在logcat中发现了这一点,这进一步证明了我的理论
OMX_GRALLOC: lock YCbCr
这是一个锁定的色彩空间