Optimized getWritableIdentifier to improve the speed of MistInBuffer even further.
This commit is contained in:
parent
9631b79e86
commit
7c759c7664
2 changed files with 8 additions and 3 deletions
|
@ -282,6 +282,8 @@ namespace DTSC {
|
||||||
int width;
|
int width;
|
||||||
int height;
|
int height;
|
||||||
int fpks;
|
int fpks;
|
||||||
|
private:
|
||||||
|
std::string cachedIdent;
|
||||||
};
|
};
|
||||||
|
|
||||||
///\brief Class for storage of meta data
|
///\brief Class for storage of meta data
|
||||||
|
|
|
@ -1376,9 +1376,11 @@ namespace DTSC {
|
||||||
|
|
||||||
///\brief Returns a writable identifier for a track, to prevent overwrites on readout
|
///\brief Returns a writable identifier for a track, to prevent overwrites on readout
|
||||||
std::string Track::getWritableIdentifier() {
|
std::string Track::getWritableIdentifier() {
|
||||||
|
if (cachedIdent.size()){return cachedIdent;}
|
||||||
std::stringstream result;
|
std::stringstream result;
|
||||||
result << getIdentifier() << "_" << trackID;
|
result << getIdentifier() << "_" << trackID;
|
||||||
return result.str();
|
cachedIdent = result.str();
|
||||||
|
return cachedIdent;
|
||||||
}
|
}
|
||||||
|
|
||||||
///\brief Determines the "packed" size of a track
|
///\brief Determines the "packed" size of a track
|
||||||
|
@ -1418,8 +1420,9 @@ namespace DTSC {
|
||||||
|
|
||||||
///\brief Writes a track to a pointer
|
///\brief Writes a track to a pointer
|
||||||
void Track::writeTo(char *& p) {
|
void Track::writeTo(char *& p) {
|
||||||
writePointer(p, convertShort(getWritableIdentifier().size()), 2);
|
std::string trackIdent = getWritableIdentifier();
|
||||||
writePointer(p, getWritableIdentifier());
|
writePointer(p, convertShort(trackIdent.size()), 2);
|
||||||
|
writePointer(p, trackIdent);
|
||||||
writePointer(p, "\340", 1);//Begin track object
|
writePointer(p, "\340", 1);//Begin track object
|
||||||
writePointer(p, "\000\011fragments\002", 12);
|
writePointer(p, "\000\011fragments\002", 12);
|
||||||
writePointer(p, convertInt(fragments.size() * 11), 4);
|
writePointer(p, convertInt(fragments.size() * 11), 4);
|
||||||
|
|
Loading…
Add table
Reference in a new issue