纵横比冲突时的AOSP双显示器支持

时间:2019-02-08 14:52:31

标签: android screen android-source hdmi android-hardware

我正在创建一个运行Android的车载信息娱乐(IVI)系统。我正在使用的开发板是96boards.com的Rock960。该板支持双显示输出,这是完美的,因为它需要在驱动器的前面驱动主机(HU)和组合仪表(IC)。这就是问题所在。 HU的分辨率为1920x1080,IC的分辨率为1280x480。输出在两个显示器上均有效,但由于其奇数分辨率,它在IC上显得非常伸展。

SoC是Rockchip的RK3399。这是此板的AOSP页面的链接:https://www.96boards.org/documentation/consumer/rock/build/aosp.md.html

我尝试更改帧缓冲区分辨率:device / rockchip / rk3399 / rk3399_box / system.prop中的persist.sys.framebuffer.main = 1280x480

当我这样做时,IC上的所有内容都可以正确显示,但是HU看起来像拉长了。

这是系统属性文件:

#
# system.prop
#

#rild.libpath=/system/lib/libreference-ril.so
#rild.libargs=-d /dev/ttyUSB2
# Default ecclist
ro.ril.ecclist=112,911
wifi.interface=wlan0
persist.tegra.nvmmlite = 1
persist.sys.boot.check=false
ro.audio.monitorOrientation=true

#NFC
debug.nfc.fw_download=false
debug.nfc.se=false

#add Rockchip properties here
ro.rk.screenoff_time=2147483647
ro.rk.screenshot_enable=true
ro.rk.def_brightness=200
ro.rk.homepage_base=http://www.google.com/webhp?client= 
{CID}&source=android-home
ro.rk.install_non_market_apps=false
sys.hwc.compose_policy=6
sys.wallpaper.rgb565=0
sf.power.control=8847360
sys.rkadb.root=0
ro.sf.fakerotation=false
ro.sf.hwrotation=0
ro.rk.MassStorage=false
ro.rk.systembar.voiceicon=true
ro.rk.systembar.tabletUI=false
ro.rk.LowBatteryBrightness=true
ro.tether.denied=false
sys.resolution.changed=false
ro.default.size=100
persist.sys.timezone=
ro.product.usbfactory=rockchip_usb
ro.support.lossless.bitstream=true
wifi.supplicant_scan_interval=15
ro.factory.tool=0
#set default lcd density for rk3399 box product
ro.sf.lcd_density=213
ro.adb.secure =0
ro.rk.statusbar=0
# set to false if not use displayd
ro.rk.displayd.enable=false

# default main framebuffer resolution
persist.sys.framebuffer.main=1920x1080

# default primary display
sys.hwc.device.primary=DP
sys.hwc.device.extend=HDMI-A

还知道ro.rk.displayd.enable是什么吗?

我希望两个显示器都能根据自己的分辨率正确显示其内容。在任何一个屏幕上,输出都不应拉长或变形。

1 个答案:

答案 0 :(得分:0)

请参见HWComposer.cpp;这应该是primaryexternal-而不是primaryextend(其中extend可能会导致缩放);可能已经回答了这个问题。这些应该在/kernel/drivers/video/rockchip中定义。在源代码中添加更多日志记录可能会帮助您了解设置显示器时的情况。

displayd可能是OSD显示守护程序,因此以d结尾的任何东西通常都是守护程序。如果可以在适当配置内核的情况下使用Android完成此操作,请参见https://developer.android.com/reference/android/app/Presentation

最容易的是ask them(至少与中文手册相比)。