webrtc 源碼結構

api
WebRTC 接口層。包括 DataChannel, MediaStream, SDP相關的接口。各瀏覽器都是通過該接口層調用的 WebRTC。
call
存放的是 WebRTC “呼叫(Call)” 相關邏輯層的代碼。
audio
存放音頻網絡邏輯層相關的代碼。音頻數據邏輯上的發送,接收等代碼。
video
存放視頻邏輯層及視頻引擎層的相關的代碼。視頻數據邏輯上的發送,接收等代碼。
視頻引擎層就是指如何控制視頻采集,處理和編解碼操作的邏輯。
sdk
存放了 Android 和 IOS 層代碼。如視頻的采集,渲染代碼都在這里。
pc
存放一些業務邏輯層的代碼。如 channel, session等。
common_audio
存放一些音頻的基本算法。包括環形隊列,博利葉算法,濾波器等。
common_video
存放了視頻算法相關的常用工具,如libyuv, sps/pps分析器,I420緩沖器等。
modules
這個目錄是 WebRTC 代碼中最重要的一個目錄。里面包括了音視頻的采集,處理,編解碼器,混音等。
modules 目錄下還包括以下幾個子目錄:
audio_coding : 音頻編解碼相關代碼。
audio_conference_mixer : 會議混音相關代碼。
audio_device : 音頻采集與音頻播放相關代碼。
audio_mixer : 混音相關代碼,這部分是后加的。
audio_processing : 音頻前后處理的相關代碼。
bitrate_controller : 碼率控制相關代碼。
congestion_controller : 流控相關的代碼。
desktop_capture : 桌面采集相關的代碼。
media_file : 播放媒體文件相關的代碼。
pacing : 碼率探測相關的代碼。
remote_bitrate_estimator : 遠端碼率估算相關的代碼。
rtp_rtcp : rtp/rtcp協議相關代碼。
video_capture : 視頻采集相關的代碼。
video_coding : 視頻編解碼相關的代碼。
video_processing : 視頻前后處理相關的代碼。
media
存放媒體相關的代碼。
p2p
p2p相關的代碼。
rtc_base
存放了一些基礎代碼。如線程,事件,socket等相關的代碼。
rtc_tools
存放了一些工具代碼。如視頻幀比較,I420轉RGB,視頻幀分析。
stats
存放各種數據統計相關的類。
libjingle
網絡庫。
system_wrapper
與操作系統相關的代碼,如 CPU特性,原子操作,讀寫鎖,時鐘等。

轉載于:https://www.cnblogs.com/elesos/p/9854684.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450911.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450911.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450911.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql查詢流程解析及重要知識總結

時光荏苒啊!在過兩個月我就工作滿三年了,大學畢業的情景還歷歷在目,而我已經默默的向油膩中年大叔進發了。作為一名苦逼的后端工程師,我搞過一段時間python,現在靠java糊口,但后來才發現,始終不…

界面無小事(八):RecyclerView增刪item

界面無小事(一): RecyclerViewCardView了解一下 界面無小事(二): 讓RecyclerView展示更多不同視圖 界面無小事(三):用RecyclerView Toolbar做個文件選擇器 界面無小事(四):來寫個滾動選擇器吧! 界面無小事(五):自定義TextView 界面無小事(六):來做個好看得側拉菜單! 界面無小事…

Failed to install Tomcat7 service 解決

見: http://blog.csdn.net/desow/article/details/21446197 tomcat 安裝時出現 Failed to install Tomcat7 service 今天在安裝tomcat時提示 Failed to install Tomcat7 service了,花了大半天的時間找到了原因,下面分享給大家,希望…

保守官僚 諾基亞就這樣迷失在智能機時代?

7月19日,諾基亞發布了二季度財報,凈虧損達到了17億美元,其中智能手機份額和銷售量進一步下滑,這個智能手機的領導者,正在因智能手機而急速墜落。諾記亞領先業界近十年就把握住了智能手機的趨勢,并推出了首款…

django集成ansibe實現自動化

動態生成主機列表和相關參數 def create_admin_domain(admin_node):workpath BASE_DIR /tools/ansible/scripthosts_file BASE_DIR /tools/ansible/host/ createhostfile()yml_file BASE_DIR /tools/ansible/yml/ create_admin_domain.ymldomain_path admin_node.doma…

extend 對象繼承

function extend(o, n, override) {for (var p in n) {if (n.hasOwnProperty(p) && (!o.hasOwnProperty(p) || override))o[p] n[p];} }// 默認參數 var options {pageIndex: 1,pageTotal: 2 };// 新設置參數 var userOptions {pageIndex: 3,pageSize: 10 }extend(o…

【spring容器啟動】之bean的實例化和初始化(文末附:spring循環依賴原理)

本次我們通過源碼介紹ApplicationContext容器初始化流程,主要介紹容器內bean的實例化和初始化過程。ApplicationContext是Spring推出的先進Ioc容器,它繼承了舊版本Ioc容器BeanFactory,并進一步擴展了容器的功能,增加了bean的自動識…

如何將自己的Java項目部署到外網

見:http://jingyan.baidu.com/article/90bc8fc864699af653640cf7.html 做b/s模式的web開發不同于c/s模式的客戶端開發,c/s模式我們只要做好生成可執行文件發送給其他人,其他人就可以用了。但是c/s模式不同,在同一局域網下&#xf…

[Swift]LeetCode916.單詞子集 | Word Subsets

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號:山青詠芝(shanqingyongzhi)?博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)?GitHub地址&a…

揭秘騰訊研究院輸出策略:產品和人才的孵化器

直到現在,騰訊研究院創始人鄭全戰仍堅持面試招入研究院的每一個人,并做詳細記錄。天賦上的靈性、性格中的包容是他看重的,當然首先人要踏實。大約6年前,鄭全戰加入騰訊,負責籌建中國互聯網公司中的第一個研究院&#x…

java后端必會【基礎知識點】

(一)java集合類(done) 在java集合類中最常用的是Collection和Map的接口實現類。Collection又分為List和Set兩類接口,List的實現類有ArrayList、LinkedList、Vector、Stack,Set接口的實現類有HashSet、Tree…

無法連接虛擬設備ide1:0,主機上沒有相對應的設備... 解決

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 運行虛擬機出現報錯: 無法連接虛擬設備ide1:0,主機上沒有相對應的設備,您 要在每次開啟此虛擬機時都…

繳滿15年能領多少錢 養老金計算公式網上瘋傳

社保人員稱我省計算方式與各設區市平均工資掛鉤,與網上不同 最近,關于“延遲退休”引起各方高度關注,成為廣大居民十分關心的話題。是否延遲退休尚無定論,但在網上有不少關于養老金的計算。那網上流傳的計算方法是否科學&#xff…

48_并發編程-線程-資源共享/鎖

一、數據共享多個線程內部有自己的數據棧,數據不共享;全局變量在多個線程之間是共享的。1 # 線程數據共享不安全加鎖2 3 import time4 from threading import Thread, Lock5 6 7 num 1008 9 def func(t_lock): 10 global num 11 t_lock.acquire…

移動硬盤提示無法訪問設備硬件出現致命錯誤,導致請求失敗的資料尋回方案

J盤打不開設備硬件出現致命錯誤,導致請求失敗,是因為這個I盤的文件系統內部結構損壞導致的。要恢復里面的數據就必須要注意,這個盤不能格式化,否則數據會進一步損壞。具體的恢復方法看正文 工具/軟件:星空數據恢復軟件 步驟1&…

VMware10上新建虛擬機步驟圖解

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 第一種 : 自定義方式: 安裝虛擬機的過程步驟,基本上過程的每一步都有截圖,跟著過程就可以很容易的創…

怎么理解 IaaS、SaaS 和 PaaS 的區別?

原文鏈接:怎么理解 IaaS、SaaS 和 PaaS 的區別? 一、定義層面的區別 SaaS、PaaS、IaaS簡單的說都屬于云計算服務,也就是云計算服務。我們對于云計算的概念,維基百科有以下定義: Cloud computing is a new form of In…

三星“打法”:先模仿對手 再吃掉對手

臺灣地區電子業者將三星視為“臺灣公敵”,事實上,它幾乎是全球電子業者的敵人。 這家韓國電子業巨頭十年之間奪取了日本企業在這一領域中縱橫30年的榮光,更是建立起了令人嘆為觀止的垂直整合帝國。 韓國政府的大力支持、日元升值韓元貶值等均…

SharpZipLib 壓縮ZIP導出

1      var uploadSectionDir Path.Combine("Upload", "QQ", DateTime.Now.ToString("yyyyMMdd"));2 string uploadDir Path.Combine(HttpRuntime.AppDomainAppPath, uploadSectionDir);3 if (!Directory.Exi…

java動態調用c++庫

前言 最近在做一個通過java程序調用c動態語言庫,在網上百度,谷歌找了諸多例子,還是屢試不爽。經過一番折騰還是披荊斬棘,創出一條道路。希望分享給正在迷茫的朋友們... 使用的環境 spring boot gradle JNI介紹 JNI全拼是Java Nat…