![]() |
TSDuck v3.41-4217
MPEG Transport Stream Toolkit
|
Extended MPEG descriptor id. More...
#include <tsEDID.h>
Public Types | |
enum class | Type : uint8_t { REGULAR = 0x00 , PRIVATE = 0x01 , EXTENDED = 0x02 , TABLE_SPEC = 0x03 , INVALID = 0xFF } |
Enumeration of descriptor types. More... | |
Public Member Functions | |
EDID ()=default | |
Default constructor. | |
constexpr | 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. | |
Static Public Member Functions | |
static EDID | Extension (XDID xdid) |
Build the EDID for an MPEG or DVB extension descriptor. | |
static constexpr EDID | ExtensionDVB (DID ext) |
Build the EDID for a DVB extension descriptor. | |
static constexpr EDID | ExtensionMPEG (DID ext) |
Build the EDID for an MPEG extension descriptor. | |
static constexpr EDID | PrivateDual (DID did, PDS pds) |
Build the EDID for a dual private descriptor. | |
static constexpr EDID | PrivateDVB (DID did, PDS pds) |
Build the EDID for a private DVB descriptor. | |
static constexpr EDID | PrivateMPEG (DID did, REGID regid) |
Build the EDID for a private MPEG descriptor. | |
static constexpr EDID | Regular (DID did, Standards std) |
Build the EDID for a regular descriptor. | |
static EDID | TableSpecific (DID did, Standards std, TID tid1, TID tid2=TID_NULL, TID tid3=TID_NULL, TID tid4=TID_NULL) |
Build the EDID for a table-specific descriptor. | |
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:
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.
|
strong |
|
default |
Default constructor.
The initial value is invalid.
|
inlineexplicitconstexpr |
Build the EDID for a regular descriptor.
[in] | did | Descriptor tag. |
[in] | std | Relevant standards. |
Build the EDID for a private MPEG descriptor.
[in] | did | Descriptor tag. |
[in] | regid | Associated registration id. |
Build the EDID for a private DVB descriptor.
[in] | did | Descriptor tag. |
[in] | pds | Associated private data specifier. |
Build the EDID for a dual private descriptor.
This kind of descriptor can be used in a DVB context using a private data specifier descriptor or in a simple MPEG context using a registration descriptor. In both cases, the value of the private data specifier and the registration id are identical.
[in] | did | Descriptor tag. |
[in] | pds | Associated registration id and private data specifier. |
|
static |
Build the EDID for a table-specific descriptor.
[in] | did | Descriptor tag. |
[in] | std | Relevant standards for the table. |
[in] | tid1 | Associated required table id. |
[in] | tid2 | Optional second table id. |
[in] | tid3 | Optional third table id. |
[in] | tid4 | Optional fourth table id. |
|
inline |
Check if the extended descriptor id is valid.
|
inline |
Get the descriptor type.
|
inline |
Get the associated standards.
|
inline |
Check if the descriptor is a regular one.
|
inline |
Get the descriptor id (aka tag).
|
inline |
Check if the descriptor is a MPEG or dual private descriptor.
|
inline |
Check if the descriptor is a DVB or dual private descriptor.
|
inline |
Check if the descriptor is a dual private descriptor (can be used as MPEG or DVB private descriptor).
|
inline |
Get the MPEG registration identifier.
|
inline |
Get the DVB private data specifier.
|
inline |
Get the MPEG registration identifier or DVB private data specifier.
|
inline |
Check if the descriptor is an MPEG extension descriptor.
|
inline |
Check if the descriptor is a DVB extension descriptor.
|
inline |
Check if the descriptor is an MPEG or DVB extension descriptor.
|
inline |
Get the MPEG descriptor tag extension.
|
inline |
Get the DVB descriptor tag extension.
|
inline |
Get the MPEG or DVB descriptor tag extension.
|
inline |
Check if the descriptor is table-specific.
std::set< TID > ts::EDID::tableIds | ( | ) | const |
Get the required table-ids for a table-specific descriptor.
Check if the descriptor is table-specific and matches a given table id.
[in] | tid | A table id to test. |
[in] | std | Relevant standards. |
bool ts::EDID::matchRegularStandards | ( | Standards | std | ) | const |
Check if the descriptor is a regular one and matches at least one standard.
[in] | std | Relevant standards to test. |
XDID ts::EDID::xdid | ( | ) | const |
Build an eXtension Descriptor Id from the EDID.
|
inline |
UString ts::EDID::toString | ( | ) | const |
Convert to a string object.
Note: The EDID class does not implement StringifyInterface because we don't want to make it virtual and keep the instance size small, without vtable pointer.