[Live-devel] MPEG-2 Program Map Table PID

Chris Richardson (WTI) chris at gotowti.com
Mon Nov 28 16:30:30 PST 2011


Hi Ross,

Thanks for your prompt response.

>>That's odd.  I've seen several Transport Stream files that use 0x10 as the
"Program_map_PID", and Table 2-3 of ISO/IEC 13818-1 says that PIDs in the
range 0x10 through 0x1FFE "May be assigned as network_PID, Program-map_PID,
elementary_PID, or for other purposes".
>>But perhaps DVB and ATSC place more restrictions on what PIDs can be
valid "Program_map_PID"s?  (If so, then what PIDs are valid in these
systems?)

Yep, indeed I didn't mean to imply that 0x10 is an invalid MPEG-2 PID; only
that it is invalid for ATSC, as well as for the program map table in DVB.
DVB reserves PID 0x10 for the “Network Information Table” (NIT), and ATSC
disallows using PIDs that will conflict with DVB.

The first legal ATSC Program Map Table PID is 0x30, as seen in the following
document on page 23:

http://www.atsc.org/cms/standards/a53/a_53-Part-3-2009.pdf

"6.9 PID Value Assignments
In order to avoid collisions with fixed PID values and ranges already
established in this and other international standards, transport_packet()
PID field values are restricted as follows:
• TS packets identified with PID values in the range 0x1FF0 – 0x1FFE shall
only be used to transport data compliant with ATSC-recognized standards
specifying fixed-value PID
assignments in that range. (Informative note: One such use is A/65, which
requires the use of 0x1FFB to identify packets containing certain tables
defined in that standard.)
• In order to avoid collisions with fixed PID values and ranges already
established in thisand other international standards, PID values used to
identify Transport Stream packets carrying TS_program_map_section() or
program elements shall not be set below 0x0030. (Informative note: One such
use is in ETS 300 468, which requires the use of 0x0011 to identify packets
containing certain tables defined in that standard.)"

>>The easiest solution would simply be to redefine the constant to be some
different value that's valid for DVB and ATSC (as well as every other
Transport Stream file).  Do you have a suggestion?  (I've also seen several
Transport Stream files that use 0x42.  Would that be valid?)

My customer has informed me that ATSC uses PIDs 0x30, 0x40, 0x50, etc. to
represent channel 3, 4, 5 etc., so I am not sure if 0x42 would be
sub-channel 4.2, or if it would be allowed at all.  My opinion would be to
use 0x30, as it is legal for both ATSC and DVB, and seems to be valid for
any transport stream.  However I am not an expert here and welcome anybody
else's opinions or facts on this matter.

Thanks,

Chris Richardson
WTI




More information about the live-devel mailing list