vlc學習計畫(6) 網路資料流接收處理過程分析

2021-03-31 11:24:42 字數 2338 閱讀 2251

網路資料流接收處理分析 1、

在input.c(src/input)

檔案中的主線程迴圈

thread in charge of processing the ***work packets and demultiplexing

runthread( input_thread_t *p_input )

2、在下列函式中:

分離出

access , demux , name

字串;

根據分離出的

access

字串通過

module_need

函式找到

acess

指標模組;

根據分離出的

demux

字串通過

module_need

函式找到

demux

指標模組;

static int initthread( input_thread_t * p_input )

3、在

ps.c (module/demux/mpeg)

檔案中

a.通過訊息對映巨集賦值啟動函式

activate;

b.通過函式

activate

賦值p_input->pf_demux = demux;

c.

通過函式

module_need( p_input, "mpeg-system", null, 0 )

啟用p_input->p_demux_data->mpeg.pf_read_ps( p_input, &p_data )

函式(pf_read_ps);

d.

在initthread

函式中啟用;

static int activate( vlc_object_t * p_this )

4、在

system.c (module/demux/mpeg)

檔案中

賦值解碼模組

mpeg_demux_t的成員函式;

static

int activate ( vlc_object_t *p_this )

;

mpeg_demux.cur_scr_time = -1;

memcpy( p_this->p_private, &mpeg_demux, sizeof( mpeg_demux ) );

return vlc_success;

}

並且申明函式static

ssize_t readps( input_thread_t * p_input, data_packet_t ** pp_data );

5、在

ps.c (module/demux/mpeg)

檔案中

demux( input_thread_t * p_input )

進行讀取資料和分離工作; 6、

在system.c (module/demux/mpeg)

檔案中

資料走向圖如下

readps-> peek-> input_peek(src/input/input_ext-plugins.c)->

input_fillbuffert 通過 i_ret = p_input->pf_read( p_input,

(byte_t *)p_buf + sizeof(data_buffer_t)

+ i_remains,

p_input->i_bufsize );

input_thread_t結構的pf_read函式成員如果是為udp.c(modules/access)的rtpchoose函式

則在開啟access(udp 模組)時通過module_need 啟用;

啟用網路讀資料模組 rtpchoose(modules/access/ udp.c)->read->***_read(src/misc/***.c);

7、

在input_programs.c(src/input)

檔案中

執行解碼器對

es流解碼

int input_selectes( input_thread_t * p_input, es_descriptor_t * p_es )

input_selectes(

src/input/input_programs.c

)->input_rundecoder

(src/input/input_dec.c

)->decoderthread->decoderdecode ->vout_displaypicture

vlc學習計畫(5) 網路資料流接收處理過程分析

網路資料流接收處理分析 1 在input.c src input 檔案中的主線程迴圈 thread in charge of processing the network packets and demultiplexing runthread input thread t p input init...

bzoj2132 網路流 最小割 圈地計畫

description 最近房地產商gdoi group of dumbbells or idiots 從noi nuts old idiots 手中得到了一塊開發土地。據了解,這塊土地是一塊矩形的區域,可以縱橫劃分為n m塊小區域。gdoi要求將這些區域分為商業區和工業區來開發。根 據不同的地形環...

Vue再學習6 網路訪問框架

已經停止維護了,作者推薦使用axios。所以就不做過多講解了。1 安裝依賴 npm install vue resource 2 載入外掛程式 mport vuereaource from vue resource vue.use vuereaource 最基本的使用,因為我這裡跨網域名稱訪問,所以...