diff --git a/lib/util.cpp b/lib/util.cpp index f6ea07be..f52f2ee5 100644 --- a/lib/util.cpp +++ b/lib/util.cpp @@ -137,6 +137,14 @@ namespace Util{ return result.size() == positions.size(); } + void stringToLower(std::string & val){ + int i = 0; + while(val[i]){ + val.at(i) = tolower(val.at(i)); + i++; + } + } + /// 64-bits version of ftell uint64_t ftell(FILE *stream){ /// \TODO Windows implementation (e.g. _ftelli64 ?) diff --git a/lib/util.h b/lib/util.h index b62e7d18..841b2901 100644 --- a/lib/util.h +++ b/lib/util.h @@ -9,6 +9,8 @@ namespace Util{ bool createPath(const std::string &path); bool stringScan(const std::string &src, const std::string &pattern, std::deque &result); + void stringToLower(std::string &val); + uint64_t ftell(FILE *stream); uint64_t fseek(FILE *stream, uint64_t offset, int whence); diff --git a/src/io.cpp b/src/io.cpp index f2f50a5e..6689cd5f 100644 --- a/src/io.cpp +++ b/src/io.cpp @@ -230,7 +230,7 @@ namespace Mist { } } if (i == 1024){ - FAIL_MSG("Could not erase page %lu for track %lu->%lu stream %s from track index!", pageNumber, tid, mapTid, streamName.c_str()); + ERROR_MSG("Could not erase page %lu for track %lu->%lu stream %s from track index!", pageNumber, tid, mapTid, streamName.c_str()); } if (!nProxy.pagesByTrack.count(tid)){ diff --git a/src/output/output.cpp b/src/output/output.cpp index 0a5c0f99..705c030a 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -472,11 +472,21 @@ namespace Mist{ if (!found){ jsonForEach((*itb), itc){ if (found){break;} - for (std::map::reverse_iterator trit = myMeta.tracks.rbegin(); trit != myMeta.tracks.rend(); trit++){ - if (trit->second.codec == (*itc).asStringRef() || (*itc).asStringRef() == "*"){ - selectedTracks.insert(trit->first); - found = true; - if ((*itc).asStringRef() != "*"){break;} + if (myMeta.live){ + for (std::map::reverse_iterator trit = myMeta.tracks.rbegin(); trit != myMeta.tracks.rend(); trit++){ + if (trit->second.codec == (*itc).asStringRef() || (*itc).asStringRef() == "*"){ + selectedTracks.insert(trit->first); + found = true; + if ((*itc).asStringRef() != "*"){break;} + } + } + }else{ + for (std::map::iterator trit = myMeta.tracks.begin(); trit != myMeta.tracks.end(); trit++){ + if (trit->second.codec == (*itc).asStringRef() || (*itc).asStringRef() == "*"){ + selectedTracks.insert(trit->first); + found = true; + if ((*itc).asStringRef() != "*"){break;} + } } } }