webrtc部分視頻類

編碼類相關(guān)

通過(guò)VideoEngineImpl分別繼承 ViEBaseImpl,ViECodecImpl抠忘,ViECaptureImpl婴谱,ViERenderImpl等來(lái)實(shí)現(xiàn)所有繼承的類思犁。
編碼部分在ViECodecImpl分支车份,調(diào)用ViEEncoder的實(shí)例,ViEEncoder類中調(diào)用VideoCodingModule實(shí)例灿意,VideoCodingModule調(diào)用VideoSender實(shí)例估灿,而VideoSender調(diào)用VCMGenericEncoder實(shí)例,VCMGenericEncoder調(diào)用VideoEncoder實(shí)例缤剧。
而VideoEncoder實(shí)例為H264Encoder實(shí)例馅袁、VP9Encoder實(shí)例、VP8Encoder實(shí)例中的一個(gè)荒辕,這些類又分別對(duì)應(yīng)自己的實(shí)現(xiàn)類司顿,在其中實(shí)現(xiàn)具體的編碼器芒粹。

編碼相關(guān)類

在VideoEngine類中

VideoEngine* VideoEngine::Create() {
return new VideoEngineImpl(new Config(), true /* owns_config */);
}

所以,創(chuàng)建視頻相關(guān)所有對(duì)象的方法如下:

_videoEngine = VideoEngine::Create();
_vieBase = ViEBase::GetInterface(_videoEngine);
_vieCapture = ViECapture::GetInterface(_videoEngine);
_vieRTPRTCP = ViERTP_RTCP::GetInterface(_videoEngine);
_vieRender = ViERender::GetInterface(_videoEngine);
_vieCodec = ViECodec::GetInterface(_videoEngine);
_vieNetwork = ViENetwork::GetInterface(_videoEngine);
_vieFile=ViEFile::GetInterface(_videoEngine);
_vieImageProc = ViEImageProcess::GetInterface(_videoEngine);

采集到編碼

VideoCaptureAndroid.java 的 onPreviewFrame()大溜,調(diào)用ProvideCameraFrame()。
video_capture_android.cc文件中int32_t VideoCaptureAndroid::OnIncomingFrame()估脆,調(diào)用int32_t VideoCaptureAndroid::OnIncomingFrame()钦奋,調(diào)用IncomingFrame()。
video_capture_impl.cc 文件中 int32_t VideoCaptureImpl::IncomingFrame()疙赠,調(diào)用int32_t VideoCaptureImpl::DeliverCapturedFrame()付材,調(diào)用void ViECapturer::OnIncomingCapturedFrame()。
bool ViECapturer::ViECaptureProcess()函數(shù)中處理capture_event_圃阳,當(dāng)有新的幀來(lái)時(shí)厌衔,則觸發(fā)事件。
調(diào)用void ViECapturer::DeliverI420Frame()捍岳,做一些色彩等方面的前處理富寿。
調(diào)用void ViEFrameProviderBase::DeliverFrame(),這里分別對(duì)應(yīng)render和encoder锣夹,即將視頻幀分別給到渲染和編碼器页徐。
對(duì)于編碼器:調(diào)用void ViEEncoder::DeliverFrame(),會(huì)做丟幀和重采樣的處理银萍,后面調(diào)用流程從上圖中可以清晰看清楚变勇。
對(duì)于渲染:調(diào)用void ViERenderer::DeliverFrame(),后面與ViEEncoder及以后類似贴唇。

onPreviewFrame()
->int32_t VideoCaptureAndroid::OnIncomingFrame()
->int32_t VideoCaptureAndroid::OnIncomingFrame()
-> int32_t VideoCaptureImpl::IncomingFrame()
->int32_t VideoCaptureImpl::DeliverCapturedFrame()
->void ViECapturer::OnIncomingCapturedFrame()
|||||
->bool ViECapturer::ViECaptureProcess()
->void ViECapturer::DeliverI420Frame()
->void ViEFrameProviderBase::DeliverFrame()
->void ViEEncoder::DeliverFrame()或者void ViERenderer::DeliverFrame()

對(duì)于ViEEncoder::DeliverFrame()之后:

int32_t AddVideoFrame()
->int32_t VideoSender::AddVideoFrame //有丟幀處理
->int32_t VCMGenericEncoder::Encode()
->int H264EncoderImpl::Encode()


類似音頻相關(guān)介紹:

http://www.reibang.com/p/e88aec0d1de1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搀绣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子戳气,更是在濱河造成了極大的恐慌链患,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件物咳,死亡現(xiàn)場(chǎng)離奇詭異锣险,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)览闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)芯肤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人压鉴,你說(shuō)我怎么就攤上這事崖咨。” “怎么了油吭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵击蹲,是天一觀的道長(zhǎng)署拟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)歌豺,這世上最難降的妖魔是什么推穷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮类咧,結(jié)果婚禮上馒铃,老公的妹妹穿的比我還像新娘。我一直安慰自己痕惋,他們只是感情好区宇,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著值戳,像睡著了一般议谷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堕虹,一...
    開(kāi)封第一講書(shū)人閱讀 50,043評(píng)論 1 291
  • 那天卧晓,我揣著相機(jī)與錄音,去河邊找鬼鲫凶。 笑死禀崖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的螟炫。 我是一名探鬼主播波附,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昼钻!你這毒婦竟也來(lái)了掸屡?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤然评,失蹤者是張志新(化名)和其女友劉穎仅财,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體碗淌,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏求,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亿眠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碎罚。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纳像,靈堂內(nèi)的尸體忽然破棺而出荆烈,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布憔购,位于F島的核電站宫峦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏玫鸟。R本人自食惡果不足惜导绷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屎飘。 院中可真熱鬧诵次,春花似錦、人聲如沸枚碗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肮雨。三九已至,卻和暖如春箱玷,著一層夾襖步出監(jiān)牢的瞬間怨规,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工锡足, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留波丰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓舶得,卻偏偏與公主長(zhǎng)得像掰烟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐批,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程纫骑,因...
    小菜c閱讀 6,375評(píng)論 0 17
  • 我們常常會(huì)聽(tīng)說(shuō) Objective-C 是一門(mén)動(dòng)態(tài)語(yǔ)言,那么這個(gè)「動(dòng)態(tài)」表現(xiàn)在哪呢九孩?我想最主要的表現(xiàn)就是 Obje...
    Ethan_Struggle閱讀 2,186評(píng)論 0 7
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法先馆,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法躺彬,繼承相關(guān)的語(yǔ)法煤墙,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,602評(píng)論 18 399
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理宪拥,服務(wù)發(fā)現(xiàn)仿野,斷路器,智...
    卡卡羅2017閱讀 134,637評(píng)論 18 139
  • 原創(chuàng)日記(213)2017.09.21 晴 日記記錄我生活的婆婆媽媽江解。 幸福生活黑茶永相伴设预! 早上起來(lái)就開(kāi)始收拾,...
    黑金公主閱讀 361評(píng)論 0 0