Fix for HLS URLs when only one track is available.
This commit is contained in:
parent
507eb80707
commit
875e8ef317
2 changed files with 18 additions and 12 deletions
|
@ -52,11 +52,11 @@ namespace Controller {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (URL.substr(0, 4) == "push"){
|
if (URL.substr(0, 1) != "/"){
|
||||||
//push-style stream
|
//push-style stream
|
||||||
if (hasViewers(name)){
|
if (hasViewers(name)){
|
||||||
data["meta"].null();
|
data["meta"].null();
|
||||||
IPC::sharedPage streamIndex(name,0,false,false);
|
IPC::sharedPage streamIndex(name,8 * 1024 * 1024,false,false);
|
||||||
if (!streamIndex.mapped){
|
if (!streamIndex.mapped){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,17 +221,23 @@ namespace Mist {
|
||||||
std::string fmtStr = "/hls/" + streamName + "/%u_%u/%llu_%llu.ts";
|
std::string fmtStr = "/hls/" + streamName + "/%u_%u/%llu_%llu.ts";
|
||||||
long long unsigned int from;
|
long long unsigned int from;
|
||||||
if (sscanf(tmpStr.c_str(), fmtStr.c_str(), &vidTrack, &audTrack, &from, &until) != 4){
|
if (sscanf(tmpStr.c_str(), fmtStr.c_str(), &vidTrack, &audTrack, &from, &until) != 4){
|
||||||
WARN_MSG("Could not parse URL: %s", HTTP_R.getUrl().c_str());
|
fmtStr = "/hls/" + streamName + "/%u/%llu_%llu.ts";
|
||||||
HTTP_S.Clean();
|
if (sscanf(tmpStr.c_str(), fmtStr.c_str(), &vidTrack, &from, &until) != 3){
|
||||||
HTTP_S.SetBody("The HLS URL wasn't understood - what did you want, exactly?\n");
|
WARN_MSG("Could not parse URL: %s", HTTP_R.getUrl().c_str());
|
||||||
myConn.SendNow(HTTP_S.BuildResponse("404", "URL mismatch"));
|
HTTP_S.Clean();
|
||||||
HTTP_R.Clean(); //clean for any possible next requests
|
HTTP_S.SetBody("The HLS URL wasn't understood - what did you want, exactly?\n");
|
||||||
continue;
|
myConn.SendNow(HTTP_S.BuildResponse("404", "URL mismatch"));
|
||||||
|
HTTP_R.Clean(); //clean for any possible next requests
|
||||||
|
continue;
|
||||||
|
}else{
|
||||||
|
selectedTracks.clear();
|
||||||
|
selectedTracks.insert(vidTrack);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
selectedTracks.clear();
|
||||||
|
selectedTracks.insert(vidTrack);
|
||||||
|
selectedTracks.insert(audTrack);
|
||||||
}
|
}
|
||||||
DEBUG_MSG(DLVL_DEVEL, "Vid %u, Aud %u, From %llu, Until %llu", vidTrack, audTrack, from, until);
|
|
||||||
selectedTracks.clear();
|
|
||||||
selectedTracks.insert(vidTrack);
|
|
||||||
selectedTracks.insert(audTrack);
|
|
||||||
|
|
||||||
if (myMeta.live){
|
if (myMeta.live){
|
||||||
/// \todo Detection of out-of-range parts.
|
/// \todo Detection of out-of-range parts.
|
||||||
|
|
Loading…
Add table
Reference in a new issue