Index: TsDuration.cpp =================================================================== --- TsDuration.cpp (revision 27986) +++ TsDuration.cpp (working copy) @@ -80,7 +80,6 @@ { m_bSearchStart=true; m_bSearchEnd=false; - m_bSearchMax=false; m_startPcr.Reset(); m_maxPcr.Reset(); m_reader->SetFilePointer(0,FILE_BEGIN); @@ -160,26 +159,9 @@ //and fill maxPcr if (m_endPcr.PcrReferenceBase < m_startPcr.PcrReferenceBase) { - //PCR rollover - m_bSearchMax=true; - m_bSearchEnd=false; - __int64 offset=sizeof(buffer); - while (!m_maxPcr.IsValid) - { - DWORD dwBytesRead; - m_reader->SetFilePointer(-offset,FILE_END); - if (!SUCCEEDED(m_reader->Read(buffer,sizeof(buffer),&dwBytesRead))) - { - break; - } - if (dwBytesRead==0) - { - break; - } - Reset() ; // Reset internal "PacketSync" buffer - OnRawData(buffer,dwBytesRead); - offset+=sizeof(buffer); - } + m_maxPcr.PcrReferenceBase = 0x1ffffffffULL; + m_maxPcr.PcrReferenceExtension = 0x1ffULL; + m_maxPcr.IsValid = true; } //park filepointer at end of file @@ -211,13 +193,6 @@ { m_endPcr=field.Pcr; } - if (m_bSearchMax && m_pid==header.Pid) - { - if (field.Pcr.ToClock() > m_startPcr.ToClock()) - { - m_maxPcr=field.Pcr; - } - } } } Index: TsDuration.h =================================================================== --- TsDuration.h (revision 27986) +++ TsDuration.h (working copy) @@ -41,5 +41,4 @@ CPcr m_firstStartPcr; bool m_bSearchStart; bool m_bSearchEnd; - bool m_bSearchMax; };