vbi_program_id Struct Reference
Low Level Decoding » VPS/PDC Program ID

Program Identification. More...

`#include <pdc.h>`

## Data Fields

vbi_pid_channel | channel
vbi_cni_type | cni_type
unsigned int | cni
vbi_pil | pil
vbi_bool | luf
vbi_bool | mi
vbi_bool | prf
vbi_pcs_audio | pcs_audio
unsigned int | pty
vbi_bool | tape_delayed
void * | _reserved2 [2]
int | _reserved3 [4]

## Detailed Description

Program Identification.

This structure contains a Program ID received via Teletext packet 8/30 format 2, VPS, a DVB PDC descriptor or an XDS Current/Future Program ID packet. When the source does not provide all this information, libzvbi initializes the respective fields with an appropriate value.

Since
  0.2.34

Examples
  examples/pdc1.c, and examples/pdc2.c.

## Field Documentation

## channel

vbi_pid_channel vbi_program_id::channel

Source of this PID.

Examples
  examples/pdc1.c, and examples/pdc2.c.

Referenced by vbi_decode_dvb_pdc_descriptor(), vbi_decode_teletext_8302_pdc(), and vbi_decode_vps_pdc().

## cni_type

vbi_cni_type vbi_program_id::cni_type

Network identifier type, one of

- `VBI_CNI_TYPE_NONE`,
- `VBI_CNI_TYPE_8302` or
- `VBI_CNI_TYPE_VPS`.

Examples
  examples/pdc2.c.

Referenced by vbi_decode_teletext_8302_pdc(), and vbi_decode_vps_pdc().

## cni

unsigned int vbi_program_id::cni

Country and Network Identifier provided by Teletext packet 8/30 format 2 and VPS. Note when the source is Teletext and the LUF flag is set, this CNI may refer to a different network than the one transmitting the PID.

Examples
  examples/pdc2.c.

Referenced by vbi_decode_teletext_8302_pdc(), vbi_decode_vps_pdc(), and vbi_encode_vps_pdc().

## pil

vbi_pil vbi_program_id::pil

Program Identification Label. This is the only information available from all PID sources.

Examples
  examples/pdc1.c, and examples/pdc2.c.

Referenced by vbi_decode_dvb_pdc_descriptor(), vbi_decode_teletext_8302_pdc(), vbi_decode_vps_pdc(), vbi_encode_dvb_pdc_descriptor(), and vbi_encode_vps_pdc().

## luf

vbi_bool vbi_program_id::luf

PDC Label Update Flag (only transmitted in Teletext packets). When this flag is set, the PID is intended to update VCR memory, it does not refer to the current program. According to the examples in EN 300 231 Annex E.3 however VCRs should probably also handle the PID as if a `VBI_PIL_INHIBIT_TERMINATE` service code was transmitted.

This flag is used to announce a new PIL for the current program. The CNI may refer to a different network than the one transmitting the PID, for example when a program is about to overrun and will continue on a different network. If a program is postponed and no transmission time has been decided yet the new PIL may contain an arbitrary or unreal time.

Examples
  examples/pdc2.c.

Referenced by vbi_decode_teletext_8302_pdc().

## mi

vbi_bool vbi_program_id::mi

PDC Mode Identifier (Teletext). When `TRUE` the end of transmission of this PIL coincides exactly with the end of the program. When `FALSE` the program ends 30 seconds after the PIL is no longer transmitted. Note the flag applies to all valid PILs as well as the `VBI_PIL_INHIBIT_TERMINATE` and `VBI_PIL_INTERRUPTION` service codes.

Examples
  examples/pdc2.c.

Referenced by vbi_decode_dvb_pdc_descriptor(), vbi_decode_teletext_8302_pdc(), and vbi_decode_vps_pdc().

## prf

vbi_bool vbi_program_id::prf

PDC Prepare to Record Flag (Teletext). When `TRUE` the program identified by this PID is about to start. A transition to `FALSE` indicates the immediate start of the program, regardless of the state of the MI flag.

Examples
  examples/pdc2.c.

Referenced by vbi_decode_teletext_8302_pdc().

## pcs_audio

vbi_pcs_audio vbi_program_id::pcs_audio

PDC Program Control Status - Audio (Teletext and VPS).

Referenced by vbi_decode_teletext_8302_pdc(), vbi_decode_vps_pdc(), and vbi_encode_vps_pdc().

## pty

unsigned int vbi_program_id::pty

PDC Program Type code (Teletext and VPS), can be 0 or 0xFF if none or unknown.

Examples
  examples/pdc1.c, and examples/pdc2.c.

Referenced by vbi_decode_teletext_8302_pdc(), vbi_decode_vps_pdc(), and vbi_encode_vps_pdc().

## tape_delayed

vbi_bool vbi_program_id::tape_delayed

XDS T flag. `TRUE` if a program is routinely tape delayed (for mountain and pacific time zones). `FALSE` if not or this is unknown.

This flag is used to determine if an offset is necessary because of local station tape delays. The amount of tape delay used for a given time zone is transmitted in a XDS Channel Tape Delay packet.