have partial elements set a stop reason of DIDNT_FIT to fix partial encoding issues

This commit is contained in:
ZappoMan 2014-08-18 09:37:07 -07:00
parent f8f0da189f
commit a3bb8b1239
3 changed files with 30 additions and 3 deletions

View file

@ -489,12 +489,18 @@ qDebug() << "OctreeSendThread::packetDistributor()... line:" << __LINE__;
qDebug() << " _packetData.getTargetSize()=" << _packetData.getTargetSize();
qDebug() << " MAX_OCTREE_PACKET_DATA_SIZE=" << MAX_OCTREE_PACKET_DATA_SIZE;
qDebug() << " _packetData.hasContent()=" << _packetData.hasContent();
qDebug() << " _packetData.getUncompressedSize()=" << _packetData.getUncompressedSize();
qDebug() << " _packetData.getFinalizedSize()=" << _packetData.getFinalizedSize();
qDebug() << " _packetData.isCompressed()=" << _packetData.isCompressed();
qDebug() << " bytesWritten=" << bytesWritten;
qDebug() << " extraPackingAttempts=" << extraPackingAttempts;
qDebug() << " REASONABLE_NUMBER_OF_PACKING_ATTEMPTS=" << REASONABLE_NUMBER_OF_PACKING_ATTEMPTS;
if (params.stopReason == EncodeBitstreamParams::DIDNT_FIT) {
qDebug() << " params.stopReason == EncodeBitstreamParams::DIDNT_FIT";
} else {
qDebug() << " params.stopReason == ???";
params.displayStopReason();
qDebug() << " params.stopReason=" << params.getStopReason();
}
// if we're trying to fill a full size packet, then we use this logic to determine if we have a DIDNT_FIT case.

View file

@ -1472,6 +1472,8 @@ qDebug() << " childAppendState=" << childAppendState;
if (childAppendState == OctreeElement::PARTIAL) {
elementAppendState = OctreeElement::PARTIAL;
qDebug() << " childAppendState == OctreeElement::PARTIAL ... so elementAppendState = OctreeElement::PARTIAL";
qDebug() << " also set params.stopReason = EncodeBitstreamParams::DIDNT_FIT";
params.stopReason = EncodeBitstreamParams::DIDNT_FIT;
}
int bytesAfterChild = packetData->getUncompressedSize();
@ -1753,7 +1755,9 @@ qDebug() << " line:" << __LINE__ << "elementAppendState == OctreeElement::PAR
}
}
qDebug() << " LEAVING... line:" << __LINE__ << "bytesAtThisLevel=" << bytesAtThisLevel;
qDebug() << "LEAVING... line:" << __LINE__;
qDebug() << " bytesAtThisLevel=" << bytesAtThisLevel;
qDebug() << " params.stopReason=" << params.getStopReason();
return bytesAtThisLevel;
}

View file

@ -156,6 +156,23 @@ public:
case OCCLUDED: qDebug("OCCLUDED"); break;
}
}
QString getStopReason() {
switch (stopReason) {
default:
case UNKNOWN: return QString("UNKNOWN"); break;
case DIDNT_FIT: return QString("DIDNT_FIT"); break;
case NULL_NODE: return QString("NULL_NODE"); break;
case TOO_DEEP: return QString("TOO_DEEP"); break;
case OUT_OF_JURISDICTION: return QString("OUT_OF_JURISDICTION"); break;
case LOD_SKIP: return QString("LOD_SKIP"); break;
case OUT_OF_VIEW: return QString("OUT_OF_VIEW"); break;
case WAS_IN_VIEW: return QString("WAS_IN_VIEW"); break;
case NO_CHANGE: return QString("NO_CHANGE"); break;
case OCCLUDED: return QString("OCCLUDED"); break;
}
}
};
class ReadElementBufferToTreeArgs {