|
| EDID ()=default |
| Default constructor.
|
|
| EDID (uint64_t edid) |
| Constructor from a 64-bit EDID value.
|
|
DID | did () const |
| Get the descriptor id (aka tag).
|
|
DID | didExtDVB () const |
| Get the DVB descriptor tag extension.
|
|
DID | didExtension () const |
| Get the MPEG or DVB descriptor tag extension.
|
|
DID | didExtMPEG () const |
| Get the MPEG descriptor tag extension.
|
|
uint64_t | encoded () const |
| Get the 64-bit encoded EDID value.
|
|
bool | isExtension () const |
| Check if the descriptor is an MPEG or DVB extension descriptor.
|
|
bool | isExtensionDVB () const |
| Check if the descriptor is a DVB extension descriptor.
|
|
bool | isExtensionMPEG () const |
| Check if the descriptor is an MPEG extension descriptor.
|
|
bool | isPrivateDual () const |
| Check if the descriptor is a dual private descriptor (can be used as MPEG or DVB private descriptor).
|
|
bool | isPrivateDVB () const |
| Check if the descriptor is a DVB or dual private descriptor.
|
|
bool | isPrivateMPEG () const |
| Check if the descriptor is a MPEG or dual private descriptor.
|
|
bool | isRegular () const |
| Check if the descriptor is a regular one.
|
|
bool | isTableSpecific () const |
| Check if the descriptor is table-specific.
|
|
bool | isValid () const |
| Check if the extended descriptor id is valid.
|
|
bool | matchRegularStandards (Standards std) const |
| Check if the descriptor is a regular one and matches at least one standard.
|
|
bool | matchTableSpecific (TID tid, Standards std) const |
| Check if the descriptor is table-specific and matches a given table id.
|
|
PDS | pds () const |
| Get the DVB private data specifier.
|
|
REGID | privateId () const |
| Get the MPEG registration identifier or DVB private data specifier.
|
|
REGID | regid () const |
| Get the MPEG registration identifier.
|
|
Standards | standards () const |
| Get the associated standards.
|
|
std::set< TID > | tableIds () const |
| Get the required table-ids for a table-specific descriptor.
|
|
UString | toString () const |
| Convert to a string object.
|
|
Type | type () const |
| Get the descriptor type.
|
|
XDID | xdid () const |
| Build an eXtension Descriptor Id from the EDID.
|
|
Extended MPEG descriptor id.
For convenience, it is sometimes useful to identify descriptors using an "extended DID" because a descriptor tag is not always enough to uniquely identify a descriptor.
A descriptor usually falls into one of the following categories:
- Regular descriptor (tag in the range 0x00-0x3F for MPEG, 0x40-7F for DVB, unspecified for other standards). This descriptor is usually associated to a standard (MPEG, DVB, ATSC, ISDB, etc.)
- Private MPEG descriptor (unofficial name). Must be associated with a 32-bit registration id, or REGID, in a preceding MPEG registration_descriptor. This descriptor can be in the same descriptor list or a higher descriptor list.
- Private DVB descriptor (tag in the range 0x80-0xFF). Must be associated with a 32-bit private data specifier or PDS, in a preceding private_data_specifier descriptor in the same descriptor list.
- Dual private descriptor: Can be used either as private MPEG or private DVB descriptor. The same 32-bit value is used as MPEG registration id and DVB private data specifier.
- MPEG or DVB extension descriptor (tag == 0x3F or 0x7F). Must be associated with a 8-bit tag extension.
- Table-specific descriptor. Its tag reuses a tag which is otherwise used by some regular descriptor, typically in the MPEG-defined range 0x00-0x3F. Such a descriptor can only be found in one or more specific tables such as AIT, INT or UNT (DVB). In these tables, the descriptor tag is interpreted as this table-specific descriptor. Of course, the regular descriptor which normally uses this tag value cannot be present in these tables. The descriptor tag must be associated with an 8-bit table id (and the associated standard). If the table-specific descriptor is used in several tables, up to 4 different table ids can be set in the EDID. Table-specific descriptors for more than 4 tables are not supported (in practice, the maximum is 2 tables).
The "extended DID" or EDID is a 64-bit value as used in the file tsDID.names. The C++ class EDID encapsulates this value, nothing more.
The EDID 64-bit value is structured as follow: 0xSSSSTTRRRRRRRRDD.
- 0xSSSS, 16 bits: Mask of associated standards. See enum class Standards.
- 0xTT, 8 bits: Descriptor type. The possible values are:
- 0x00: Regular descriptor for the specified standard.
- 0x01: Private descriptor, needs a registration id or private data specifier.
- 0x02: Extension descriptor. The descriptor tag must be 0x3F (MPEG) or 0x7F (DVB).
- 0x03: Table-specific descriptor.
- 0xFF: Invalid.
- 0xRRRRRRRR, 32 bits: Registration value. It depends on the descriptor type.
- 0x00: Unused, registration value = 0xFFFFFFFF.
- 0x01: Registration value = 32-bit REGID and/or PDS.
- 0x02: Registration value = 0xFFFFFFVV where 0xVV is the extended descriptor tag.
- 0x03: Registration value = 0xYYXXWWVV where 0xVV, 0xWW, 0xXX, 0xYY are the parent table ids, in increasing order. The unused table id values are set to 0xFF.
- other: Unused, registration value = 0xFFFFFFFF.
- 0xDD, 8 bits: Descriptor id or tag.