Android Graphics 显示系统 - 解读Source Crop和Display Frame(三二)

本文探讨了Android图形显示系统中的SourceCrop和DisplayFrame在处理显示问题中的作用,涉及画面位置/大小异常和裁剪问题的分析方法,以及它们如何影响最终的屏幕呈现。
摘要由CSDN通过智能技术生成

“ 假设你手里有一张足够大的白纸,请你把它对折51次。想象一下,它会有多高?1米?2米?其实,这个厚度超过了地球和太阳之间的距离!人生亦如此,不用心去投资,它不过是51张白纸的简单堆叠而已;一旦用心去规划投资,它就像不断对折51次的白纸,越积越高,高到超乎我们的想象!

01

前言

为了展示效果,我写了简单的Demo来做演示,感兴趣的到 文末获取demo源码

我们工作中经常遇到两类BUG:

一类是画面显示位置、大小异常

比如下面这张图,我屏幕的分辨率是3840x2160,播放一个1920x1080的视频,画面显示的位置大小不符合预期

图片

dumpsys SurfaceFlinger,可以看到

图片

一类是画面显示不全,似乎被裁剪

比如下面这张图,我屏幕的分辨率是3840x2160,播放一个1920x1080的视频。画面虽然全屏显示了,但是画面被裁剪了,内容显示不全

图片

dumpsys SurfaceFlinger,可以看到

图片

以上两类问题在分析时,就是要先透过dumpsys SurfaceFlinger信息来看看display frame 和 source crop是不是有异常,而且这两个信息通常是上层设置下来给SurfaceFlinger及HWC来控制显示属性的。

当然如果display frame 和 source crop没有设置错误但显示画面异常,那很可能是SF or HWC处理有问题了。

02

Source Crop和Display Frame

大概可以用下面这张图来释义:

图片

图像的原始数据(RGB/YUV等格式)会存放到GraphicBuffer中,就暂且称之为原始图像吧。

Source Crop

阅读原文

Android Graphics 显示系统 - 解读Source Crop和Display Frame((三二)

关注公众号获取更多Android Graphics相关内容

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值