2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、關(guān)于 關(guān)于 TS 流的解析 流的解析 TS 即是“Transport Stream“的縮寫(xiě)。他是分包發(fā)送的,每一個(gè)包長(zhǎng)為 188 字節(jié)。在 TS 流里可以填入很多類型的數(shù)據(jù), 如視頻、 音頻、 自定義信息等。 他的包的結(jié)構(gòu)為, 包頭為 4 個(gè)字節(jié), 負(fù)載為 184 個(gè)字節(jié) (這184 個(gè)字節(jié)不一定都是有效數(shù)據(jù),有一些可能為填充數(shù)據(jù)) 。 工作形式: 因?yàn)樵?TS 流里可以填入很多種東西, 所以有必要有一種機(jī)制來(lái)確定怎么來(lái)標(biāo)識(shí)這些數(shù)據(jù)。

2、 制定 TS 流標(biāo)準(zhǔn)的機(jī)構(gòu)就規(guī)定了一些數(shù)據(jù)結(jié)構(gòu)來(lái)定義。比如: PSI(Program Specific Information)表,所以解析起來(lái)就像這樣: 先接收一個(gè)負(fù)載里為 PAT 的數(shù)據(jù)包,在整個(gè)數(shù)據(jù)包里找到一個(gè) PMT 包的 ID。然后再接收一個(gè)含有 PMT 的數(shù)據(jù)包,在這個(gè)數(shù)據(jù)包里找到有關(guān)填入數(shù)據(jù)類型的 ID。之后就在接收到的 TS 包里找含有這個(gè) ID 的負(fù)載內(nèi)容,這個(gè)內(nèi)容就是填入的信息。根據(jù)填入的數(shù)據(jù)類型的 ID 的不同,在

3、 TS 流復(fù)合多種信息是可行的。關(guān)鍵就是找到標(biāo)識(shí)的 ID 號(hào)。 現(xiàn)在以一個(gè)例子來(lái)說(shuō)明具體的操作: 在開(kāi)始之前先給出一片實(shí)際 TS 流例子: 0000f32ch: 47 40 00 17 00 00 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...? 0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚0000f34ch

4、: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f35ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f36ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f37ch: FF FF FF FF FF FF FF FF FF FF FF FF

5、 FF FF FF FF ; 0000f38ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f39ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3ach: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3bch: FF FF FF FF

6、 FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3cch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3dch: FF FF FF FF FF FF FF FF FF FF FF FF 47 40 20 17 ; G@ . 0000f3ech: 00 02 B0 1B 00 01 C1 00 00 E0 21 F0 00 1B

7、E0 21 ; ..?..?.??.? 0000f3fch: F0 04 2A 02 7E 1F 03 E0 22 F0 00 5D 16 BD 48 ; ?*.~..??].紿 具體的分析就以這個(gè)例子來(lái)分析。 // Adjust TS packet header void adjust_TS_packet_header(TS_packet_header* pheader) { unsigned char buf[4]; mem

8、cpy(buf, pheader, 4); pheader->transport_error_indicator = buf[1] >> 7; pheader->payload_unit_start_indicator = buf[1] >> 6 pheader->transport_priority = buf[1] >> 5

9、pheader->PID = (buf[1] pheader->adaption_field_control = buf[3] >> 4 pheader->continuity_counter = buf[3] } 這是一個(gè)調(diào)整 TS 流數(shù)據(jù)包頭的函數(shù), 這里牽扯到位段調(diào)整的問(wèn)題。 現(xiàn)在看一下

10、TS 流數(shù)據(jù)包頭的結(jié)構(gòu)的定義: 再給出 PAT 表字段調(diào)整函數(shù): // Adjust PAT table void adjust_PAT_table ( TS_PAT * packet, char * buffer ) { int n = 0, i = 0; int len = 0; packet->table_id = buffer[0]; packet->section_syntax

11、_indicator = buffer[1] >> 7; packet->zero = buffer[1] >> 6 packet->reserved_1 = buffer[1] >> 4 packet->section_length = (buffer[1]

12、 packet->version_number = buffer[5] >> 1 packet->current_next_indicator = (buffer[5] > 7; packet->section_number = buffer[6]; packet->last_section_number

13、 = buffer[7]; // Get CRC_32 len = 3 + packet->section_length; packet->CRC_32 = (buffer[len-4] n ++ ) { packet->program_number = buffer[8] reserved_3 = buffer

14、[10] >> 5; if ( packet->program_number == 0x0 ) packet->network_PID = (buffer[10] program_map_PID = (buffer[10] << 3) << 5 | buffer[11]; } n += 5; } } 通過(guò)上面的分析,例子中的數(shù)據(jù) 00 B0 0D 00 01 C1 00 00 00

15、 01 E0 20 A2 C3 29 41 就是具體的PAT 表的內(nèi)容,然后根據(jù) PAT 結(jié)構(gòu)體來(lái)具體分析 PAT 表。但是我們需要注意的是在 PAT 表里有program_number、network_PID 的元素不只有一個(gè),這兩個(gè)元素是通過(guò)循環(huán)來(lái)確定的。循環(huán)的次數(shù)通過(guò) section_length 元素的確定。在這個(gè)例子中 program_map_PID 為 20,所以下面來(lái) PMT 分析時(shí),就是查找 47 40 20 的開(kāi)頭的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論