program_number [MPEG-2 Semantics]
The program_number is a 16-bit unsigned integer that uniquely identifies each program service (or virtual channel) present in a transport stream.
Program numbers can range from 1 to 65535 and are generally allocated by end users by starting at 1.
MPEG-2 doesn't permit the use of program_number = 0 because that value is used in Program Association tables for the network_PID field. All other uses of program_number are "user defined" by MPEG-2. ATSC reserves program_number=65535 / 0xFF for analog programs.