Example #1
0
void StreamIndicator::Update(MediaDataPiecePtr piece, UINT64 receiveTime, bool useNewPiece)
{
	CheckDataPiece(piece);
	if (m_pieceIndex == 0 && m_timeStamp == 0)
	{
		LIVE_ASSERT(false);
		Reset(piece);
		return;
	}
	UINT newPieceIndex = piece->GetPieceIndex();
	UINT64 newTimeStamp = piece->GetTimeStamp();
	LIVE_ASSERT(newPieceIndex > m_pieceIndex);
	// 按时间戳来推算正常的接收时间
	UINT64 newReceiveTime = m_receiveTime + static_cast<DWORD>(newTimeStamp - m_timeStamp);
	LIVE_ASSERT(newTimeStamp - m_timeStamp < INT_MAX);
	STREAMBUFFER_DEBUG("StreamIndicator::Update " << make_tuple(m_pieceIndex, m_timeStamp, m_receiveTime) 
		<< " " << make_tuple(newPieceIndex, newTimeStamp, newReceiveTime) 
		<< " " << make_tuple(newPieceIndex - m_pieceIndex, newTimeStamp - m_timeStamp, newReceiveTime - m_receiveTime));
	LIVE_ASSERT(m_receiveTime.get_realtime_count() - newReceiveTime < INT_MAX);
	m_pieceIndex = newPieceIndex;
	m_timeStamp = newTimeStamp;
	if (useNewPiece)
	{
		m_receiveTime = time_counter(receiveTime);
	}
	else
	{
		m_receiveTime = time_counter(newReceiveTime);
	}
}
Example #2
0
int main()
{
    int i;
	for(i=0;i++;i<100)
    	time_counter();

    return 0;
}
Example #3
0
LogClient::LogClient(const tstring& baseDir, const tstring& configDir, boost::shared_ptr<PeerInformation> peerInfo) 
	: m_ConfigDirectory(configDir)
	, m_PeerInformation(peerInfo)
	, m_BufferLogSaved(false)
	, m_FlowLogSaved(false)
{
	if ( IsEnabled() )
	{
		tstring dllpath = ppl::os::paths::combine(baseDir, _T("marker.dll"));
		m_Marker.Load(dllpath);
	}
#ifdef _DEBUG
	// debug版下尽快刷新数据
	m_LogDataSaveTime = time_counter( 0 );
#endif
}
Example #4
0
void StreamIndicator::Clear()
{
	m_pieceIndex = 0;
	m_timeStamp = 0;
	m_receiveTime = time_counter(0);
}