Compare commits
1 Commits
master
...
display-un
Author | SHA1 | Date |
---|---|---|
Martchus | a6aefce178 |
|
@ -296,6 +296,7 @@ void MatroskaTrack::internalParseHeader(Diagnostics &diag, AbortableProgressFeed
|
||||||
}
|
}
|
||||||
// read information about the track from the children of the track entry element
|
// read information about the track from the children of the track entry element
|
||||||
auto hasIsoLanguage = false;
|
auto hasIsoLanguage = false;
|
||||||
|
auto displayUnit = std::uint64_t(0);
|
||||||
for (EbmlElement *trackInfoElement = m_trackElement->firstChild(), *subElement = nullptr; trackInfoElement;
|
for (EbmlElement *trackInfoElement = m_trackElement->firstChild(), *subElement = nullptr; trackInfoElement;
|
||||||
trackInfoElement = trackInfoElement->nextSibling()) {
|
trackInfoElement = trackInfoElement->nextSibling()) {
|
||||||
try {
|
try {
|
||||||
|
@ -342,6 +343,9 @@ void MatroskaTrack::internalParseHeader(Diagnostics &diag, AbortableProgressFeed
|
||||||
case MatroskaIds::DisplayHeight:
|
case MatroskaIds::DisplayHeight:
|
||||||
m_displaySize.setHeight(static_cast<std::uint32_t>(subElement->readUInteger()));
|
m_displaySize.setHeight(static_cast<std::uint32_t>(subElement->readUInteger()));
|
||||||
break;
|
break;
|
||||||
|
case MatroskaIds::DisplayUnit:
|
||||||
|
displayUnit = subElement->readUInteger();
|
||||||
|
break;
|
||||||
case MatroskaIds::PixelWidth:
|
case MatroskaIds::PixelWidth:
|
||||||
m_pixelSize.setWidth(static_cast<std::uint32_t>(subElement->readUInteger()));
|
m_pixelSize.setWidth(static_cast<std::uint32_t>(subElement->readUInteger()));
|
||||||
break;
|
break;
|
||||||
|
@ -533,6 +537,16 @@ void MatroskaTrack::internalParseHeader(Diagnostics &diag, AbortableProgressFeed
|
||||||
m_formatName.append(" (unknown)");
|
m_formatName.append(" (unknown)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// assign display unit
|
||||||
|
switch (displayUnit) {
|
||||||
|
case 0: // pixels
|
||||||
|
case 1: // centimeters
|
||||||
|
case 2: // inches
|
||||||
|
case 3: // display aspect ratio
|
||||||
|
default: // unknown
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
// use pixel size as display size if display size not specified
|
// use pixel size as display size if display size not specified
|
||||||
if (!m_displaySize.width()) {
|
if (!m_displaySize.width()) {
|
||||||
m_displaySize.setWidth(m_pixelSize.width());
|
m_displaySize.setWidth(m_pixelSize.width());
|
||||||
|
|
Loading…
Reference in New Issue