Showing the changes to assignment-client/src/entities/EntityTreeSendThread.cpp (1 of 1 file). Show all
Unified · Split
| @@ -414,8 +414,10 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 413 unmodified lines | ||
| 414 | 414 | #ifdef SEND_SORTED_ENTITIES |
| 415 | 415 | //auto entityTree = std::static_pointer_cast<EntityTree>(_myServer->getOctree()); |
| 416 | 416 | if (_sendQueue.empty()) { |
| 417 | + OctreeServer::trackEncodeTime(OctreeServer::SKIP_TIME); | |
| 417 | 418 | return false; |
| 418 | 419 | } |
| 420 | + quint64 encodeStart = usecTimestampNow(); | |
| 419 | 421 | if (!_packetData.hasContent()) { |
| 420 | 422 | // This is the beginning of a new packet. |
| 421 | 423 | // We pack minimal data for this to be accepted as an OctreeElement payload for the root element. |
| @@ -450,6 +452,8 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 28 unmodified lines | ||
| 450 | 452 | |
| 451 | 453 | LevelDetails entitiesLevel = _packetData.startLevel(); |
| 452 | 454 | uint64_t sendTime = usecTimestampNow(); |
| 455 | + auto nodeData = static_cast<OctreeQueryNode*>(params.nodeData); | |
| 456 | + nodeData->stats.encodeStarted(); | |
| 453 | 457 | while(!_sendQueue.empty()) { |
| 454 | 458 | PrioritizedEntity queuedItem = _sendQueue.top(); |
| 455 | 459 | EntityItemPointer entity = queuedItem.getEntity(); |
| @@ -476,6 +480,7 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 20 unmodified lines | ||
| 476 | 480 | _sendQueue.pop(); |
| 477 | 481 | _entitiesInQueue.erase(entity.get()); |
| 478 | 482 | } |
| 483 | + nodeData->stats.encodeStopped(); | |
| 479 | 484 | if (_sendQueue.empty()) { |
| 480 | 485 | assert(_entitiesInQueue.empty()); |
| 481 | 486 | params.stopReason = EncodeBitstreamParams::FINISHED; |
| @@ -484,10 +489,12 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 2 unmodified lines | ||
| 484 | 489 | |
| 485 | 490 | if (_numEntities == 0) { |
| 486 | 491 | _packetData.discardLevel(entitiesLevel); |
| 492 | + OctreeServer::trackEncodeTime((float)(usecTimestampNow() - encodeStart)); | |
| 487 | 493 | return false; |
| 488 | 494 | } |
| 489 | 495 | _packetData.endLevel(entitiesLevel); |
| 490 | 496 | _packetData.updatePriorBytes(_numEntitiesOffset, (const unsigned char*)&_numEntities, sizeof(_numEntities)); |
| 497 | + OctreeServer::trackEncodeTime((float)(usecTimestampNow() - encodeStart)); | |
| 491 | 498 | return true; |
| 492 | 499 | |
| 493 | 500 | #else // SEND_SORTED_ENTITIES |