MythTV  master
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MythEDID Class Reference

#include <mythedid.h>

Collaboration diagram for MythEDID:
Collaboration graph
[legend]

Public Member Functions

 MythEDID ()=default
 
 MythEDID (QByteArray Data)
 
 MythEDID (const char *Data, int Length)
 
bool Valid () const
 
QStringList SerialNumbers () const
 
QSize DisplaySize () const
 
double DisplayAspect () const
 
uint16_t PhysicalAddress () const
 
float Gamma () const
 
bool IsHDMI () const
 
bool IsSRGB () const
 
bool IsLikeSRGB () const
 
MythColourSpace ColourPrimaries () const
 
int AudioLatency (bool Interlaced) const
 
int VideoLatency (bool Interlaced) const
 
void Debug () const
 
MythHDRDesc GetHDRSupport () const
 
MythVRRRange GetVRRRange () const
 Return the range of supported refresh rates. More...
 

Private Types

enum  HDREOTF { SDR = 1 << 0, HDRTrad = 1 << 1, HDR10 = 1 << 2, HLG = 1 << 3 }
 

Private Member Functions

void Parse ()
 
bool ParseBaseBlock (const quint8 *Data)
 
void ParseDisplayDescriptor (const quint8 *Data, uint Offset)
 
void ParseDetailedTimingDescriptor (const quint8 *Data, size_t Offset)
 
bool ParseCTA861 (const quint8 *Data, size_t Offset)
 
bool ParseCTABlock (const quint8 *Data, size_t Offset)
 
bool ParseVSDB (const quint8 *Data, size_t Offset, size_t Length)
 
bool ParseExtended (const quint8 *Data, size_t Offset, size_t Length)
 

Private Attributes

bool m_valid { false }
 
QByteArray m_data
 
size_t m_size { 0 }
 
quint8 m_minorVersion { 0 }
 
QSize m_displaySize
 
double m_displayAspect { 0.0 }
 
QStringList m_serialNumbers
 
QString m_name
 
int m_vrangeMin { 0 }
 
int m_vrangeMax { 0 }
 
float m_gamma { 0.0F }
 
bool m_sRGB { false }
 
bool m_likeSRGB { false }
 
MythColourSpace m_primaries { {{{0.0F}}}, {0.0F} }
 
bool m_isHDMI { false }
 
uint16_t m_physicalAddress { 0 }
 
uint8_t m_deepColor { 0 }
 
bool m_latencies { false }
 
bool m_interLatencies { false }
 
std::array< int, 2 > m_audioLatency { 0 }
 
std::array< int, 2 > m_videoLatency { 0 }
 
uint8_t m_deepYUV { 0 }
 
int m_vrrMin { 0 }
 
int m_vrrMax { 0 }
 
int m_hdrMetaTypes { 0 }
 
MythHDR::HDRTypes m_hdrSupport { MythHDR::SDR }
 
double m_maxLuminance { 0.0 }
 
double m_maxAvgLuminance { 0.0 }
 
double m_minLuminance { 0.0 }
 

Detailed Description

Definition at line 21 of file mythedid.h.

Member Enumeration Documentation

◆ HDREOTF

enum MythEDID::HDREOTF
private
Enumerator
SDR 
HDRTrad 
HDR10 
HLG 

Definition at line 45 of file mythedid.h.

Constructor & Destructor Documentation

◆ MythEDID() [1/3]

MythEDID::MythEDID ( )
default

◆ MythEDID() [2/3]

MythEDID::MythEDID ( QByteArray  Data)
explicit

Definition at line 27 of file mythedid.cpp.

◆ MythEDID() [3/3]

MythEDID::MythEDID ( const char *  Data,
int  Length 
)

Definition at line 33 of file mythedid.cpp.

Member Function Documentation

◆ Valid()

bool MythEDID::Valid ( ) const

◆ SerialNumbers()

QStringList MythEDID::SerialNumbers ( ) const

Definition at line 44 of file mythedid.cpp.

Referenced by MythDRMDevice::Initialise().

◆ DisplaySize()

QSize MythEDID::DisplaySize ( ) const

Definition at line 49 of file mythedid.cpp.

Referenced by MythDisplayRPI::UpdateCurrentMode().

◆ DisplayAspect()

double MythEDID::DisplayAspect ( ) const

Definition at line 54 of file mythedid.cpp.

◆ PhysicalAddress()

uint16_t MythEDID::PhysicalAddress ( ) const

Definition at line 59 of file mythedid.cpp.

Referenced by MythCECAdapter::Open().

◆ Gamma()

float MythEDID::Gamma ( ) const

Definition at line 64 of file mythedid.cpp.

◆ IsHDMI()

bool MythEDID::IsHDMI ( ) const

Definition at line 69 of file mythedid.cpp.

Referenced by MythDisplayRPI::SwitchToVideoMode().

◆ IsSRGB()

bool MythEDID::IsSRGB ( ) const

Definition at line 74 of file mythedid.cpp.

Referenced by MythDisplay::Initialise().

◆ IsLikeSRGB()

bool MythEDID::IsLikeSRGB ( ) const

Definition at line 79 of file mythedid.cpp.

◆ ColourPrimaries()

MythColourSpace MythEDID::ColourPrimaries ( ) const

Definition at line 84 of file mythedid.cpp.

◆ AudioLatency()

int MythEDID::AudioLatency ( bool  Interlaced) const

Definition at line 89 of file mythedid.cpp.

◆ VideoLatency()

int MythEDID::VideoLatency ( bool  Interlaced) const

Definition at line 94 of file mythedid.cpp.

◆ Debug()

void MythEDID::Debug ( ) const

Definition at line 485 of file mythedid.cpp.

Referenced by MythDisplayRPI::UpdateCurrentMode().

◆ GetHDRSupport()

MythHDRDesc MythEDID::GetHDRSupport ( ) const

Definition at line 99 of file mythedid.cpp.

Referenced by MythDisplay::InitHDR().

◆ GetVRRRange()

MythVRRRange MythEDID::GetVRRRange ( ) const

Return the range of supported refresh rates.

If the VRR range is explicit in the EDID then the third element of MythVRRRange is set to true, otherwise 'false' indicates that the VRR range is assumed from the vertical refresh range indicated in the EDID. In both cases the behaviour of the display below any minimum is undefined (e.g. there is no current indication whether the display supports 'FreeSync Premium' - in which case low frame rates may produce significant jitter).

Definition at line 113 of file mythedid.cpp.

Referenced by MythVRR::Create().

◆ Parse()

void MythEDID::Parse ( )
private

Definition at line 143 of file mythedid.cpp.

Referenced by MythEDID().

◆ ParseBaseBlock()

bool MythEDID::ParseBaseBlock ( const quint8 *  Data)
private

Definition at line 197 of file mythedid.cpp.

Referenced by Parse().

◆ ParseDisplayDescriptor()

void MythEDID::ParseDisplayDescriptor ( const quint8 *  Data,
uint  Offset 
)
private

Definition at line 294 of file mythedid.cpp.

Referenced by ParseBaseBlock().

◆ ParseDetailedTimingDescriptor()

void MythEDID::ParseDetailedTimingDescriptor ( const quint8 *  Data,
size_t  Offset 
)
private

Definition at line 325 of file mythedid.cpp.

Referenced by ParseBaseBlock().

◆ ParseCTA861()

bool MythEDID::ParseCTA861 ( const quint8 *  Data,
size_t  Offset 
)
private

Definition at line 340 of file mythedid.cpp.

Referenced by Parse().

◆ ParseCTABlock()

bool MythEDID::ParseCTABlock ( const quint8 *  Data,
size_t  Offset 
)
private

Definition at line 357 of file mythedid.cpp.

Referenced by ParseCTA861().

◆ ParseVSDB()

bool MythEDID::ParseVSDB ( const quint8 *  Data,
size_t  Offset,
size_t  Length 
)
private

Definition at line 374 of file mythedid.cpp.

Referenced by ParseCTABlock().

◆ ParseExtended()

bool MythEDID::ParseExtended ( const quint8 *  Data,
size_t  Offset,
size_t  Length 
)
private

Definition at line 455 of file mythedid.cpp.

Referenced by ParseCTABlock().

Member Data Documentation

◆ m_valid

bool MythEDID::m_valid { false }
private

Definition at line 62 of file mythedid.h.

Referenced by Debug(), GetVRRRange(), Parse(), ParseBaseBlock(), and Valid().

◆ m_data

QByteArray MythEDID::m_data
private

Definition at line 63 of file mythedid.h.

Referenced by Parse().

◆ m_size

size_t MythEDID::m_size { 0 }
private

Definition at line 64 of file mythedid.h.

Referenced by Debug(), Parse(), ParseCTA861(), ParseExtended(), and ParseVSDB().

◆ m_minorVersion

quint8 MythEDID::m_minorVersion { 0 }
private

Definition at line 65 of file mythedid.h.

Referenced by Debug(), ParseBaseBlock(), and ParseDisplayDescriptor().

◆ m_displaySize

QSize MythEDID::m_displaySize
private

Definition at line 66 of file mythedid.h.

Referenced by DisplaySize(), ParseBaseBlock(), and ParseDetailedTimingDescriptor().

◆ m_displayAspect

double MythEDID::m_displayAspect { 0.0 }
private

Definition at line 67 of file mythedid.h.

Referenced by DisplayAspect(), and ParseBaseBlock().

◆ m_serialNumbers

QStringList MythEDID::m_serialNumbers
private

Definition at line 68 of file mythedid.h.

Referenced by ParseBaseBlock(), ParseDisplayDescriptor(), and SerialNumbers().

◆ m_name

QString MythEDID::m_name
private

Definition at line 69 of file mythedid.h.

Referenced by ParseDisplayDescriptor().

◆ m_vrangeMin

int MythEDID::m_vrangeMin { 0 }
private

Definition at line 70 of file mythedid.h.

Referenced by GetVRRRange(), and ParseDisplayDescriptor().

◆ m_vrangeMax

int MythEDID::m_vrangeMax { 0 }
private

Definition at line 71 of file mythedid.h.

Referenced by GetVRRRange(), and ParseDisplayDescriptor().

◆ m_gamma

float MythEDID::m_gamma { 0.0F }
private

Definition at line 72 of file mythedid.h.

Referenced by Debug(), Gamma(), and ParseBaseBlock().

◆ m_sRGB

bool MythEDID::m_sRGB { false }
private

Definition at line 73 of file mythedid.h.

Referenced by Debug(), IsSRGB(), and ParseBaseBlock().

◆ m_likeSRGB

bool MythEDID::m_likeSRGB { false }
private

Definition at line 74 of file mythedid.h.

Referenced by IsLikeSRGB(), and ParseBaseBlock().

◆ m_primaries

MythColourSpace MythEDID::m_primaries { {{{0.0F}}}, {0.0F} }
private

Definition at line 75 of file mythedid.h.

Referenced by ColourPrimaries(), Debug(), and ParseBaseBlock().

◆ m_isHDMI

bool MythEDID::m_isHDMI { false }
private

Definition at line 76 of file mythedid.h.

Referenced by IsHDMI(), and ParseVSDB().

◆ m_physicalAddress

uint16_t MythEDID::m_physicalAddress { 0 }
private

Definition at line 77 of file mythedid.h.

Referenced by Debug(), ParseVSDB(), and PhysicalAddress().

◆ m_deepColor

uint8_t MythEDID::m_deepColor { 0 }
private

Definition at line 78 of file mythedid.h.

Referenced by Debug(), and ParseVSDB().

◆ m_latencies

bool MythEDID::m_latencies { false }
private

Definition at line 79 of file mythedid.h.

Referenced by Debug(), and ParseVSDB().

◆ m_interLatencies

bool MythEDID::m_interLatencies { false }
private

Definition at line 80 of file mythedid.h.

Referenced by Debug(), and ParseVSDB().

◆ m_audioLatency

std::array<int,2> MythEDID::m_audioLatency { 0 }
private

Definition at line 81 of file mythedid.h.

Referenced by AudioLatency(), Debug(), and ParseVSDB().

◆ m_videoLatency

std::array<int,2> MythEDID::m_videoLatency { 0 }
private

Definition at line 82 of file mythedid.h.

Referenced by Debug(), ParseVSDB(), and VideoLatency().

◆ m_deepYUV

uint8_t MythEDID::m_deepYUV { 0 }
private

Definition at line 83 of file mythedid.h.

Referenced by Debug(), and ParseVSDB().

◆ m_vrrMin

int MythEDID::m_vrrMin { 0 }
private

Definition at line 84 of file mythedid.h.

Referenced by Debug(), GetVRRRange(), and ParseVSDB().

◆ m_vrrMax

int MythEDID::m_vrrMax { 0 }
private

Definition at line 85 of file mythedid.h.

Referenced by Debug(), GetVRRRange(), and ParseVSDB().

◆ m_hdrMetaTypes

int MythEDID::m_hdrMetaTypes { 0 }
private

Definition at line 86 of file mythedid.h.

Referenced by ParseExtended().

◆ m_hdrSupport

MythHDR::HDRTypes MythEDID::m_hdrSupport { MythHDR::SDR }
private

Definition at line 87 of file mythedid.h.

Referenced by Debug(), GetHDRSupport(), and ParseExtended().

◆ m_maxLuminance

double MythEDID::m_maxLuminance { 0.0 }
private

Definition at line 88 of file mythedid.h.

Referenced by Debug(), GetHDRSupport(), and ParseExtended().

◆ m_maxAvgLuminance

double MythEDID::m_maxAvgLuminance { 0.0 }
private

Definition at line 89 of file mythedid.h.

Referenced by Debug(), GetHDRSupport(), and ParseExtended().

◆ m_minLuminance

double MythEDID::m_minLuminance { 0.0 }
private

Definition at line 90 of file mythedid.h.

Referenced by Debug(), GetHDRSupport(), and ParseExtended().


The documentation for this class was generated from the following files: