Fixed buffer headers and waiting code.
This commit is contained in:
parent
6c64a854d5
commit
7bbfbda556
2 changed files with 6 additions and 9 deletions
|
@ -66,14 +66,6 @@ namespace Buffer {
|
||||||
while (usr->S.connected()){
|
while (usr->S.connected()){
|
||||||
Util::sleep(5); //sleep 5ms
|
Util::sleep(5); //sleep 5ms
|
||||||
if ( !usr->myRing->playCount || !usr->Send(newSelect)){
|
if ( !usr->myRing->playCount || !usr->Send(newSelect)){
|
||||||
// if (usr->myRing->updated){
|
|
||||||
Stream::get()->getReadLock();
|
|
||||||
usr->S.SendNow(thisStream->getHeader());
|
|
||||||
// std::cerr << "Sending updated header: " << std::endl;
|
|
||||||
// std::cerr << Stream::get()->getStream()->metadata.toPrettyString() << std::endl;
|
|
||||||
Stream::get()->dropReadLock();
|
|
||||||
// usr->myRing->updated = false;
|
|
||||||
// }
|
|
||||||
if (usr->S.spool()){
|
if (usr->S.spool()){
|
||||||
while (usr->S.Received().size()){
|
while (usr->S.Received().size()){
|
||||||
//delete anything that doesn't end with a newline
|
//delete anything that doesn't end with a newline
|
||||||
|
@ -110,6 +102,9 @@ namespace Buffer {
|
||||||
usr->curr_down = (usr->tmpStats.down - usr->lastStats.down) / secs;
|
usr->curr_down = (usr->tmpStats.down - usr->lastStats.down) / secs;
|
||||||
usr->lastStats = usr->tmpStats;
|
usr->lastStats = usr->tmpStats;
|
||||||
thisStream->saveStats(usr->MyStr, usr->tmpStats);
|
thisStream->saveStats(usr->MyStr, usr->tmpStats);
|
||||||
|
Stream::get()->getReadLock();
|
||||||
|
usr->S.SendNow(thisStream->getHeader());
|
||||||
|
Stream::get()->dropReadLock();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 't': {
|
case 't': {
|
||||||
|
|
|
@ -77,8 +77,10 @@ namespace Buffer {
|
||||||
} //cancel if not connected
|
} //cancel if not connected
|
||||||
if (myRing->waiting){
|
if (myRing->waiting){
|
||||||
Stream::get()->waitForData();
|
Stream::get()->waitForData();
|
||||||
if ( !myRing->waiting){
|
if (!Stream::get()->getStream()->isNewest(myRing->b)){
|
||||||
|
myRing->waiting = false;
|
||||||
Stream::get()->getReadLock();
|
Stream::get()->getReadLock();
|
||||||
|
myRing->b = Stream::get()->getStream()->getNext(myRing->b, allowedTracks);
|
||||||
if (Stream::get()->getStream()->getPacket(myRing->b).isMember("keyframe") && myRing->playCount > 0){
|
if (Stream::get()->getStream()->getPacket(myRing->b).isMember("keyframe") && myRing->playCount > 0){
|
||||||
myRing->playCount--;
|
myRing->playCount--;
|
||||||
if ( !myRing->playCount){
|
if ( !myRing->playCount){
|
||||||
|
|
Loading…
Add table
Reference in a new issue