Fixed a bug with reading first metadata through parseNext.
This commit is contained in:
parent
d77ce7d9e8
commit
92f86e0a9c
1 changed files with 21 additions and 2 deletions
23
lib/dtsc.cpp
23
lib/dtsc.cpp
|
@ -843,8 +843,27 @@ void DTSC::File::parseNext(){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (memcmp(buffer, DTSC::Magic_Header, 4) == 0){
|
if (memcmp(buffer, DTSC::Magic_Header, 4) == 0){
|
||||||
readHeader(lastreadpos);
|
if (lastreadpos != 0){
|
||||||
jsonbuffer = metadata;
|
readHeader(lastreadpos);
|
||||||
|
jsonbuffer = metadata;
|
||||||
|
}else{
|
||||||
|
if (fread(buffer, 4, 1, F) != 1){
|
||||||
|
fprintf(stderr, "Could not read size\n");
|
||||||
|
strbuffer = "";
|
||||||
|
jsonbuffer.null();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint32_t * ubuffer = (uint32_t *)buffer;
|
||||||
|
long packSize = ntohl(ubuffer[0]);
|
||||||
|
strbuffer.resize(packSize);
|
||||||
|
if (fread((void*)strbuffer.c_str(), packSize, 1, F) != 1){
|
||||||
|
fprintf(stderr, "Could not read packet\n");
|
||||||
|
strbuffer = "";
|
||||||
|
jsonbuffer.null();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
jsonbuffer = JSON::fromDTMI(strbuffer);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long long unsigned int version = 0;
|
long long unsigned int version = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue