EPG详解

来源:互联网 发布:软件结构图 编辑:程序博客网 时间:2024/04/25 22:15

做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

 

 

 

原创粉丝点击