1. 程式人生 > >邏輯頻道號---DVB NIT LCN

邏輯頻道號---DVB NIT LCN

lcd alt class logic 展開 結構 ans .com 技術分享

先介紹NIT,NIT描述如下:   技術分享   支持的描述符如下:   技術分享 LCN存在於NIT表中,描述符TAG=0x83,不過version2.0 好像TAG=0x87,並且語法結構也做了修改。   描述符基本結構如下:
logical_channel_desciptor
    {
        descriptor_tag             //8bit , 0x83
        descriptor_length        // =8bit
        for(i=0;i<N;i++)
        {

        service_id              //16bit  對應PMT的program_number
visible_service_flag //1bit reserved //5bit logical_channel_number //10bit } }

不同版本的LCN差異體現在logical_channel_number比特位的不同,NORDIG-Unified_ver_2.1版本中LCD V1的描述子結構為:

    logical_channel_desciptor

    {
        descriptor_tag             //8bit , 0x83
        descriptor_length        //
=8bit for(i=0;i<N;i++) { service_id //16bit    對應PMT表的program_number visible_service_flag //1bit reserved //1bit logical_channel_number //14bit } }
  當然,還有其他描述,此處不一一列舉。以上兩種TAG是一樣的,都是0x83   下面看一張,帶LCN的實例Svt_1.ts,這是一張NIT表,LCN就在transport_streams裏,展開如下   找到transport_descriptors裏的descriptor_tag==0x83 這個描述的就是LCN   把descriptor_data 數據放大:leng為32字節如下:   03 f2 c0 01 13 c4 c0 02 03 66 c0 62 11 a8 40 00 11 9e 40 00 11 c6 40 00 14 32 c0 63 03 70 c0 61
  根據描述符的基本結構如下:一個LCN應該占4字節32bit 那麽就根據結構來分析一下吧:這裏的N==8 在分析之前,看看它的PAT表吧 根據PAT可以看出總共8個節目
1. 03 f2 c0 01   service_id //16bit 是 03 f2 這個不正好是上面的program_number=0x03f2嗎   visible_service_flag//1bit 1   reserved //5bit   logical_channel_number//10bit LCN = 0x001 2.13 c4 c0 02   service_id //16bit 是 13 c4 這個不正好是上面的program_number=0x13c4嗎   visible_service_flag//1bit 1   reserved //5bit   logical_channel_number//10bit LCN = 0x002 3.03 66 c0 62   service_id //16bit 是 03 66 這個不正好是上面的program_number=0x0366嗎   visible_service_flag//1bit 1   reserved //5bit   logical_channel_number//10bit LCN = 0x062 4. 11 a8 40 00   service_id //16bit 是 11 a8 這個好像沒有0x11a8這個臺,所以LCN也沒有,可能也正常吧   visible_service_flag//1bit 0 難道visible_service_flag 可以控制是否有臺?   reserved //5bit   logical_channel_number//10bit LCN = 0x0
5. 11 9e 40 00   service_id //16bit 是 11 9e 這個好像沒有0x11 9e這個臺,所以LCN也沒有,可能也正常吧   visible_service_flag//1bit 0   reserved //5bit   logical_channel_number//10bit LCN = 0x0
6. 11 c6 40 00   service_id //16bit 是 11 c6 這個不正好是上面的program_number=0x11 c6嗎   visible_service_flag//1bit 0 但是這個臺RTK沒有搜到   reserved //5bit   logical_channel_number//10bit LCN = 0x0 7. 14 32 c0 63   service_id //16bit 是 14 32 這個不正好是上面的program_number=0x14 32嗎   visible_service_flag//1bit 1   reserved //5bit   logical_channel_number//10bit LCN = 0x63 8. 03 70 c0 61   service_id //16bit 是 03 70 這個不正好是上面的program_number=0x03 70嗎   visible_service_flag//1bit 1   reserved //5bit   logical_channel_number//10bit LCN = 0x61 例如泰國的LCN,註意一下幾點:   1、泰國LCN,original_network_id = 0x22fc,標識泰國運營商的流。   2、NIT descriptor_tag = 0x83,為LCN描述符,DVB標準。   3、LCN描述符中的service_id=program_number(PAT/PMT),以此對應LCN是與哪一個節目關聯。   4、不是每個國家都要求LCN,但要求LCN的國家規則不一定相同     如符合“0x22fc”則為泰國運營商,LCN分布在1-800,否則分布為800+LCN   5、排序:LCN開關為“ON”,則按LCN排序,否則為“OFF”按program_number排序。      技術分享

  技術分享

LCN的國家及頻道表:

技術分享

技術分享

邏輯頻道號---DVB NIT LCN