Fixed HDS live playback.
This commit is contained in:
parent
f86476153e
commit
f94f7963de
1 changed files with 6 additions and 3 deletions
|
@ -164,14 +164,16 @@ namespace Mist {
|
||||||
|
|
||||||
void OutHDS::sendNext(){
|
void OutHDS::sendNext(){
|
||||||
if (thisPacket.getTime() >= playUntil){
|
if (thisPacket.getTime() >= playUntil){
|
||||||
DEBUG_MSG(DLVL_HIGH, "(%d) Done sending fragment", getpid() );
|
VERYHIGH_MSG("Done sending fragment (%llu >= %llu)", thisPacket.getTime(), playUntil);
|
||||||
stop();
|
stop();
|
||||||
wantRequest = true;
|
wantRequest = true;
|
||||||
H.Chunkify("", 0, myConn);
|
H.Chunkify("", 0, myConn);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tag.DTSCLoader(thisPacket, myMeta.tracks[thisPacket.getTrackId()]);
|
tag.DTSCLoader(thisPacket, myMeta.tracks[thisPacket.getTrackId()]);
|
||||||
H.Chunkify(tag.data, tag.len, myConn);
|
if (tag.len){
|
||||||
|
H.Chunkify(tag.data, tag.len, myConn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OutHDS::onHTTP(){
|
void OutHDS::onHTTP(){
|
||||||
|
@ -212,7 +214,7 @@ namespace Mist {
|
||||||
}
|
}
|
||||||
//delay if we don't have the next fragment available yet
|
//delay if we don't have the next fragment available yet
|
||||||
unsigned int timeout = 0;
|
unsigned int timeout = 0;
|
||||||
while (myConn && fragNum > myMeta.tracks[tid].missedFrags + myMeta.tracks[tid].fragments.size() - 1){
|
while (myConn && fragNum >= myMeta.tracks[tid].missedFrags + myMeta.tracks[tid].fragments.size() - 1){
|
||||||
//time out after 21 seconds
|
//time out after 21 seconds
|
||||||
if (++timeout > 42){
|
if (++timeout > 42){
|
||||||
myConn.close();
|
myConn.close();
|
||||||
|
@ -223,6 +225,7 @@ namespace Mist {
|
||||||
}
|
}
|
||||||
mstime = myMeta.tracks[tid].getKey(myMeta.tracks[tid].fragments[fragNum - myMeta.tracks[tid].missedFrags].getNumber()).getTime();
|
mstime = myMeta.tracks[tid].getKey(myMeta.tracks[tid].fragments[fragNum - myMeta.tracks[tid].missedFrags].getNumber()).getTime();
|
||||||
mslen = myMeta.tracks[tid].fragments[fragNum - myMeta.tracks[tid].missedFrags].getDuration();
|
mslen = myMeta.tracks[tid].fragments[fragNum - myMeta.tracks[tid].missedFrags].getDuration();
|
||||||
|
VERYHIGH_MSG("Playing from %llu for %llu ms", mstime, mslen);
|
||||||
|
|
||||||
selectedTracks.clear();
|
selectedTracks.clear();
|
||||||
selectedTracks.insert(tid);
|
selectedTracks.insert(tid);
|
||||||
|
|
Loading…
Add table
Reference in a new issue