void CBDDemuxer::ProcessBDEvents() { // Check for clip change BD_EVENT event; while(bd_get_event(m_pBD, &event)) { if (event.event == BD_EVENT_PLAYITEM) { uint64_t clip_start, clip_in, bytepos; int ret = bd_get_clip_infos(m_pBD, event.param, &clip_start, &clip_in, &bytepos, NULL); if (ret) { m_rtNewOffset = Convert90KhzToDSTime(clip_start - clip_in) + m_lavfDemuxer->GetStartTime(); m_bNewOffsetPos = bytepos; DbgLog((LOG_TRACE, 10, L"New clip! offset: %I64d bytepos: %I64u", m_rtNewOffset, bytepos)); } } } }
void CBDDemuxer::ProcessBDEvents() { // Check for clip change BD_EVENT event; while(bd_get_event(m_pBD, &event)) { if (event.event == BD_EVENT_PLAYITEM) { uint64_t clip_start, clip_in, bytepos; int ret = bd_get_clip_infos(m_pBD, event.param, &clip_start, &clip_in, &bytepos, nullptr); if (ret) { m_rtNewOffset = Convert90KhzToDSTime(clip_start - clip_in) + m_lavfDemuxer->GetStartTime(); m_bNewOffsetPos = bytepos-4; DbgLog((LOG_TRACE, 10, L"New clip! offset: %I64d bytepos: %I64u", m_rtNewOffset, bytepos)); } m_EndOfStreamPacketFlushProtection = FALSE; } else if (event.event == BD_EVENT_END_OF_TITLE) { m_EndOfStreamPacketFlushProtection = TRUE; } else if (event.event == BD_EVENT_SEEK) { m_EndOfStreamPacketFlushProtection = FALSE; } } }