From a9bc4e2134a3c4209026268dd8535a5f049c8c2f Mon Sep 17 00:00:00 2001 From: Thulinma Date: Sun, 21 Jun 2020 14:03:19 +0200 Subject: [PATCH] Improved handling of later-added tracks --- src/output/output_dtsc.cpp | 22 ++++++++-------------- src/output/output_http_internal.cpp | 1 + 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/output/output_dtsc.cpp b/src/output/output_dtsc.cpp index 50ff28e3..96f5aba3 100644 --- a/src/output/output_dtsc.cpp +++ b/src/output/output_dtsc.cpp @@ -106,20 +106,14 @@ namespace Mist{ } void OutDTSC::sendNext(){ - // If there are now more selectable tracks, select the new track and do a seek to the current - // timestamp Set sentHeader to false to force it to send init data - if (userSelect.size() < 2){ - static uint64_t lastMeta = 0; - if (Util::epoch() > lastMeta + 5){ - lastMeta = Util::epoch(); - std::set validTracks = getSupportedTracks(); - if (validTracks.size() > 1){ - if (selectDefaultTracks()){ - INFO_MSG("Track selection changed - resending headers and continuing"); - sentHeader = false; - return; - } - } + // If selectable tracks changed, set sentHeader to false to force it to send init data + static uint64_t lastMeta = 0; + if (Util::epoch() > lastMeta + 5){ + lastMeta = Util::epoch(); + if (selectDefaultTracks()){ + INFO_MSG("Track selection changed - resending headers and continuing"); + sentHeader = false; + return; } } DTSC::Packet p(thisPacket, thisIdx + 1); diff --git a/src/output/output_http_internal.cpp b/src/output/output_http_internal.cpp index 34361b64..bc17bc24 100644 --- a/src/output/output_http_internal.cpp +++ b/src/output/output_http_internal.cpp @@ -1039,6 +1039,7 @@ namespace Mist{ newState = streamStatus.mapped[0]; } + if (meta){meta.refresh();} if (newState != prevState || (newState == STRMSTAT_READY && M.getValidTracks() != prevTracks)){ if (newState == STRMSTAT_READY){ reconnect();