[WebRTC导读] VideoRender 视频渲染类
相關的類 VideoRender,VideoRenderCallback,IncomingVideoStream,VideoRenderDirect3D9,D3D9Channel
VideoRender 本類為rtc提供的用來在某個特定窗口渲染yuv數據的類,本類可以在ios,android,linux,windows上渲染圖像,同時提供了在窗口上繪制文本,設置各種背景圖的功能。
Windows 下 VideoRender 會生成一個 VideoRenderDirect3D9 的實例,這個實例里面包含了多個 D3D9Channel(std::map<int, D3D9Channel*> _d3dChannels),這個通道就繼承自VideoRenderCallback, 這些channel通過流id來區分, AddIncomingRenderStream 會調用CreateChannel創建新的channel
此處涉及到的設計模式和技術點,我會單獨找一篇文章來說明設計模式在webrtc中的應用
- 創建
通過傳入一個窗口的句柄來確認在哪個窗口繪制
- 輸入
AddIncomingRenderStream 通過該方法來獲取輸入渲染窗口的接口,然后調用VideoRenderCallback::RenderFrame方法輸入yuv數據
VideoRenderCallback為繪制圖像的接口,VideoRender中包含一個這樣的接口
class VideoRenderCallback { public:virtual int32_t RenderFrame(const uint32_t streamId,const VideoFrame& videoFrame) = 0; protected:virtual ~VideoRenderCallback() {} };IncomingVideoStream 一個輸入圖像隊列類,只有在VideoReceiveStream中使用最大的功能是通過時間戳排序,它繼承自VideoRenderCallback,每一個VideoRender中都包含一個IncomingVideoStream
歡迎訪問本人的小站 xsnip.cn
總結
以上是生活随笔為你收集整理的[WebRTC导读] VideoRender 视频渲染类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重庆的美食
- 下一篇: 网络渗透测试实验二(网络扫描与网络侦察)