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()){
|
||||
Util::sleep(5); //sleep 5ms
|
||||
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()){
|
||||
while (usr->S.Received().size()){
|
||||
//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->lastStats = usr->tmpStats;
|
||||
thisStream->saveStats(usr->MyStr, usr->tmpStats);
|
||||
Stream::get()->getReadLock();
|
||||
usr->S.SendNow(thisStream->getHeader());
|
||||
Stream::get()->dropReadLock();
|
||||
break;
|
||||
}
|
||||
case 't': {
|
||||
|
|
|
@ -77,8 +77,10 @@ namespace Buffer {
|
|||
} //cancel if not connected
|
||||
if (myRing->waiting){
|
||||
Stream::get()->waitForData();
|
||||
if ( !myRing->waiting){
|
||||
if (!Stream::get()->getStream()->isNewest(myRing->b)){
|
||||
myRing->waiting = false;
|
||||
Stream::get()->getReadLock();
|
||||
myRing->b = Stream::get()->getStream()->getNext(myRing->b, allowedTracks);
|
||||
if (Stream::get()->getStream()->getPacket(myRing->b).isMember("keyframe") && myRing->playCount > 0){
|
||||
myRing->playCount--;
|
||||
if ( !myRing->playCount){
|
||||
|
|
Loading…
Add table
Reference in a new issue