Fixed a few small bugs regarding the output of DTSCv2
This commit is contained in:
parent
c4fecd7e3d
commit
23813cc9b2
1 changed files with 17 additions and 13 deletions
30
lib/dtsc.cpp
30
lib/dtsc.cpp
|
@ -43,19 +43,6 @@ bool DTSC::Stream::parsePacket(std::string & buffer){
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
static bool syncing = false;
|
static bool syncing = false;
|
||||||
if (buffer.length() > 8){
|
if (buffer.length() > 8){
|
||||||
if (memcmp(buffer.c_str(), DTSC::Magic_Header, 4) == 0){
|
|
||||||
len = ntohl(((uint32_t *)buffer.c_str())[1]);
|
|
||||||
if (buffer.length() < len + 8){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
unsigned int i = 0;
|
|
||||||
metadata = JSON::fromDTMI((unsigned char*)buffer.c_str() + 8, len, i);
|
|
||||||
metadata.removeMember("moreheader");
|
|
||||||
buffer.erase(0, len + 8);
|
|
||||||
if (buffer.length() <= 8){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int version = 0;
|
int version = 0;
|
||||||
if (memcmp(buffer.c_str(), DTSC::Magic_Packet, 4) == 0){
|
if (memcmp(buffer.c_str(), DTSC::Magic_Packet, 4) == 0){
|
||||||
version = 1;
|
version = 1;
|
||||||
|
@ -63,6 +50,23 @@ bool DTSC::Stream::parsePacket(std::string & buffer){
|
||||||
if (memcmp(buffer.c_str(), DTSC::Magic_Packet2, 4) == 0){
|
if (memcmp(buffer.c_str(), DTSC::Magic_Packet2, 4) == 0){
|
||||||
version = 2;
|
version = 2;
|
||||||
}
|
}
|
||||||
|
if (memcmp(buffer.c_str(), DTSC::Magic_Header, 4) == 0){
|
||||||
|
len = ntohl(((uint32_t *)buffer.c_str())[1]);
|
||||||
|
if (buffer.length() < len + 8){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
unsigned int i = 0;
|
||||||
|
if (version == 1){
|
||||||
|
metadata = JSON::fromDTMI((unsigned char*)buffer.c_str() + 8, len, i);
|
||||||
|
}else{
|
||||||
|
metadata = JSON::fromDTMI2(buffer.substr(8));
|
||||||
|
}
|
||||||
|
metadata.removeMember("moreheader");
|
||||||
|
buffer.erase(0, len + 8);
|
||||||
|
if (buffer.length() <= 8){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (version){
|
if (version){
|
||||||
len = ntohl(((uint32_t *)buffer.c_str())[1]);
|
len = ntohl(((uint32_t *)buffer.c_str())[1]);
|
||||||
if (buffer.length() < len + 8){
|
if (buffer.length() < len + 8){
|
||||||
|
|
Loading…
Add table
Reference in a new issue