From ea9abcceb69b21aae2ab75453e41ae8403ff0a6b Mon Sep 17 00:00:00 2001 From: Thulinma Date: Mon, 25 Mar 2013 19:49:00 +0100 Subject: [PATCH] When no video channel is present, inject a seek time at most every ~2000ms. --- lib/dtsc.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/dtsc.cpp b/lib/dtsc.cpp index 3a7bfa37..7d2ad220 100644 --- a/lib/dtsc.cpp +++ b/lib/dtsc.cpp @@ -258,11 +258,13 @@ void DTSC::Stream::advanceRings(){ }while (repeat); } static int fragNum = 1; - if ((lastType() == VIDEO && buffers.front().isMember("keyframe")) || (!metadata.isMember("video") && lastType() == AUDIO)){ + static unsigned int lastkeytime = 4242; + if ((lastType() == VIDEO && buffers.front().isMember("keyframe")) || (!metadata.isMember("video") && buffers.front()["time"].asInt() / 2000 != lastkeytime)){ keyframes.push_front(DTSC::Ring(0)); if ( !buffers.front().isMember("fragnum")){ buffers.front()["fragnum"] = fragNum++; } + lastkeytime = buffers.front()["time"].asInt() / 2000; } unsigned int timeBuffered = 0; if (keyframes.size() > 1){