This should fix all DTSC reading speed-related issues.
This commit is contained in:
parent
331fac9146
commit
9fb606aa4f
2 changed files with 14 additions and 8 deletions
|
@ -117,9 +117,6 @@ namespace Buffer{
|
||||||
//slow down packet receiving to real-time
|
//slow down packet receiving to real-time
|
||||||
now = getNowMS();
|
now = getNowMS();
|
||||||
if ((now - lastPacketTime >= currPacketTime - prevPacketTime) || (currPacketTime <= prevPacketTime)){
|
if ((now - lastPacketTime >= currPacketTime - prevPacketTime) || (currPacketTime <= prevPacketTime)){
|
||||||
std::cin.read(charBuffer, 1024*10);
|
|
||||||
charCount = std::cin.gcount();
|
|
||||||
inBuffer.append(charBuffer, charCount);
|
|
||||||
thisStream->getWriteLock();
|
thisStream->getWriteLock();
|
||||||
if (thisStream->getStream()->parsePacket(inBuffer)){
|
if (thisStream->getStream()->parsePacket(inBuffer)){
|
||||||
thisStream->getStream()->outPacket(0);
|
thisStream->getStream()->outPacket(0);
|
||||||
|
@ -129,6 +126,9 @@ namespace Buffer{
|
||||||
thisStream->dropWriteLock(true);
|
thisStream->dropWriteLock(true);
|
||||||
}else{
|
}else{
|
||||||
thisStream->dropWriteLock(false);
|
thisStream->dropWriteLock(false);
|
||||||
|
std::cin.read(charBuffer, 1024*10);
|
||||||
|
charCount = std::cin.gcount();
|
||||||
|
inBuffer.append(charBuffer, charCount);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if (((currPacketTime - prevPacketTime) - (now - lastPacketTime)) > 999){
|
if (((currPacketTime - prevPacketTime) - (now - lastPacketTime)) > 999){
|
||||||
|
@ -149,17 +149,22 @@ namespace Buffer{
|
||||||
std::string inBuffer;
|
std::string inBuffer;
|
||||||
while (buffer_running){
|
while (buffer_running){
|
||||||
if (thisStream->getIPInput().connected()){
|
if (thisStream->getIPInput().connected()){
|
||||||
if (thisStream->getIPInput().iread(inBuffer)){
|
if (inBuffer.size() > 0){
|
||||||
thisStream->getWriteLock();
|
thisStream->getWriteLock();
|
||||||
if (thisStream->getStream()->parsePacket(inBuffer)){
|
if (thisStream->getStream()->parsePacket(inBuffer)){
|
||||||
thisStream->getStream()->outPacket(0);
|
thisStream->getStream()->outPacket(0);
|
||||||
thisStream->dropWriteLock(true);
|
thisStream->dropWriteLock(true);
|
||||||
}else{
|
}else{
|
||||||
thisStream->dropWriteLock(false);
|
thisStream->dropWriteLock(false);
|
||||||
|
thisStream->getIPInput().iread(inBuffer);
|
||||||
|
usleep(1000);//1ms wait
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
thisStream->getIPInput().iread(inBuffer);
|
||||||
|
usleep(1000);//1ms wait
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
usleep(1000000);
|
usleep(1000000);//1s wait
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SS.close();
|
SS.close();
|
||||||
|
|
|
@ -27,9 +27,6 @@ namespace Converters{
|
||||||
bool doneheader = false;
|
bool doneheader = false;
|
||||||
|
|
||||||
while (std::cin.good()){
|
while (std::cin.good()){
|
||||||
std::cin.read(charBuffer, 1024*10);
|
|
||||||
charCount = std::cin.gcount();
|
|
||||||
inBuffer.append(charBuffer, charCount);
|
|
||||||
if (Strm.parsePacket(inBuffer)){
|
if (Strm.parsePacket(inBuffer)){
|
||||||
if (!doneheader){
|
if (!doneheader){
|
||||||
doneheader = true;
|
doneheader = true;
|
||||||
|
@ -48,6 +45,10 @@ namespace Converters{
|
||||||
if (FLV_out.DTSCLoader(Strm)){
|
if (FLV_out.DTSCLoader(Strm)){
|
||||||
std::cout.write(FLV_out.data, FLV_out.len);
|
std::cout.write(FLV_out.data, FLV_out.len);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
std::cin.read(charBuffer, 1024*10);
|
||||||
|
charCount = std::cin.gcount();
|
||||||
|
inBuffer.append(charBuffer, charCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue