This blog is only to remind myself of what I've learned (from others or by myself) and only for knowledge sharing. External sources will be clearly stated in [Reference] of each article. I hope this blog won't infringe any copyrights and that it can be useful for interested blog readers.

2008年2月20日 星期三

DVB-H PID-to-IP mapping TS parsing -- part III

Preface

Reference
  • ETSI_EN_301_192 (en_301192v010401p.pdf)
  • ETSI_EN_300_468 (en_300468v010601p.pdf)
  • ISO_IEC_138181-1
  • a079r1.tm3025r2.cbms1164r.IPDC_PSI-SI.pdf


1) This is the main flow for DVB-H PID-IP parsing.

The following steps are based on this step.

Ref -- 8.4.2 of EN 301 192

2) Explanations

[NIT] -- Ref -8.4.2 of EN 301 192

1) linkage_descriptor (8.2.1 of EN 301 192) of NIT_FOR_LOOP_1contains (multiple) DVB-H platform info.

2) terrestrial_delivery_system_descriptor (6.2.13.3 of EN 301 192) of NIT for_LOOP_2contains (multiple) TS parameter

[PAT]

program_map_ID of PAT_FOR_LOOP_1 is used to search for PMT PIDs.

[PMT]

1) program_number of PMT is unique to identify PMT

2) If PMT_FOR_LOOP_2_FOR_LOOP_1 contains data_broadcast_id_descriptor(tag = 0x66)

and the data_broadcast_id of the data_broadcast_id_descriptor is 0xb

(which is IPMAC_NOTIFICATION_INFO), then an INT is existed.

This INT can be found in the PID equal to pPMT_FOR_LOOP_2->elementary_map_PID and

it belongs to the platform that has the same platform id equal to platform_id of IPMAC_notification_info_FOR_LOOP_1

[INT] -- Ref -- 8.4.2 of EN 301 192

1) Check each operational_descriptor of OPERATIONAL_DESCRIPTOR_LOOP_FOR_LOOP_1 from pINT_FOR_LOOP_1->p_operational_descriptor_loop->vec_ OPERATIONAL_DESCRIPTOR_LOOP_FOR_LOOP_1

1.a) if it is IPMAC_stream_location_descriptor (tag = 0x13),

the service id of IPMAC_stream_location_descriptor is used to map PMT_program_number in a certain PMT and

the component_tag of IPMAC_stream_location_descriptor is used to map component_tag of

stream_identifier_descriptor (tag = 0x52) from the PMT_FOR_LOOP_2_FOR_LOOP_1.

if both component_tags are matched, the target PID equal to PMT_FOR_LOOP_2->elementary_map_PID contains stream info (IP info)

All IP info belonging to the target PID can be found in target_IP_address_descriptor(tag=0x09), target_IP_slash_descriptor(0x0f),

target_IPv6_address_descriptor (0x0a) or target_IPv6_slash_descriptor(0x11) from the target_descriptor of TARGET_DESCRIPTOR_LOOP_FOR_LOOP_1 in

pINT_FOR_LOOP_1->p_target_descriptor_loop->vec_TARGET_DESCRIPTOR_LOOP_FOR_LOOP_1


1.b) if it is time_slice_fec_identifier_descriptor (tag = 0x77), there will be info such as mpe-fec, burst duration, etc.


沒有留言: