日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT、PMT、SDT详解

發布時間:2024/4/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT、PMT、SDT详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.chinaunix.NET/uid-24322243-id-2620180.html

下面針對解復用程序詳細分析一下PAT,PMT和SDT三類表格的格式.

PAT---Program Association Table,節目關聯表?。PAT表攜帶以下信息:?
(1)?TS流ID--- transport_stream_id,該ID標志唯一的流ID
(2)節目頻道號-- program_number,該號碼標志TS流中的一個頻道,該頻道可以包含很多的節目(即可以包含多個Video PID和Audio PID)
(3)?PMT的PID--- program_map_PID,表示本頻道使用的哪個PID做為PMT的PID,因為可以有很多的頻道,因此DVB規定PMT的PID可以由用戶自己定義.

PAT表定義如下:?各字段含義如下:

table_id:8 bits,標志本表格的類型,應該是0x00

section_syntax_indicator:1 bit,段語法標志,應該是''1'' ''0'':固定的''0'',這是為了防止和ISO13818Video流格式中的控制字沖突而設置的.

Reserved:保留的2bits,保留位一般都是''0''

section_length:12bits的段大小,單位是Bytes.

transport_stream_id:16bits的當前流ID,DVB內唯一.(事實上很多都是自定義的TS ID)version_number:5bits版本號碼,標注當前節目的版本.這是個非常有用的參數,當檢測到這個字段改變時,說明TS流中的節目已經變化?了,程序必須重新搜索節目.

current_next_indicator:1bit:當前還是未來使用標志符,一般情況下為''0''

section_number:8bits當前段號碼

last_section_number:8bits最后段號碼(section_number和?last_section_number的功能是當PAT內容>184字節時,PAT表會分成多個段(sections),解復用程序必須在全部接?收完成后再進行PAT的分析)

for()開始,就是描述了當前流中的頻道數目(N),每一個頻道對應的PMT PID是什么.解復用程序需要和上圖類似的循環來接收所有的頻道號碼和對應的PMT PID,并把這些信息在緩沖區中保存起來.在后部的處理中需要使用到PMT PID.

CRC_32:本段的CRC校驗值,一般是會忽略的.N是一個變量,計算方法是N=(section_length-9)/4.

從以上分析我們可以發現,PAT表主要包含頻道號碼和每一個頻道對應的PMT的PID號碼,這些信息我們在處理PAT表格的時候會保存起來,以后會使用到?這些數據.例如我們可以定義這樣的數據結構保存這些信息:

typedef struct

{

int channel_number;

int pmt_pid;

}PMT_ITEM;

PMT_ITEM pmt[64];

?

PMT, Program Map Table,節目影射表?如果一個TS流中含有多個頻道,
那么就會包含多個PID不同的PMT表.檢測是否PMT的偽代碼如下:
void Process_Packet(unsigned char*buff)
{ int I;

int PID=GETPID(buff);

if(PID==0x0000)

{

Process_PAT(buff+4);

?}

else if(PID==.....)
{ }

else

{ for(i=0;i<64;i++)
{ if(PID==pmt[i].pmt_pid)

{ Process_PMT(buff+4); break; }
} } }
PMT表中包含的數據如下:

(1)?當前頻道中包含的所有Video數據的PID

(2)?當前頻道中包含的所有Audio數據的PID

(3)?和當前頻道關聯在一起的其他數據的PID(如數字廣播,數據通訊等使用的PID)

?

PMT定義如下:?各字段含義如下:

table_id:8bits的ID,應該是0x02

section_syntax_indicator:1bit的段語法標志,應該是''1'' ''0'':固定是''0'',如果不是說明數據有錯.

reserved:2bits保留位,應該是''00''

section_length:16bits段長度,從program_number開始,到CRC_32(包含)的字節總數.?program_number:16bits的頻道號碼,表示當前的PMT關聯到的頻道.換句話就是說,當前描述的是program_number頻道的?信息.

reserved:2bits保留位,應該是''00''

version_number:版本號碼,如果PMT內容有更新,則version_number會遞增1通知解復用程序需要重新接收節目信息,否則?version_number是固定不變的.

current_next_indicator:當前未來標志符,一般是0

section_number:當前段號碼

last_section_number:最后段號碼,含義和PAT中的對應字段相同,請參考PAT部分.?reserved:3bits保留位,一般是''000''.

PCR_PID:13bits的PCR PID,具體請參考ISO13818-1,解復用程序不使用該參數.

reserved:4bits保留位,一般是''0000''

program_info_length:節目信息長度(之后的是N個描述符結構,一般可以忽略掉,這個字段就代表描述符總的長度,單位是Bytes)?緊接著就是頻道內部包含的節目類型和對應的PID號碼了.

stream_type:8bits流類型,標志是Video還是Audio還是其他數據.

reserved:3 bits保留位.

elementary_PID:13bits對應的數據PID號碼(如果stream_type是Video,那么這個PID就是Video PID,如果stream_type標志是Audio,那么這個PID就是Audio PID)

reserved:4 bits保留位.

ES_info_length:和program_info_length類似的信息長度(其后是N2個描述符號)?CRC_32:32bits段末尾是本段的CRC校驗值,一般忽略.

?

從以上的分析可以看出,只要我們處理了PMT,那么我們就可以獲取頻道中所有的PID信息,例如當前頻道包含多少個Video,共多少個Audio,和其?他數據,還能知道每種數據對應的PID分別是什么.?這樣如果我們要選擇其中一個Video和Audio收看,那么只需要把要收看的節目的Video PID和Audio PID保存起來,在處理Packet的時候進行過濾即可實現.?比較全面實現解復用的偽代碼如下:

int Video_PID=0x07e5,Audio_PID=0x07e6;

void Process_Packet(unsigned char*buff)

{ int I; int PID=GETPID(buff);

if(PID==0x0000) { Process_PAT(buff+4); }

else if(PID==Video_PID) { SaveToVideoBuffer(buff+4); }

else if(PID==Audio_PID) { SaveToAudioBuffer(buff+4); }

else

{ for( i=0;i<64;i++)

{ if(PID==pmt[i].pmt_pid) { Process_PMT(buff+4); Break; }

} } }

以上偽代碼可以實現基本的解復用:檢測所有的頻道,檢測所有stream的PID,選擇特定的節目進行播放.只要讀取每個Packet的188字節的內?容,然后每次都調用Process_Packet()即可實現簡單的解復用.?介紹到這里,我們就可以總結一下DVB搜臺的原理了.(好!洗耳恭聽!)?機?頂盒先調整高頻頭到一個固定的頻率(如498MHZ),如果此頻率有數字信號,則COFDM芯片(如MT352)會自動把TS流數據傳送給MPEG- 2 decoder. MPEG-2 decoder先進行數據的同步,也就是等待完整的Packet的到來.然后循環查找是否出現PID== 0x0000的Packet,如果出現了,則馬上進入分析PAT的處理,獲取了所有的PMT的PID.接著循環查找是否出現PMT,如果發現了,則自動進?入PMT分析,獲取該頻段所有的頻道數據并保存.如果沒有發現PAT或者沒有發現PMT,說明該頻段沒有信號,進入下一個頻率掃描.?從以上描述可以看出,機頂盒搜索頻率是隨機發生的,要使每次機頂盒都能搜索到信號,則要求TS流每隔一段時間就發送一?次PAT和PMT.事實上DVB傳輸系統就是這么做的.因此無論何時接入終端系統,系統都能馬上搜索到節目并正確解復用實現播放.不僅僅如此,其他數據也?都是交替傳送的.比如第一個Packet可能是PAT,第二個Packet可能是PMT,而第三個Packet可能是Video 1,第四個Packet可能是Video 2,?只要系統傳輸速度足夠快(就是稱之為"碼率"的東東),實現實時播放是沒有任何問題的.?到這里雖然實現了解復用,但可以看出,使用的PID都是枯燥的數字,如果調臺要用戶自己輸入數字那可是太麻煩了,而且還容易輸入錯?誤,操作非常不直觀,即使做成一個菜單讓用戶選擇也是非常的呆板.針對這個問題,DVB系統提出了一個SDT表格,該表格標志一個節目的名稱,并且能和?PMT中的PID聯系起來,這樣用戶就可以通過直接選擇節目名稱來選擇節目了.

?

SDT, Service description section,服務描述段

SDT可以提供的信息包括:

(1)?該節目是否在播放中

(2)?該節目是否被加密

(3)?該節目的名稱

SDT定義如下:?各字段定義如下:

table_id:8bits的ID,可以是0x42,表示描述的是當前流的信息,也可以是0x46,表示是其他流的信息(EPG使用此參數)

section_syntax_indicator:段語法標志,一般是''1''

reserved_future_used:2bits保留未來使用

reserved:1bit保留位,防止控制字沖突,一般是''0'',也有可能是''1''

section_length:12bits的段長度,單位是Bytes,從transport_stream_id開始,到CRC_32結束(包含)

transport_stream_id:16bits當前描述的流ID

reserved:2bits保留位

version_number:5bits的版本號碼,如果數據更新則此字段遞增1

current_next_indicator:當前未來標志,一般是''0'',表示當前馬上使用.?original_netword_id:16bits的原始網絡ID號

reserved_future_use:8bits保留未來使用位?接下來是N個節目信息的循環:

service_id:16 bits的服務器ID,實際上就是PMT段中的program_number.?reserved_future_used:6bits保留未來使用位

EIT_schedule_flag:1bit的EIT信息,1表示當前流實現了該節目的EIT傳送?EIT_present_following_flag:1bits的EIT信息,1表示當前流實現了該節目的EIT傳送?running_status:3bits的運行狀態信息:1-還未播放?2-幾分鐘后馬上開始,3-被暫停播出,4-正在播放,其他---保留

free_CA_mode:1bits的加密信息,''1''表示該節目被加密.?緊?接著的是描述符,一般是Service descriptor,分析此描述符可以獲取servive_id指定的節目的節目名稱.具體格式請參考?EN300468中的Service descriptor部分.

?

分析完畢,則節目名稱和節目號碼已經聯系起來了.機頂盒程序就可以用這些節目名稱代替?PID讓用戶選擇,從而實現比較友好的用戶界面!?下面參考一下<>中的界面和顯示信息.?上?圖是<>打開三個不同的碼流文件(*.ts)形成的PID信息和節目名稱.用戶?可以通過切換節目名稱的下拉列表框切換節目,也可以通過"視頻流"和"音頻流"下拉列表框切換Video和Audio!這些數據都是通過分析PAT, PMT和SDT得到的.?(轉載自網路)


http://blog.csdn.net/blackboyofsnp/article/details/4665409

// 所有原創文章轉載請注明作者及鏈接
//?blackboycpp(AT)gmail.com
// QQ群: 135202158

對TS流的分析, 涉及到對PAT,PMT等等的分析, 具體內容見iso/iec 13838系列文檔,

本文只給出自己寫的一些和TS分析想關的代碼, 簡單的分析足夠了, 不考慮復雜情況:

?

[cpp]?view plaincopy
  • //??
  • //??
  • //??TS流結構定義??
  • //??
  • //??
  • ??
  • #ifndef?ZZQ_TS_H_??
  • #define?ZZQ_TS_H_??
  • ??
  • #include?<vector>??
  • using?namespace?std;??
  • typedef??unsigned?char??byte;??
  • typedef??unsigned?int???bits;??
  • ??
  • #define??TSPKT_LENGTH??188??
  • ??
  • //-----------------------------------------------------------------------------??
  • //?結構體??
  • //-----------------------------------------------------------------------------??
  • //?TS包構成偽代碼??
  • ??
  • //?TS包頭部??
  • //?WARNING!!!??暫時沒有考慮修改區以及修改區內可選字段的處理??
  • struct?ts_header??
  • {??
  • ????bits??sync_byte????????????????????:?8;??
  • ????bits??transport_error_indicator????:?1;??
  • ????bits??payload_unit_start_indicator?:?1;??
  • ????bits??transport_priority???????????:?1;??
  • ????bits??PID??????????????????????????:?13;??
  • ????bits??transport_scrambling_control?:?2;??
  • ????bits??adaptation_field_control?????:?2;??
  • ????bits??continuity_counter???????????:?4;??
  • };??
  • //?TS包中的修改字段(adaptation?field)??
  • struct?ts_adaptation_field??
  • {??
  • ????bits??adaptation_field_length?:?8;??
  • ????bits??discontinuity_idicator??:?1;??
  • ????bits??random_access_indicator?:?1;??
  • ????bits??elementary_stream_priority_indicator?:?1;??
  • ????bits??flags???????????????????:?5;?//?5?flags??
  • };??
  • ??
  • //?PAT中的可變段??
  • struct?ts_pat_section??
  • {??
  • ????bits??program_number?:?16;??
  • ????bits??reserved???????:?3;??
  • ????bits??PID????????????:?13;??
  • };??
  • typedef?vector<ts_pat_section>??vec_pat_section;??
  • //?PAT表,?P138-PAT的結構,?文檔P61??
  • struct?ts_pat??
  • {??
  • ????bits??table_id?????????????????:?8;??//?0x00??
  • ????bits??section_syntax_indicator?:?1;??//?1??
  • ????bits??zero?????????????????????:?1;??//?0??
  • ????bits??reserved_1???????????????:?2;??//?11??
  • ????bits??section_length???????????:?12;???
  • ????bits??transport_stream_id??????:?16;?//?傳輸數據流識別??
  • ????bits??reserved_2???????????????:?2;??//?"11"??
  • ????bits??version_number???????????:?5;??
  • ????bits??current_next_indicator???:?1;??
  • ????bits??section_number???????????:?8;??
  • ????bits??last_section_number??????:?8;??
  • ????//?....?TODO??
  • ????vec_pat_section?network_section;??
  • ????vec_pat_section?pmt_section;??
  • ????bits??crc32????????????????????:?32;??
  • };??
  • ??
  • //?Stream_type分配表,?P85??
  • #define??ST_Reserved????????0x00?//?ITU-T?|?ISO/IEC?Reserved??
  • #define??ST_VIDEO_1?????????0x01?//?ISO/IEC?11172?Video??
  • #define??ST_VIDEO_2?????????0x02?//?ITU-T?Rec.?H.262?|?ISO/IEC?13818-2?Video?or?ISO/IEC?11172-2?constrained?parameter?video?stream??
  • #define??ST_AUDIO_1?????????0x03?//?ISO/IEC?11172?Audio??
  • #define??ST_AUDIO_2?????????0x04?//?ISO/IEC?13818-3?Audio??
  • #define??ST_PRIVATE_SECTIONS????????0x05?//?ITU-T?Rec.?H.222.0?|?ISO/IEC?13818-1?private_sections??
  • #define??ST_PES_PKT_PRIVATE_DATA????0x06?//?ITU-T?Rec.?H.222.0?|?ISO/IEC?13818-1?PES?packets?containing?private?data??
  • #define??ST_MHEG????????????0x07?//?ISO/IEC?13522?MHEG??
  • #define??ST_DSMCC???????????0x08?//?ITU-T?Rec.?H.222.0?|?ISO/IEC?13818-1?Annex?A?DSM?CC??
  • #define??ST_H2221???????????0x09?//?ITU-T?Rec.?H.222.1??
  • #define??ST_TYPEA???????????0x0A?//?ISO/IEC?13818-6?type?A??
  • #define??ST_TYPEB???????????0x0B?//?ISO/IEC?13818-6?type?B??
  • #define??ST_TYPEC???????????0x0C?//?ISO/IEC?13818-6?type?C??
  • #define??ST_TYPED???????????0x0D?//?ISO/IEC?13818-6?type?D??
  • #define??ST_AUXILIARY???????0x0E?//?ISO/IEC?13818-1?auxiliary??
  • //?0x0F-0x7F:?ITU-T?Rec.?H.222.0?|?ISO/IEC?13818-1?Reserved??
  • //?0x80-0xFF:?User?Private??
  • //?PMT表中的ES段??
  • struct?ts_pmt_es_section??
  • {??
  • ????bits??stream_type??????????????:?8;??
  • ????bits??reserved_1???????????????:?3;??
  • ????bits??elementary_PID???????????:?13;??
  • ????bits??reserved_2???????????????:?4;??
  • ????bits??ES_info_length???????????:?12;??
  • };??
  • typedef?vector<ts_pmt_es_section>??vec_pmt_section;??
  • ??
  • //?PMT表,?書P138?-?PMT的結構??
  • struct?ts_pmt??
  • {??
  • ????bits??table_id?????????????????:?8;??//?0x02??
  • ????bits??section_syntax_indicator?:?1;??//?1??
  • ????bits??zero?????????????????????:?1;??//?0??
  • ????bits??reserved_1???????????????:?2;??//?11??
  • ????bits??section_length???????????:?12;??
  • ????bits??program_number???????????:?16;??
  • ????bits??reserved_2???????????????:?2;??//?11??
  • ????bits??version_number???????????:?5;??
  • ????bits??current_next_indicator???:?1;??
  • ????bits??section_number???????????:?8;??
  • ????bits??last_section_number??????:?8;??
  • ????bits??reserved_3???????????????:?3;??//?111??
  • ????bits??PCR_PID??????????????????:?13;??
  • ????bits??reserved_4???????????????:?4;??//?1111??
  • ????bits??program_info_length??????:?12;??
  • ????vec_pmt_section??es_section;??
  • ????bits??crc32????????????????????:?32;??
  • };??
  • ??
  • //?PES包構成偽代碼??P43??
  • ??
  • ??
  • //?Steam?ID分配表,??文檔P47??
  • #define??SID_PROGRAM_STREAM_MAP?????0xBC??
  • #define??SID_PRIVATE_STREAM_1???????0xBD??
  • #define??SID_PADDING_STREAM?????????0xBE??
  • #define??SID_PRIVATE_STREAM_2???????0xBF??
  • #define??SID_AUDIO_STREAM???????????0xC0?//?110x?xxxx,?stream?number?x?xxxx??
  • #define??SID_VIDEO_STREAM???????????0xE0?//?1110?xxxx,?stream?number?xxxx??
  • #define??SID_ECM_STREAM?????????????0xF0??
  • #define??SID_EMM_STREAM?????????????0xF1??
  • #define??SID_DSMCC_STREAM???????????0xF2??
  • #define??SID_13522_STREAM???????????0xF3??
  • #define??SID_TYPEA??????????????????0xF4??
  • #define??SID_TYPEB??????????????????0xF5??
  • #define??SID_TYPEC??????????????????0xF6??
  • #define??SID_TYPED??????????????????0xF7??
  • #define??SID_TYPEE??????????????????0xF8??
  • #define??SID_ANCILLARY_STREAM???????0xF9??
  • //?1111?1010?~?1111?1110,?reserved?data?stream??
  • #define??SID_PROGRAM_STREAM_DIRECTORY???0xFF??
  • ??
  • //?PES包中的可選包頭部??
  • struct?optional_pes_header??
  • {??
  • ????bits??prefix???????????????????:?2;?//?"10"??
  • ????bits??pes_scrambling_control???:?2;??
  • ????bits??pes_priority?????????????:?1;??
  • ????bits??data_alignment_indicator?:?1;??
  • ????bits??copyright????????????????:?1;??
  • ????bits??original_or_copy?????????:?1;??
  • ????//?7?flags?start??
  • ????bits??PTS_DTS_flags????????????:?2;??
  • ????bits??ESCR_flag????????????????:?1;??
  • ????bits??ES_rate_flag?????????????:?1;??
  • ????bits??DSM_trick_mode_flag??????:?1;??
  • ????bits??additional_copy_info_flag:?1;??
  • ????bits??PES_CRC_flag?????????????:?1;??
  • ????bits??PES_extension_flag???????:?1;??
  • ????//?7?flags?end??
  • ????bits??pes_header_data_length???:?8;??
  • ????//?WARNING!!!?目前只使用?PTS,?DTS??
  • ????bits??PTS_H????????????????????:?3;??//?32..30??
  • ????bits??PTS_M????????????????????:?15;?//?29..15??
  • ????bits??PTS_L????????????????????:?15;?//?14..0??
  • ????bits??DTS_H????????????????????:?3;??//?32..30??
  • ????bits??DTS_M????????????????????:?15;?//?29..15??
  • ????bits??DTS_L????????????????????:?15;?//?14..0??
  • };??
  • ??
  • //?PES包頭部,?文檔P43,?書P131??
  • struct?pes_header??
  • {??
  • ????bits??packet_start_code_prefix?:?24;??
  • ????bits??stream_id????????????????:?8;??
  • ????bits??pes_packet_length????????:?16;??
  • ????//?之后是optional?PES?header,?即任意包頭,?它的有無由stream_id決定??
  • ????bool??ophdr_flag;??
  • ????optional_pes_header?ophdr;??//?如果聲明為指針,?會帶來一些內存問題??
  • ????//byte*??es_data;???//?實際數據指針??
  • ????int???offset;???//?實際數據偏移??
  • ??????
  • ????pes_header()??
  • ????{??
  • ????????ophdr_flag?=?false;??
  • ????????offset?=?-1;??
  • ????}??
  • ????~pes_header()??
  • ????{}??
  • };??
  • ??
  • //-----------------------------------------------------------------------------??
  • //?位段結構調整函數??
  • //-----------------------------------------------------------------------------??
  • int?adjust_ts_header(ts_header*?pkt,?byte*?buff);??
  • int?adjust_ts_pat(ts_pat*?pkt,?byte*?buff);??
  • int?adjust_ts_pmt(ts_pmt*?pkt,?byte*?buff);??
  • int?adjust_ts_pes_header(pes_header*?pkt,?byte*?buff);??
  • __int64??get_pts_from_pes(pes_header&?pkt);??
  • __int64??get_dts_from_pes(pes_header&?pkt);??
  • #endif??
  • ?

    [cpp]?view plaincopy
  • //??
  • //??
  • //??TS流相關函數??
  • //??
  • //??
  • #include?<stdio.h>??
  • #include?"zzq_TS.h"??
  • ??
  • int?adjust_ts_header(ts_header*?pkt,?byte*?buff)??
  • {??
  • ????if(pkt?==?NULL?||?buff?==?NULL)??
  • ????{???return?1;???}??
  • ????pkt->sync_byte?=?buff[0];??
  • ????pkt->transport_error_indicator?=?buff[1]?>>?7;??
  • ????pkt->payload_unit_start_indicator?=?buff[1]?>>?6?&?0x01;??
  • ????pkt->transport_priority?=?buff[1]?>>?5?&?0x01;??
  • ????pkt->PID?=?(buff[1]?&?0x1f)<<8?|?buff[2];??
  • ????pkt->transport_scrambling_control?=?buff[3]?>>?6;??
  • ????pkt->adaptation_field_control?=?buff[3]?>>?4?&?0x03;??
  • ????pkt->continuity_counter?=?buff[3]?&?0x03;??
  • ????return?0;??
  • }??
  • ??
  • int?adjust_ts_pat(ts_pat*?pkt,?byte*?buff)??
  • {??
  • ????if(pkt?==?NULL?||?buff?==?NULL)??
  • ????{???return?1;???}??
  • ????pkt->table_id?=?buff[0];??
  • ????pkt->section_syntax_indicator?=?buff[1]?>>?7;??
  • ????pkt->zero?=?buff[1]?>>?6?&?0x1;??
  • ????pkt->reserved_1?=?buff[1]?>>?4?&?0x3;??
  • ????pkt->section_length?=?(buff[1]?&?0x0f)?<<?8?|?buff[2];??
  • ????pkt->transport_stream_id?=?buff[3]?<<?8?|?buff[4];??
  • ????pkt->reserved_2?=?buff[5]?>>?6;??
  • ????pkt->version_number?=?buff[5]?>>?1?&?0x1f;??
  • ????pkt->current_next_indicator?=?(buff[5]?<<?7)?>>?7;??
  • ????pkt->section_number?=?buff[6];??
  • ????pkt->last_section_number?=?buff[7];??
  • ????//?get?crc32??
  • ????int?len?=?3?+?pkt->section_length;??
  • ????pkt->crc32?=?(buff[len-4]?&?0x000000ff)?<<?24?|??
  • ?????????????????(buff[len-3]?&?0x000000ff)?<<?16?|??
  • ?????????????????(buff[len-2]?&?0x000000ff)?<<?8??|??
  • ?????????????????(buff[len-1]?&?0x000000ff);??
  • ????//?get?variable?section??
  • ????for(int?i=0;?i<pkt->section_length-4-8;?i+=4?)??
  • ????{??
  • ????????ts_pat_section?sec;??
  • ????????sec.program_number?=?buff[8+i]?<<?8?|?buff[9];??
  • ????????sec.reserved?=?buff[10+i]?>>?5;??
  • ????????sec.PID?=?(buff[10+i]?<<?3)?<<?5?|?buff[11+i];??
  • ????????if(sec.program_number?==?0x0)??
  • ????????????pkt->network_section.push_back(sec);??
  • ????????else??
  • ????????????pkt->pmt_section.push_back(sec);??
  • ????}??
  • ????return?0;??
  • }??
  • ??
  • int?adjust_ts_pmt(ts_pmt*?pkt,?byte*?buff)??
  • {??
  • ????if(pkt?==?NULL?||?buff?==?NULL)???
  • ????{???return?1;???}??
  • ????pkt->table_id?=?buff[0];??
  • ????pkt->section_syntax_indicator?=?buff[1]?>>?7;??
  • ????pkt->zero?=?buff[1]?>>?6;??
  • ????pkt->reserved_1?=?buff[1]?>>?4;??
  • ????pkt->section_length?=?(buff[1]?&?0x0f)?<<?8?|?buff[2];??
  • ????pkt->program_number?=?buff[3]?<<?8?|?buff[4];??
  • ????pkt->reserved_2?=?buff[5]?>>?6;??
  • ????pkt->version_number?=?buff[5]?>>?1?&?0x1f;??
  • ????pkt->current_next_indicator?=?(buff[5]?<<?7)?>>?7;??
  • ????pkt->section_number?=?buff[6];??
  • ????pkt->last_section_number?=?buff[7];??
  • ????pkt->reserved_3?=?buff[8]?>>?5;??
  • ????pkt->PCR_PID?=?((buff[8]?<<?8)?|?buff[9])?&?0x1fff;??
  • ????pkt->reserved_4?=?buff[10]?>>?4;??
  • ????pkt->program_info_length?=?(buff[10]?&?0x0f)?<<?8?|?buff[11];??
  • ????//?get?crc32??
  • ????int?len?=?pkt->section_length?+?3;??
  • ????pkt->crc32?=?(buff[len-4]?&?0x000000ff)?<<?24?|??
  • ?????????????????(buff[len-3]?&?0x000000ff)?<<?16?|??
  • ?????????????????(buff[len-2]?&?0x000000ff)?<<?8??|??
  • ?????????????????(buff[len-1]?&?0x000000ff);??
  • ????//?skip?program?description??
  • ????int?pos?=?12?+?pkt->program_info_length;??
  • ????for(?;?pos?<=?(pkt->section_length-4);?pos+=5)??
  • ????{??
  • ????????ts_pmt_es_section?sec;??
  • ????????sec.stream_type?=?buff[pos];??
  • ????????sec.reserved_1?=?buff[pos+1]?>>?5;??
  • ????????sec.elementary_PID?=?((buff[pos+1]?<<?8)?|?buff[pos+2])?&?0x1fff;??
  • ????????sec.ES_info_length?=?(buff[pos+3]?&?0x0f)?<<?8?|?buff[pos+4];??
  • ????????pkt->es_section.push_back(sec);??
  • ????????pos?+=?sec.ES_info_length;??
  • ????}??
  • ????return?0;??
  • }??
  • ??
  • int?adjust_ts_pes_header(pes_header*?pkt,?byte*?buff)??
  • {??
  • ????if(pkt?==?NULL?||?buff?==?NULL)???
  • ????{???return?1;???}??
  • ????//?0000?0000?0000?0000?0000?0001?:?0x000001??
  • ????pkt->packet_start_code_prefix?=?(buff[0]?&?0x0000ff)?<<?16?|??
  • ????????????????????????????????????(buff[1]?&?0x0000ff)?<<?8??|??
  • ????????????????????????????????????(buff[2]?&?0x0000ff);??
  • ????//if(pkt->packet_start_code_prefix?!=?0x000001)??return?2;??
  • ????byte?sid?=?buff[3];?//?aux??
  • ????pkt->stream_id?=?buff[3];??
  • ????pkt->pes_packet_length?=?buff[4]?<<?8?|?buff[5];??
  • ????if(sid?!=?SID_PROGRAM_STREAM_MAP?&&??
  • ???????sid?!=?SID_PADDING_STREAM?&&??
  • ???????sid?!=?SID_PRIVATE_STREAM_2?&&??
  • ???????sid?!=?SID_ECM_STREAM?&&??
  • ???????sid?!=?SID_EMM_STREAM?&&??
  • ???????sid?!=?SID_PROGRAM_STREAM_DIRECTORY?&&??
  • ???????sid?!=?SID_DSMCC_STREAM?&&??
  • ???????sid?!=?SID_TYPEE??
  • ??????)??
  • ????{??
  • ????????pkt->ophdr_flag?=?true;??
  • ????????pkt->ophdr.prefix?=?buff[6]?>>?6;?//?"10"?:?2??
  • ????????//if(pkt->ophdr->prefix?!=?2)?return?2;??
  • ????????pkt->ophdr.pes_scrambling_control?=?buff[6]?>>?4?&?0x03;??
  • ????????pkt->ophdr.pes_priority?=?buff[6]?>>?3?&?0x01;??
  • ????????pkt->ophdr.data_alignment_indicator?=?buff[6]?>>?2?&?0x01;??
  • ????????pkt->ophdr.copyright?=?buff[6]?>>?1?&?0x01;??
  • ????????pkt->ophdr.original_or_copy?=?buff[6]?&?0x01;??
  • ????????pkt->ophdr.PTS_DTS_flags?=?buff[7]?>>?6?&?0x03;??
  • ????????pkt->ophdr.ESCR_flag?=?buff[7]?>>?5?&?0x01;??
  • ????????pkt->ophdr.ES_rate_flag?=?buff[7]?>>?4?&?0x01;??
  • ????????pkt->ophdr.DSM_trick_mode_flag?=?buff[7]?>>?3?&?0x01;??
  • ????????pkt->ophdr.additional_copy_info_flag?=?buff[7]?>>?2?&?0x01;??
  • ????????pkt->ophdr.PES_CRC_flag?=?buff[7]?>>?1?&?0x01;??
  • ????????pkt->ophdr.PES_extension_flag??=?buff[7]?&?0x01;??
  • ????????pkt->ophdr.pes_header_data_length?=?buff[8];??
  • ????????if(pkt->ophdr.PTS_DTS_flags?==?0x2)?//?"10"??
  • ????????{??
  • ????????????//?以下移位操作,?都將各位串靠左對齊??
  • ????????????pkt->ophdr.PTS_H?=?buff[9]?<<?3?&?0xe0;?//?3?bits??
  • ????????????pkt->ophdr.PTS_M?=?(buff[10]?<<?8)?|?(buff[11]?&?0xfe);?//?15?bits??
  • ????????????pkt->ophdr.PTS_L?=?(buff[12]?<<?8)?|?(buff[13]?&?0xfe);?//?15?bits??
  • ????????}??
  • ????????else?if(pkt->ophdr.PTS_DTS_flags?==?0x3)?//?"11"??
  • ????????{??
  • ????????????//?以下移位操作,?都將各位串靠左對齊??
  • ????????????pkt->ophdr.PTS_H?=?buff[9]?<<?3?&?0xe0;?//?3?bits??
  • ????????????pkt->ophdr.PTS_M?=?(buff[10]?<<?8)?|?(buff[11]?&?0xfe);?//?15?bits??
  • ????????????pkt->ophdr.PTS_L?=?(buff[12]?<<?8)?|?(buff[13]?&?0xfe);?//?15?bits??
  • ????????????pkt->ophdr.DTS_H?=?buff[14]?<<?3?&?0xe0;??
  • ????????????pkt->ophdr.DTS_M?=?(buff[15]?<<?8)?|?(buff[16]?&?0xfe);?//?15?bits??
  • ????????????pkt->ophdr.DTS_L?=?(buff[17]?<<?8)?|?(buff[18]?&?0xfe);?//?15?bits??
  • ????????}??
  • ????????//??
  • ????????//??ESCR,?ES_rate之類的目前不處理??
  • ????????//?6?+?3:?(24+8+16)?+?(2+2+1+1+1+1+8+8)??
  • ????????pkt->offset?=?6?+?3?+?pkt->ophdr.pes_header_data_length;??
  • ????}??
  • ????else?if(sid?==?SID_PROGRAM_STREAM_MAP?||??
  • ????????????sid?==?SID_PRIVATE_STREAM_2?||??
  • ????????????sid?==?SID_ECM_STREAM?||??
  • ????????????sid?==?SID_EMM_STREAM?||??
  • ????????????sid?==?SID_PROGRAM_STREAM_DIRECTORY?||??
  • ????????????sid?==?SID_DSMCC_STREAM?||??
  • ????????????sid?==?SID_TYPEE??
  • ???????????)??
  • ????{??
  • ????????pkt->offset?=?6;??
  • ????}??
  • ????else?if(sid?==?SID_PADDING_STREAM)??
  • ????{??
  • ????????pkt->offset?=?-1;??
  • ????}??
  • ??????
  • ????return?0;??
  • }??
  • ??
  • __int64??get_pts_from_pes(pes_header&?pkt)??
  • {??
  • ????if(pkt.ophdr_flag?==?false)?return?-1;??
  • ????if(pkt.ophdr.PTS_DTS_flags?!=?0x2?&&?pkt.ophdr.PTS_DTS_flags?!=?0x3)??
  • ????????return?-1;??
  • ????__int64?H?=?0,?M?=?0,?L?=?0;??
  • ????L?=?pkt.ophdr.PTS_L?>>?1?|?pkt.ophdr.PTS_M?<<?14;??
  • ????M?=?pkt.ophdr.PTS_M?>>?2?|?pkt.ophdr.PTS_H?<<?13;??
  • ????L?=?pkt.ophdr.PTS_H?>>?3;??
  • ????return?(H<<32)?|?(M<<16)?|?L;??
  • }??
  • __int64??get_dts_from_pes(pes_header&?pkt)??
  • {??
  • ????if(pkt.ophdr_flag?==?false)?return?-1;??
  • ????if(pkt.ophdr.PTS_DTS_flags?!=?0x3)??
  • ????????return?-1;??
  • ????__int64?H?=?0,?M?=?0,?L?=?0;??
  • ????L?=?pkt.ophdr.DTS_L?>>?1?|?pkt.ophdr.DTS_M?<<?14;??
  • ????M?=?pkt.ophdr.DTS_M?>>?2?|?pkt.ophdr.DTS_H?<<?13;??
  • ????L?=?pkt.ophdr.DTS_H?>>?3;??
  • ????return?(H<<32)?|?(M<<16)?|?L;??
  • }?
  • 總結

    以上是生活随笔為你收集整理的PAT、PMT、SDT详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    日韩欧美高清在线 | 天天在线免费视频 | 久久国产免 | 在线视频18在线视频4k | 91成人在线观看高潮 | 色.www | 天天艹天天爽 | 国产理论一区二区三区 | 久久午夜精品 | 久久99久久99精品免视看婷婷 | 日本性xxxxx 亚洲精品午夜久久久 | 色九九视频 | av不卡网站 | 婷婷丁香五 | 国产96在线视频 | 亚州精品一二三区 | 中文字幕人成人 | 特级黄色一级 | av片在线看| 中文字幕日韩一区二区三区不卡 | 伊人伊成久久人综合网站 | 日韩av一区二区三区四区 | 国产精品久久久久四虎 | 国产精品久久久久久久久久久久久久 | 亚洲传媒在线 | 97香蕉久久超级碰碰高清版 | 欧美影院久久 | 在线精品亚洲一区二区 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 麻豆久久久久久久 | 成人网在线免费视频 | 日日干天天操 | 色资源网免费观看视频 | 4p变态网欧美系列 | 亚洲国产精品va在线看黑人动漫 | 久久视频在线观看免费 | 久久久久久久久久电影 | 在线亚洲人成电影网站色www | 成人少妇影院yyyy | 天天激情综合 | 成人av动漫在线观看 | 999在线视频| 最近中文字幕高清字幕免费mv | 国产色中涩 | 亚洲jizzjizz日本少妇 | 久久精品5 | 国产免费又黄又爽 | 五月婷影院 | 久久经典视频 | 欧美日韩天堂 | 77国产精品 | 成人国产精品一区二区 | 亚洲久草网 | 91av视屏 | 欧美成人aa | 色噜噜噜噜 | 欧美日韩国产精品一区二区亚洲 | 国产精品99久久久久久宅男 | 黄网站色视频 | 亚洲成人黄色在线观看 | 九九热视频在线 | 久草免费资源 | 国产日韩在线看 | 精品一区二区免费在线观看 | 国产精品嫩草影视久久久 | 欧美日韩在线观看不卡 | 日韩色中色| 亚洲精品午夜国产va久久成人 | 亚洲日本韩国一区二区 | 麻豆一区在线观看 | 亚一亚二国产专区 | 欧美一级片在线观看视频 | 久久国产精品精品国产色婷婷 | 一区二区三区中文字幕在线 | 日韩中文字幕91 | 日韩av在线不卡 | 亚洲午夜久久久影院 | 日韩在线观看一区二区三区 | a天堂最新版中文在线地址 久久99久久精品国产 | 国产 日韩 在线 亚洲 字幕 中文 | 午夜婷婷在线观看 | 成人免费色 | www.夜夜操.com | 天天操天天射天天爱 | 99精品欧美一区二区三区 | 国产精品一区二区三区99 | 久久免费视频网站 | 免费亚洲精品视频 | 日本护士三级少妇三级999 | 亚洲狠狠| 精品一区二区综合 | 亚洲午夜久久久久久久久久久 | 91精品国产综合久久婷婷香蕉 | 91精品影视 | 精品久久精品 | 天天色婷婷 | 四虎影视8848aamm | 日韩视频一区二区三区在线播放免费观看 | 免费在线观看成人 | 色中文字幕在线观看 | 亚洲国产wwwccc36天堂 | 色播99| 亚洲精品视频在线观看视频 | 国产精品亚洲片在线播放 | 国产在线精品观看 | 久久精品国产美女 | 在线视频观看你懂的 | 精品乱码一区二区三四区 | 九九热视频在线免费观看 | 69久久夜色精品国产69 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 精品视频在线免费观看 | 91porny九色在线播放 | 色五月激情五月 | 久久成人免费视频 | 国产看片网站 | 国产乱对白刺激视频在线观看女王 | 91最新中文字幕 | 久草精品在线观看 | av福利在线导航 | 国产精品18久久久久久久久 | 成人福利在线观看 | 99免费在线播放99久久免费 | 欧美色伊人 | 国产精品久久久一区二区三区网站 | 四虎永久免费 | 亚洲高清视频一区二区三区 | 91大神精品视频 | 在线观看日韩av | 夜夜躁狠狠躁日日躁视频黑人 | 五月婷在线播放 | 九月婷婷色 | 天天操天天弄 | 一区二区三区在线视频111 | 久久九九久久 | 91热视频 | 美女黄频网站 | 亚洲国产剧情av | 国产午夜精品免费一区二区三区视频 | 91精品久久久久久久久 | 99色在线播放 | 99精品色| 日韩精品电影在线播放 | av在线h | 少妇bbr搡bbb搡bbb | 欧美日韩在线精品 | 国产精品乱码久久久久久1区2区 | 中文字幕在线有码 | 人人草人人做 | 日韩欧美极品 | 国产精品va最新国产精品视频 | 69精品人人人人 | 精品在线你懂的 | 丝袜美腿在线播放 | 成年人免费在线看 | 手机在线欧美 | 亚洲欧美国产日韩在线观看 | 久久免费资源 | 欧美激情视频在线观看免费 | 99久久精品国产系列 | 毛片美女网站 | 久久精品亚洲一区二区三区观看模式 | 99精品国产在热久久下载 | 亚洲最大免费成人网 | 99热这里只有精品8 久久综合毛片 | 亚洲一级理论片 | 亚洲精品美女久久久 | 视频一区在线免费观看 | av电影免费在线 | 色wwww| 国产一区二区精品 | 国产真实精品久久二三区 | 综合精品在线 | 午夜精品麻豆 | 97人人模人人爽人人少妇 | 欧美 激情 国产 91 在线 | 成人欧美在线 | 天天干天天干天天 | 成人免费ⅴa | 欧美一级特黄高清视频 | 天堂va在线高清一区 | 日本精品久久久一区二区三区 | 视频国产精品 | 天天色婷婷 | 在线国产日韩 | 亚洲精品综合一区二区 | 热久久影视| 激情伊人五月天 | 91九色在线视频 | 国产精品久久久久久久久费观看 | 日本超碰在线 | 国产美女黄网站免费 | 日韩av不卡在线 | 欧美一级免费 | 国产成人精品日本亚洲999 | 午夜性生活 | 亚洲精品久久久蜜臀下载官网 | 午夜电影久久久 | 91麻豆精品国产91久久久更新时间 | 99热这里只有精品8 久久综合毛片 | 女人18毛片a级毛片一区二区 | 国产成人免费在线 | 国产精品免费久久 | 午夜精品久久久久久99热明星 | 亚洲人成综合 | 午夜免费久久看 | 91少妇精拍在线播放 | 国产精品一区二区在线免费观看 | 狠狠干 狠狠操 | 免费观看成人av | 日韩电影精品 | 草久热| 很黄很黄的网站免费的 | 欧美无极色 | 久久久久女人精品毛片九一 | 久免费视频 | 99在线视频播放 | 一区二区三区四区在线 | 日本3级在线观看 | 500部大龄熟乱视频 欧美日本三级 | 国产女做a爱免费视频 | 亚洲午夜精品一区二区三区电影院 | 欧洲高潮三级做爰 | 美女视频黄频大全免费 | 99c视频高清免费观看 | 精品国内自产拍在线观看视频 | 深爱激情综合网 | 深夜免费网站 | 久久激情久久 | 欧美久久综合 | 成人网看片 | 日本性生活免费看 | 91av免费看| 天天爽夜夜爽精品视频婷婷 | 国产视| 在线天堂亚洲 | 黄色三级免费 | 国产一区二区日本 | 中文字幕免费一区二区 | 欧美日韩一区三区 | 午夜视频在线观看一区二区三区 | 69xx视频| 久久国产三级 | 久久国产品 | 国产在线观看,日本 | 欧美五月婷婷 | 日韩精品视频在线免费观看 | 日韩成人免费电影 | 欧美精品第一 | 999成人 | 中文字幕在线观看网站 | 狠狠狠色狠狠色综合 | 日本精品视频免费 | 中文字幕一区二区三区四区久久 | 人人添人人澡 | 天天色天天搞 | 免费合欢视频成人app | 久久婷婷久久 | 成人在线观看资源 | 超级碰视频 | 亚洲国产精品久久 | japanesexxxhd奶水 国产一区二区在线免费观看 | 亚洲污视频 | 久久国产精品免费一区二区三区 | 六月激情婷婷 | 精品国产综合区久久久久久 | 亚洲视频网站在线观看 | 夜夜躁日日躁 | 国产精品久久久久毛片大屁完整版 | 国产色就色| 五月开心婷婷网 | 四虎国产精品成人免费影视 | 成人免费观看完整版电影 | 日韩av视屏在线观看 | 久久久黄色免费网站 | 欧美日韩视频观看 | 中文字幕亚洲精品日韩 | 久久精品五月 | 国产中文字幕视频在线 | 国产视频日本 | 三级黄色a | 五月婷婷另类国产 | 91成人在线网站 | 中文字幕永久 | 婷婷网站天天婷婷网站 | 国产小视频免费在线观看 | 亚洲国产精品久久久久久 | 精品一区二区三区电影 | 国产第一页精品 | 久久精品毛片 | 日韩欧美有码在线 | 成人av电影免费在线观看 | 国产精品视频在线看 | 国产精品一区二区三区久久 | 国产韩国日本高清视频 | 免费在线观看成人av | 美州a亚洲一视本频v色道 | 黄色大片中国 | 超碰在线成人 | 福利一区在线 | 色天天综合网 | 色婷婷影视 | av黄色av| 国产精品美女久久久久久久 | 国产视频资源在线观看 | 亚洲成人频道 | 99久久婷婷 | 国产精品涩涩屋www在线观看 | 亚洲天天在线日亚洲洲精 | 色综合久久88色综合天天6 | 中文字幕在线观看视频免费 | 99精品国产免费久久久久久下载 | 东方av在线免费观看 | 国产手机av在线 | 免费91在线观看 | 欧美va天堂va视频va在线 | 久99久精品| 日日碰狠狠躁久久躁综合网 | 97精品国产97久久久久久久久久久久 | 久久不射电影网 | 天天操天天操天天操天天操天天操天天操 | www狠狠| 亚洲国产视频a | 1000部国产精品成人观看 | 美女久久| 日日碰狠狠躁久久躁综合网 | 天天操夜夜操夜夜操 | 欧美午夜理伦三级在线观看 | 精品一区二区三区久久 | www.夜夜夜| 黄网在线免费观看 | 亚洲成人av影片 | 欧洲精品视频一区二区 | 国产成人久久精品77777 | zzijzzij亚洲日本少妇熟睡 | 91av视频在线观看 | 99久久精品无码一区二区毛片 | 久久久在线免费观看 | 97免费在线视频 | 日本在线观看中文字幕 | 婷婷久月 | 亚洲婷婷网 | 国产精品a级 | 欧美一二三区在线观看 | 婷婷综合网 | 人人草在线观看 | 最新av免费在线观看 | 日韩欧美一区二区在线观看 | 精品一区在线 | 国产成人av片| 久久国产免 | 日批视频在线播放 | 一个色综合网站 | 久久久色 | 大荫蒂欧美视频另类xxxx | 日韩网 | 天天干天天看 | 胖bbbb搡bbbb擦bbbb| 精品在线一区二区三区 | 美女很黄免费网站 | 午夜成人免费影院 | 手机av资源 | 狠狠地日 | www毛片com| 极品久久久久久久 | 久久无码精品一区二区三区 | 久久婷婷精品视频 | 久久女同性恋中文字幕 | 美女av在线免费 | 黄色网址中文字幕 | 日韩av线观看 | 999成人精品 | 中文字幕乱视频 | 色视频在线免费 | 免费黄色a级毛片 | 国产成人精品一区二区三区 | 在线一二三四区 | 婷婷色五 | 久久综合狠狠综合久久激情 | 国产拍揄自揄精品视频麻豆 | 成年人免费电影在线观看 | 国产91精品欧美 | 深爱五月激情五月 | 国产又黄又爽无遮挡 | 99在线视频精品 | 久久99精品国产 | 欧美一区二区免费在线观看 | 亚洲一区二区三区miaa149 | 国产精品久久视频 | 亚洲 欧洲 国产 日本 综合 | 激情文学综合丁香 | 精品视频免费在线 | 日韩免费一区二区 | 亚洲精品视频中文字幕 | 日韩欧美在线免费观看 | 成人啊 v| 视频91在线 | 亚洲精品理论 | 亚洲国产美女精品久久久久∴ | 一区中文字幕电影 | 欧美国产亚洲精品久久久8v | 伊人资源视频在线 | 天天操天天色天天 | 激情婷婷av | 久久免费视频播放 | 久久精品首页 | 人人视频网站 | 亚洲五月婷 | 天堂av在线网 | 亚洲成人av在线播放 | 丁香av| 91丨九色丨高潮 | 国产视频美女 | 久久久影视 | 日本中文字幕网站 | 最新精品视频在线 | 欧美地下肉体性派对 | 麻豆传媒视频在线播放 | 五月的婷婷| 91亚洲精品乱码久久久久久蜜桃 | 五月天综合网站 | 91在线最新 | 在线中文字幕一区二区 | 欧美国产视频在线 | 久久8精品 | 亚洲欧美精品在线 | 国产在线观看污片 | 69成人在线| 五月婷婷综| 久久伊99综合婷婷久久伊 | 伊人色**天天综合婷婷 | 精品国产大片 | 色综合久久久久久中文网 | 婷婷激情综合网 | 亚洲国产日韩欧美 | 日韩欧美在线高清 | 国产精品日韩久久久久 | 成人禁用看黄a在线 | 免费网站黄| 99精品在线直播 | 国产日韩欧美在线播放 | 亚洲综合欧美精品电影 | 毛片网站免费在线观看 | wwwwww黄 | 久久香蕉国产精品麻豆粉嫩av | avhd高清在线谜片 | 午夜精品99久久免费 | 在线观看中文 | 超碰伊人网 | 久久精品国产99国产 | 亚洲伦理一区二区 | 最新国产精品拍自在线播放 | 亚洲婷婷伊人 | 久草在线免费资源站 | 激情综合站 | 久久在线视频在线 | 91一区一区三区 | 手机在线看片日韩 | 久久久久久久久久久网站 | 久草电影免费在线观看 | 久久久久久中文字幕 | 麻豆国产电影 | 久久久久成人免费 | 99视频精品全部免费 在线 | 九九99视频 | 国产精品美女999 | 国产91免费在线 | 国产成人黄色 | 欧美一级视频免费看 | 91视频com| 欧美一级乱黄 | 干狠狠| 久久这里只有精品首页 | 午夜视频久久久 | 国内精品视频在线播放 | 国产视频日韩 | 久久久性| 免费看黄电影 | 亚洲九九九 | 开心激情网五月天 | 亚洲国产精品久久久久婷婷884 | a黄色 | 国产精品久久精品 | 国产精品久久 | 亚洲精品视频在线观看网站 | 中文字幕成人在线观看 | 二区在线播放 | 国产精品久久久久一区二区 | www.天天综合| 亚洲精品tv久久久久久久久久 | av免费观看高清 | 午夜精品久久久久久久久久久久久久 | 国产在线综合视频 | 99热精品在线 | 天天射天天拍 | www在线观看视频 | 亚洲涩涩色 | 高潮久久久久久 | 久久人人爽人人爽人人 | 久久试看 | 亚洲国产精品99久久久久久久久 | av怡红院| 亚洲高清在线视频 | 激情综合网婷婷 | 夜夜操综合网 | 成人国产精品久久久春色 | 久久婷婷丁香 | 国产91精品高清一区二区三区 | 欧美激情精品一区 | 蜜臀av夜夜澡人人爽人人桃色 | 天天综合精品 | 久久午夜影院 | 久久精品9| 午夜男人影院 | 亚洲 欧洲av| 激情久久综合网 | 国产亚洲精品久久久久久久久久 | 国产一区二区三区在线 | 免费看搞黄视频网站 | www.久艹 | 日韩三级视频 | av在观看 | 色多多在线观看 | 日韩免费一区 | 国产午夜不卡 | 激情婷婷亚洲 | 国产在线高清视频 | 9在线观看免费高清完整版在线观看明 | 狠狠色婷婷丁香六月 | 亚洲精品在线观看av | 69夜色精品国产69乱 | 在线观看一级片 | 色婷婷激情综合 | 免费精品国产va自在自线 | 日韩大片免费在线观看 | 亚洲jizzjizz日本少妇 | a午夜电影| 在线蜜桃视频 | 国产精品免费高清 | 精品网站999www | 国产麻豆精品一区 | 国产精品久久久久aaaa九色 | 激情av资源| 999国产精品视频 | 99精品国产一区二区三区麻豆 | 久久理论电影网 | 国产精品久久久毛片 | 久久看免费视频 | 伊人电影在线观看 | 亚洲国产一区av | 毛片网站观看 | 91高清一区| 亚洲国产精品99久久久久久久久 | 在线观看国产永久免费视频 | 欧美一级大片在线观看 | 日韩久久网站 | 97在线公开视频 | 在线观看免费av网站 | 日韩免费电影一区二区三区 | 就操操久久| 99久热精品 | 日韩91av| 人人澡人人爽 | 深爱开心激情 | 国内视频1区 | www.黄色小说.com | 亚洲香蕉在线观看 | 啪啪午夜免费 | 国内精品久久久久影院一蜜桃 | 成人av在线亚洲 | 天天干天天草天天爽 | 亚洲成人午夜在线 | 亚洲精品视频国产 | 精品久久久久久久久久久院品网 | 欧美精品三级 | 久久手机免费视频 | 美女国内精品自产拍在线播放 | 国产只有精品 | 免费福利视频网站 | 亚洲最大免费成人网 | 久久99这里只有精品 | 日韩欧美一区二区在线播放 | 国产精品va在线观看入 | 91九色蝌蚪视频在线 | 久久免费福利视频 | 国产成人精品一区二 | 日韩美在线观看 | 麻豆激情电影 | 国产视频一区在线免费观看 | 亚洲在线综合 | 久久亚洲视频 | 五月天久久精品 | 91成人精品一区在线播放69 | 色偷偷97 | 99久久精品一区二区成人 | 激情欧美日韩一区二区 | 欧美a√大片 | 国产无吗一区二区三区在线欢 | 天天色天天干天天 | 亚洲精品中文字幕在线 | 国产成人一区二区在线观看 | 久久伊人国产精品 | 高清久久久久久 | 一区二区视频免费在线观看 | 久久综合欧美 | 亚州国产视频 | 国产老妇av | 人人插人人艹 | 国产精品k频道 | 99久热在线精品 | 黄色av成人在线 | 日日日日日 | 九九免费在线观看视频 | 国产九九九九九 | 亚洲精品动漫久久久久 | 国产69久久久欧美一级 | 成人日批视频 | 中文字幕日本特黄aa毛片 | 亚洲成人精品在线观看 | 激情伊人五月天 | 亚洲另类视频在线观看 | 亚洲人成精品久久久久 | 91精品国产99久久久久久红楼 | 色国产精品 | 成人av网页| 最近中文字幕完整视频高清1 | 国产精品9区 | 午夜精品一区二区三区在线播放 | 美女视频黄免费网站 | 人人爽久久涩噜噜噜网站 | 亚洲精品18p | 五月婷在线观看 | 免费久久视频 | 亚洲欧美日韩国产精品一区午夜 | 蜜桃视频成人在线观看 | 国产精品激情偷乱一区二区∴ | 久久久久久久久久久黄色 | 精品国内自产拍在线观看视频 | 久久国产精品99久久人人澡 | 免费观看视频的网站 | 国产精品久久网站 | 久久久久免费精品国产小说色大师 | 九色免费视频 | 日本三级在线观看中文字 | 国产91免费看 | 一区二区 精品 | 欧美另类一二三四区 | 亚洲成成品网站 | 亚洲免费国产视频 | 国产精品不卡在线观看 | 五月婷久 | 成人va在线观看 | 国产91影视 | 国产91国语对白在线 | 国产综合福利在线 | 国产精品中文久久久久久久 | 国产在线97 | 中文字幕国产精品 | 在线观看亚洲免费视频 | 精品久久久久久久久久 | 免费欧美高清视频 | 欧美激情精品 | 国产成人久久精品一区二区三区 | 亚洲色图27p | www中文在线 | 成片人卡1卡2卡3手机免费看 | 免费人做人爱www的视 | 婷婷五月色综合 | 91久久奴性调教 | 天堂网av在线 | 看国产黄色片 | 色av色av色av | 精品国产一区二区三区久久影院 | 欧美精品xx| 欧美日韩二区在线 | 日韩网页 | 色综合久久88色综合天天人守婷 | 日韩欧美在线免费 | 久久综合综合久久综合 | 国产主播大尺度精品福利免费 | 欧美激情综合色综合啪啪五月 | 日韩av黄 | 最新亚洲视频 | 欧美日韩免费在线观看视频 | 在线视频免费观看 | 中国一级片在线播放 | 色综合五月 | 成人午夜网址 | 国产亚洲婷婷免费 | 国产一区二区电影在线观看 | 狠狠干狠狠艹 | 亚洲资源网 | 久草在线在线 | 狠狠成人| 中文字幕免费观看 | 国产一级做a爱片久久毛片a | www.久热| 午夜精品区| 亚洲精品白浆高清久久久久久 | 人人爱人人做人人爽 | 精品91久久久久 | 中文成人字幕 | 中文字幕高清在线 | 日本中文在线 | 日韩理论在线播放 | 狠狠色丁香婷婷综合橹88 | 午夜黄色大片 | 中文字幕在线观看免费 | 成人午夜精品久久久久久久3d | 日韩av线观看 | 国产成人精品午夜在线播放 | 99精品国产一区二区 | 成年在线观看 | 精品国产理论 | 亚洲一级国产 | 亚洲精品综合一二三区在线观看 | 久草在线综合 | 国产精品一区二区三区在线看 | 日韩精品中文字幕在线观看 | 天天在线视频色 | 国产1级视频 | 亚洲精品小视频 | 丁香婷婷色月天 | 国产精品第一视频 | av在线看网站 | 青草视频网 | 日日干天天射 | 久草精品视频在线播放 | 亚洲视频免费在线观看 | 九九免费在线观看视频 | 少妇性bbb搡bbb爽爽爽欧美 | 欧美伦理电影一区二区 | 欧美日韩精品电影 | www.久久免费 | 2023年中文无字幕文字 | 精品久久久久久电影 | 欧美午夜视频在线 | 色九九视频 | 99精品视频在线播放免费 | 天天操天天操天天操天天 | 亚洲一区二区麻豆 | 精品久久99 | 色黄www小说 | 亚洲九九| 三级黄色片在线观看 | 国产在线精品区 | 超碰在线cao | 91成版人在线观看入口 | 日韩精品久久中文字幕 | 亚洲免费视频在线观看 | 国产精品欧美久久久久天天影视 | 久久精品视频中文字幕 | 日韩av二区 | 韩国在线一区二区 | 亚洲精品黄网站 | 日韩精品一区二区三区免费观看视频 | 九九久久在线看 | 久久精品这里都是精品 | 黄色大片免费网站 | 国产精品网红直播 | www天天操 | 色综合婷婷 | 亚洲粉嫩av | 久久免费视频在线观看 | 久久精品久久99精品久久 | 国产资源中文字幕 | 五月婷婷综合激情 | 国产精品成人国产乱 | 九草视频在线 | 中文字幕在线视频一区 | 粉嫩av一区二区三区四区在线观看 | 久久久免费播放 | 成人黄色小说视频 | 日日操天天操狠狠操 | 国产精品一区二区吃奶在线观看 | 久久福利影视 | 欧美成人精品欧美一级乱黄 | 国产成人黄色在线 | 欧美在线观看视频 | 精品久久国产一区 | 日本午夜在线亚洲.国产 | 狠狠干狠狠色 | 日本久久不卡视频 | 在线看片视频 | 色香蕉在线视频 | 超碰九九 | 久久久电影 | 丁香激情视频 | 国产人成一区二区三区影院 | 国产免费精彩视频 | 精品一区精品二区 | 少妇啪啪av入口 | 九九九九九国产 | 色婷婷成人网 | 亚洲国产精品激情在线观看 | 91久久精品日日躁夜夜躁国产 | 狠狠躁日日躁狂躁夜夜躁av | 久久久久精 | 免费看搞黄视频网站 | 在线观看小视频 | 玖玖在线精品 | 国内一级片在线观看 | 欧洲色综合 | 亚洲一区视频在线播放 | 不卡国产在线 | 国产精品白浆视频 | 亚洲特级片| 婷婷成人综合 | 国产日韩欧美在线观看视频 | 91成人精品一区在线播放69 | 日韩特级黄色片 | 91黄色免费网站 | 免费在线观看a v | 日韩精品在线免费播放 | 亚洲国产中文字幕在线视频综合 | 超碰公开在线观看 | 亚洲日本在线视频观看 | 91九色在线播放 | 日韩在线不卡视频 | 国产精品精品久久久 | 色成人亚洲 | 久草视频在线看 | 亚洲清纯国产 | 国产综合香蕉五月婷在线 | 国产精品国产三级国产专区53 | 天天干,夜夜操 | 成人h视频| 97精品国产97久久久久久免费 | 国产视频1 | 在线观看91精品国产网站 | av 在线观看 | 天天草天天干天天 | 在线亚州 | 天天色天天色天天色 | av官网| 在线看欧美| 色国产精品 | 久久精品一区 | 综合色伊人 | 日韩一区二区三 | 国产精品一区二区av影院萌芽 | 四虎精品成人免费网站 | 亚洲成人av电影在线 | 久久国产精品小视频 | 亚洲不卡123 | 亚洲视频久久久久 | 免费观看91视频大全 | 国产精品99久久久久 | 缴情综合网五月天 | 日韩激情第一页 | 中文字幕视频一区 | 日韩av一区二区在线 | 免费av在 | 久久精品高清视频 | 欧美精品久久久久久久 | 久久国产精品系列 | 欧美一区二区三区四区夜夜大片 | 中文资源在线观看 | 久久精品专区 | 日韩精品视频免费专区在线播放 | 中文字幕色播 | 国产91精品看黄网站在线观看动漫 | 九九在线免费视频 | 亚洲午夜精品在线观看 | 蜜臀av性久久久久av蜜臀妖精 | 五月婷婷六月丁香 | 在线看的毛片 | 亚洲精品永久免费视频 | 91 在线视频播放 | 欧洲精品亚洲精品 | 黄色大片网 | 天堂中文在线播放 | 天天干天天碰 | 日日婷婷夜日日天干 | 在线中文字幕播放 | 成人高清av在线 | 成人免费xxxxxx视频 | 久久久久女教师免费一区 | 精品国产精品国产偷麻豆 | 久久精品精品电影网 | 国产一区二区三区高清播放 | 久久久久国产一区二区三区 | 成人97视频一区二区 | 午夜精品一区二区三区视频免费看 | 片黄色毛片黄色毛片 | 精品国产一区二区三区男人吃奶 | 亚洲欧美视频 | 中文字幕日本在线观看 | 欧美一级片免费 | 久草在线久草在线2 | 99一级片| 国产一级大片免费看 | 国产免费一区二区三区最新6 | 国产第一页福利影院 | 99久久99热这里只有精品 | 福利视频在线看 | 特级aaa毛片| 97看片吧| 日本久久久久 | 欧美analxxxx | 国产精品美女在线 | 亚洲精品自拍 | 人人舔人人干 | 色中色亚洲 | 久久久久久久久黄色 | 久久久久久久久久网站 | 亚洲精品成人在线 | 国产精品99久久久久久久久 | 婷婷av色综合 | 久久久一本精品99久久精品66 | 欧洲精品码一区二区三区免费看 | 成年人看片 | av中文字幕在线电影 | 99在线观看 | 久久久久国产精品免费 | 五月天婷婷免费视频 | 人人草网站 | 男女激情网址 | 天天操天天操天天操 | 综合黄色网 | 字幕网资源站中文字幕 | 开心激情网五月天 | 91人人揉日日捏人人看 | 日韩视频免费播放 | 96av麻豆蜜桃一区二区 | 日韩欧美一区二区三区黑寡妇 | 久久激五月天综合精品 | 久久亚洲精品国产亚洲老地址 | 不卡的av电影在线观看 | 黄色亚洲在线 | 成人午夜影院在线观看 | 婷婷av网 | 久久亚洲欧美日韩精品专区 | av成人免费在线看 | 亚洲精品乱码久久久久 | 91中文字幕在线播放 | 成人h动漫在线看 | 亚州免费视频 | 超碰在线成人 | 中文字幕日韩国产 | 色悠悠久久综合 | 亚洲国产日韩av | 久久99精品国产99久久 | 粉嫩av一区二区三区入口 | 欧美一区日韩一区 | 久久综合婷婷国产二区高清 | 国产精品久久久久国产精品日日 | 日韩最新理论电影 | 亚洲精品国产成人av在线 | 正在播放亚洲精品 | 麻豆免费在线视频 | 久久久精品电影 | av高清一区 | 九九久 | 成人欧美一区二区三区在线观看 | 成年人免费在线观看 | av线上看| 国产一级片免费视频 | 精品国产电影一区二区 | 日韩精品视频免费 | 五月婷婷综合在线观看 | 午夜视频在线观看一区二区三区 | www激情久久 | 777xxx欧美| 麻豆视频在线免费 | 热久久国产 | 欧美日韩中字 | 日本精a在线观看 | 免费看短 | 国产精品专区h在线观看 | 天天做天天爱夜夜爽 | 亚洲视频在线观看 | 亚洲亚洲精品在线观看 | 国产精品一区久久久久 | www.91国产| 成年人黄色免费看 | 国产精品久久久久久高潮 | 久视频在线| 国产 日韩 欧美 中文 在线播放 | 日本公乱妇视频 | 91精品国产高清自在线观看 | av免费观看网站 | 久久久www成人免费毛片麻豆 | 国产一区福利 | 国产三级视频在线 | 国产精品 999 | 男女视频国产 | 久久精品欧美日韩精品 | 精品一区二区在线播放 | 国产九色91 | 激情综合电影网 | 国产成人精品一区二区三区福利 | 500部大龄熟乱视频使用方法 | 日韩国产精品毛片 | 91在线精品播放 | 亚洲一区视频免费观看 | 欧美日韩精品在线观看视频 | 欧美在线观看视频免费 |