chromium视频新框架下player和surfacetexture绑定分析

1.surface和media关联流程

视频mojo surface和mediaplayer绑定流程分析,下面是关于普通播放界面的创建,使用mediaplayer流程

2.SurfaceTexture和layer关联

A.SurfaceTexture通过设置SetFrameAvailableCallback监听类: SurfaceTextureListener 用于监听frame更新的消息,每当有新的视频帧时就会调用.会回调到StreamTexture::OnFrameAvailable-->StreamTextureHost::OnFrameAvailable--->StreamTextureProxy::OnFrameAvailable


B.StreamTextureWrapperImpl类实现StreamTextureWrapper,在MediaPlayerRendererClient初始化StreamTextureWrapperImpl时调用InitializeOnMainThread,最终调用注册StreamTextureProxy::BindToTaskRunner回调,对接步骤A.最终调用到:MediaPlayerRendererClient::OnFrameAvailable


C.该回调即调用到VideoFrameCompositor::PaintSingleFrame,该frame属于创建之初创建.通过VideoFrameProviderClientImpl::DidReceiveFrame最终与VideoLayerImpl::DidDraw这块的cc layer关联


D.上述的都是通过VideoFrame关联,而VideoFrame是通过gpu创建出来的SurfaceTexture关联起来的,通过一个id.至此关联到layer层

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容