Skip to content

Commit

Permalink
Корректировка d34637d. Исправит проигрывание некоторых файлов/UHD DV …
Browse files Browse the repository at this point in the history
…BD дисков.
  • Loading branch information
Aleksoid1978 committed Jul 7, 2024
1 parent 66f1697 commit 25f783e
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/filters/parser/MpegSplitter/MpegSplitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -744,9 +744,12 @@ HRESULT CMpegSplitterFilter::DeliverPacket(std::unique_ptr<CPacket> p)
return S_OK;
} else if (m_bHandleDVStream) {
if (TrackNumber == m_dwMasterDVTrackNumber) {
if (m_MasterDVStreamPacket) {
__super::DeliverPacket(std::move(m_MasterDVStreamPacket));
}
m_MasterDVStreamPacket = std::move(p);
} else if (TrackNumber == m_dwSecondaryDVTrackNumber && m_MasterDVStreamPacket) {
if (p->rtStart == m_MasterDVStreamPacket->rtStart) {
} else if (TrackNumber == m_dwSecondaryDVTrackNumber) {
if (m_MasterDVStreamPacket && p->rtStart == m_MasterDVStreamPacket->rtStart) {
CH265Nalu Nalu;
Nalu.SetBuffer(p->data(), p->size());
while (Nalu.ReadNext()) {
Expand All @@ -755,11 +758,9 @@ HRESULT CMpegSplitterFilter::DeliverPacket(std::unique_ptr<CPacket> p)
// Dolby Vision RPU
// TODO - check for NALU_TYPE_HEVC_EOSEQ
m_MasterDVStreamPacket->AppendData(Nalu.GetNALBuffer(), Nalu.GetLength());
break;
return __super::DeliverPacket(std::move(m_MasterDVStreamPacket));
}
}

return __super::DeliverPacket(std::move(m_MasterDVStreamPacket));
}
} else {
return __super::DeliverPacket(std::move(p));
Expand Down Expand Up @@ -1500,6 +1501,8 @@ void CMpegSplitterFilter::DemuxSeek(REFERENCE_TIME rt)
m_MVCExtensionQueue.clear();
m_MVCBaseQueue.clear();

m_MasterDVStreamPacket.reset();

if (rt == 0) {
m_pFile->Seek(m_pFile->m_posMin);
} else {
Expand Down

0 comments on commit 25f783e

Please sign in to comment.