PMCP XML Basics [PMCP Tutorial]
The PMCP specification, published as ATSC A/76, describes and includes an eXtensible Markup Language (XML) schema. XML, like the Hypertext Markup Language (HTML) is a specifications published by the World Wide Web Consortium (W3C) and is perusable starting here.
For PMCP, the A/76 specification defines a schema that is closely mapped to the underlying data to minimize -- perhaps even eliminate -- any ambiguity between PMCP devices.
PMCP data can be exchanged as files, or as live 'sockets' communications using TCP/IP or UDP/IP protocols.
The 'root' PMCP element: the PmcpMessage
The top level in the PMCP hierarchy is the PmcpMessage. A PmcpMessage must be of one of the following types: "information" (the default type), "request" or "reply."
A PmcpMessage will contain attributes for the PmcpMessage, including but not limited to the data and time of the message, a unique message identifier, and the device sending the message. The message will normally contain one or more well-defined elements permitted or required in the PMCP specification. Each element in the message can have one or more sub-elements and attributes. Many of these attributes and elements are not mandatory according to the PMCP specification, but some are mandatory to eliminate any confusion as to the information being exchanged or requested.
- an information message may be sent to communicate some set of broadcast metadata information
- a request may be sent to communicate or request some information
- a reply or replies shall be sent to acknowledge a specific request message. (Zero, one or two reply messages may be sent to a specific information message.)
If a message is a reply message, it will contain a PmcpReply element, and no such element shall be in an information or request message.
The PMCP specification requires that each device utilizing PMCP shall have an alphanumeric device name that is unique within a transmission facility. Each PmcpMessage shall contain a unique Id in the form of an unsigned integer, the name and 'device type' of the originating device, the date and time (as UTC or GMT) of the message transmission and other optional elements
The PMCP specification provides a list of currently recognized device types and indicates that any future expansions of authorized device types will be published in the ATSC code point registry. However, beyond general language, the specification doesn't actually define what each device type does. As a result, the descriptions in the table below are informative rather than definitive.
It also needs to be pointed out that any single device or system may perform more than one, or even none of the functions outlined below, and there can be more than one of any device type in any particular facility.
Some of the device types listed below are vague and appear to be indicative of how a particular vendor wishes to position one or more of their systems.
Table 1. recognized PMCP device types
device type | description |
Automation | A system that controls the playout of elementary streams from live and archived media. |
Conditional_Access | A system that manages or controls the provisioning of digital conditional access. |
MPEG_Control | A device or system that either encodes elementary streams or multiplexes packets into a transport stream, or both. |
Program_Management | A device or system that manages one or more virtual channels. |
Table_Generator | A device that creates MPEG-2 private tables (PSIP, PSI, etc.) from PMCP data and transmits the table sections on a periodic basis. Also known as a PSIP generator. |
Traffic | A system that schedules television programs and interstitial events for a virtual channel. |
Listing_Service | A service or system that provides details (including program/episode titles, synopses and credits) for a television or media program. |
Metadata_Extractor | A system that extracts metadata from elementary streams or MPEG-2 private tables. |
Table_Extractor | A system that extracts MPEG-2 private tables from transport streams. |
Data_Server | A device that forms data items into packetized elementary streams and inserts them into transport streams. |
Transcoder | A device or system that converts MPEG-2 transport streams from one form to another. |
Content_Distribution | A device or system that manages the distribution of content into MPEG-2 transport streams. |
Asset_Management | A system that manages the programming 'assets' of a television station or virtual channel. |
Many elements in a PmcpMessage may have an 'action' attribute. There are four allowed values: "add", "update", "read" and "remove." The "read" attribute may only appear in a 'request' PmcpMessage, and reply messages may not contain 'action' attributes.
- add -- adds an element to the internal list maintained in an PMCP device
- update -- updates one or more attributes or child elements in a specific PMCP element
- read -- requests information on one or more attributes or child elements for a specific PMCP element
- remove -- removes a specific element stored in a PMCP device
Note: Action attributes can apply to a top-level element, or once the top-level element is properly identified, to a sub-element within a top level element.
Top level PmcpMessage elements
The second edition of the PMCP Specification (ATSC A/76a) establishes the following top level elements may be contained in a PMCP message. Each of the following elements will be explained in this tutorial.
- TransportStream -- declares the transport stream(s) managed by the PMCP system and defines global parameters that apply to one or more of these managed transport streams.
- Channel -- declares the 'virtual channels' (or MPEG-2 programs) and defines their individual tuning and branding parameters.
- Show -- An abstract listing of the shows listed in program guides, however doesn't directly relate to PSIP or PSI.
- PsipEvent -- Program guide information for regular TV and radio program services.
- PsipDataEvent -- Data Program guide information for regular TV and radio program services.
- AcapDataService -- Information about ACAP (ATSC A/101) the data service(s) and their transport protocols.
- TimeParameters -- Information -- aside from the current time -- used to create the System Time table.
- Ratings -- Definitions of the parental rating system(s) for one or more ATSC regions.
- PrivatePmcpInformation -- The structure used to carry data elements that are not defined in the PMCP schema.
Before we explore each of these top level elements, we need to delve into sub-elements that are common to more than one top-level element.
|