diff --git a/src/output/output.cpp b/src/output/output.cpp index b60693a5..2a0fbb0d 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -241,9 +241,16 @@ namespace Mist { } statsPage = IPC::sharedClient("statistics", STAT_EX_SIZE, true); playerConn = IPC::sharedClient(streamName + "_users", 30, true); - updateMeta(); - + selectDefaultTracks(); + sought = false; + } + + void Output::selectDefaultTracks(){ + if (!isInitialized){ + initialize(); + return; + } //check which tracks don't actually exist std::set toRemove; for (std::set::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){ @@ -343,7 +350,6 @@ namespace Mist { DEBUG_MSG(DLVL_MEDIUM, "Selected tracks: %s (%lu)", selected.str().c_str(), selectedTracks.size()); } - sought = false; } /// Clears the buffer, sets parseData to false, and generally makes not very much happen at all. diff --git a/src/output/output.h b/src/output/output.h index fbb8fffe..54eee158 100644 --- a/src/output/output.h +++ b/src/output/output.h @@ -59,6 +59,7 @@ namespace Mist { void setBlocking(bool blocking); long unsigned int getMainSelectedTrack(); void updateMeta(); + void selectDefaultTracks(); static bool listenMode(){return true;} //virtuals. The optional virtuals have default implementations that do as little as possible. virtual void sendNext() {}//REQUIRED! Others are optional. diff --git a/src/output/output_http.cpp b/src/output/output_http.cpp index 7cec4c80..adffc4e2 100644 --- a/src/output/output_http.cpp +++ b/src/output/output_http.cpp @@ -211,6 +211,7 @@ namespace Mist { if (H.GetVar("video") != ""){ selectedTracks.insert(JSON::Value(H.GetVar("video")).asInt()); } + selectDefaultTracks(); onHTTP(); H.Clean(); }