EPG详解

    技术2022-05-20  34

    做EPG都是4年前的事情了,现在忘得也差不多了,趁在还没有完全忘记之前,写下点东西,备份一下。

     

     

    EIT:

    TableID:0x4E (EIT actual, present/following)             当前/后续

    TableID:0x4F (EIT other, present/following)              当前/后续

    TableID:0X50-0X5F(EIT actual, schedule)               时间表

    TableID:0X60-0X6F(EIT other,  schedule)               时间表

     

     EIT section结构说明:

    event_infotmation_section()

    {

    table_id                         8 uimsbf

    section_syntax_indicator         1 bslbf

    reserved_future_use              1 bslbf

    reserved                         2 bslbf

    section_length                   12 uimsbf

    service_id                       16 uimsbf

    reserved                         2 bslbf

    version_number                   5 uimsbf

    current_next_indicator           1 bslbf

    section_number                   8 uimsbf

    last_section_number            8 uimsbf

    transport_stream_id              16 uimsbf

    original_network_id              16 uimsbf

    segment_last_section_number      8 uimsbf

    last_table_id                    8 uimsbf

    for(i=0;i<N;i++)

    {

    event_id                    16 uimsbf

    start_time                  40 bslbf

    duration                    24 uimsbf

    running_status              3 uimsbf

    free_CA_mode                1 bslbf

    descriptors_loop_length     12 uimsbf

    for(j=0;j<N;j++)

    descriptor()

    }

    CRC_32                           32 rpchof

    }

     

    EIT P/F

    VOD节目,每个节目将有两个分段(section)用于描述当前/后续事件信息

    Section_number=0x00的分段用于描述当前时间信息,

    section_number=0x01的分段用于描述后续信息。

    即使没有当前或者后续事件存在时,我们也要传送Section_number=0x00 section_number=0x01EIT P/F空分段。

     

     

    EIT SCH

    1EIT时间表分布于16table_id,0x50-0x5f用于实际流,0x60-0x6f用于其他流。

    2)由于用8BIT表示section_number,所以一个子表最多可以用256section,而这些section又被划分为32segment,于是每个segment包含8section.

    3)每个segment包含有关3小时内任何时间点开始的时间信息。

    4)每个子表最多可传输32 * 3 = 96h = 4 day,最多有16张子表,于是16 * 4 = 64 day.所以EPG最多可包含64天的时间表,具体看网络中的实际情况。

     

      

    EIT的循环描述符中可以为:

    1   short event descriptor

    短事件描述符

    短事件描述符以文本方式提供了事件的名称和该事件的简短描述,见表75

    75  短事件描述符

       

    位数

    助记符

    short_event_descriptor(){

     

     

            descriptor_tag

    8

    uimsbf

            descriptor_length

    8

    uimsbf

            ISO 639_2_language_code

    24

    bslbf

            event_name_length

    8

    uimsbf

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

     

     

                    event_name_char

    8

    uimsbf

            }

     

     

            text_length

    8

    uimsbf

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

     

     

                    text_char

    8

    uimsbf

            }

     

     

    }

     

     

     

    短事件描述符的语义:

    ISO 639-2语言代码  ISO 639-2_language_code

    24位字段,指明后续的文本字段的语言。该字段包含一个由ISO 639-2定义的3字符代码。ISO 639-2/B ISO 639-2/T都可以使用。每个字符都按照GB/T 15273.1-1994编码为8位,并依次插入24位字段。

    例如:法语的3字符代码“fre”,可编码为:’0110 0110 0111 0010 0110 0101’

    事件名称长度  event_name_length

    8位字段,以字节为单位给出事件名称的长度。

    事件名称字符  event_name_char

    8位字段,一个字符串给出事件的名称。文本信息编码所使用的字符集和方法见附录A

    文本长度  text_length

    8位字段,以字节为单位给出后续描述事件的文本的长度。

    文本字符  text_char

    8位字段,一个字符串给出事件的文本描述。文本信息编码所使用的字符集和方法见附录A

     

     

     

     

    2   Extend event descriptor

    扩展事件描述符给出了一个事件的详细文本描述。除了短事件描述符外,还可使用扩展事件描述符。如果一个事件的信息长度超过256字节,可以使用多于一个的相关联的扩展事件描述符来描述。文本信息可以分为两个栏目,一栏为条目的描述,另一栏为条目的内容。这种结构的典型应用是给出演职员列表,例如条目描述域可能是“制片人”,那么条目内容域可以给出制片人的名字。

    44  扩展事件描述符

                         语法

    位数

    助记符

    extended_event_descriptor( ){

     

     

          descriptor_tag

       8

    uimsbf

          descriptor_length

       8

    uimsbf

          descriptor_number

       4

    uimsbf

          last_descriptor_number

       4

    uimsbf

          ISO 639-2_language_code

       24

    bslbf

          length_of_items

       8

    uimsbf

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

     

     

                  item_description_length

       8

    uimsbf

                  for(j = 0; j < N; j++){ 

     

     

                          Item_description_char

       8

    uimsbf

                  }

      

     

                  item_length

       8

    uimsbf

                  for(j = 0; j < N; j++){

      

     

                       item_char

       8

    uimsbf

                  }

     

     

          }

      

     

          text_length

       8

    uimsbf

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

      

     

                 text_char

       8

    uimsbf

          }

      

     

    }

     

     

    扩展事件描述符的语义:

     描述符序号  descriptor_number

    4位字段,给出了描述符的序号,用于描述使用多个扩展事件描述符时的关联信息。相关联的extend_event_descriptor集合的第一个extend_event_descriptordescriptor_number应为“0x00”。随着本段内extended_event_descriptor个数的增加,descriptor_number以步长1递增。

    尾描述符序号  last_descriptor_number

    4位字段,给出了相关联的extend_event_descriptor集合中的最后一个描述符(即descriptor_number最大的描述符)的序号。

    ISO 639-2语言代码  ISO 639-2_language_code

    24位字段,包含了符合ISO 639-2标准的3字符语言代码,说明后面文本字段所用的语言。ISO 639.2/BISO 639.2/T都可以使用。每个字符都按照GB/T 15273.1-1994标准编码为8位,依次插入24位字段。

    例如:法语的3字符代码“fre”,可编码为:’0110 0110 0111 0010 0110 0101’

    条目长度  length_of_item

    8位字段,以字节为单位给出后续条目的长度。

    条目描述长度  item_description_length

    8位字段,以字节为单位给出条目描述的长度。

    条目描述字符  item_description_char

    8位字段,“item_description_char”串给出条目的描述。文本信息所使用的字符集和编码方法见附录A

    条目长度  item_length

    8位字段,以字节为单位给出后续条目文本的长度。

    条目字符  item_char

    8位字段,“item_char”串给出条目的描述。文本信息所使用的字符集和编码方法见附录A

    文本长度  text_length

    8位字段,以字节为单位给出未列进条目的文本长度。

    文本字符  text_char

    8位字段,“text_char”串给出未列进条目的文本的内容。文本信息所使用的字符集和编码方法见附录A

     

     

     


    最新回复(0)