请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于buffer的传递

其实按我之前的理解以及老师的讲述,
我感觉,这个buffer,也就是用于承载绘制内容的一块空间,其实就是个内存空间。

而这个buffer从申请,写入,读取到清空,是怎么在本地app,surfaceFlinger,甚至硬件中(我猜的,也许surfaceFlinger这边就完成了画面的编码了,那硬件就只需要解码了)之间的传递呢。

其实buffer根本没有传递,传递的就是这个内存的地址,或者指向他的具柄,或者序号,总而言之,就是传递了标记而已,压根没传递过这块内存,也不需要传递。

正在回答 回答被采纳积分+3

1回答

风语 2019-05-04 21:58:10

谢谢您的提问,常规的buffer传递方式肯定是不行的,一方面性能不好,另一方面binder的缓冲区也装不下。这里非常巧妙的办法就是只传递了buffer的句柄,到了另一个进程再重新映射一下内存就好了,这样它和原来进程的buffer都能指向相同的物理内存地址。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号