From 422caafde28454f15d0220ad0459e91bed7f4009 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 22 Jun 2017 12:44:29 +0200 Subject: [PATCH] Added extra fields to RECORDING_END trigger: - time of connection start - time of connection end - duration of media - first media timestamp - last media timestamp --- src/output/output.cpp | 18 +++++++++++++++++- src/output/output.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/output/output.cpp b/src/output/output.cpp index 0dd70ba3..73f1a7a0 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -58,6 +58,8 @@ namespace Mist{ Output::Output(Socket::Connection & conn) : myConn(conn){ pushing = false; firstTime = 0; + firstPacketTime = 0xFFFFFFFFFFFFFFFFull; + lastPacketTime = 0; crc = getpid(); parseData = false; wantRequest = true; @@ -839,6 +841,10 @@ namespace Mist{ } if (prepareNext()){ if (thisPacket){ + lastPacketTime = thisPacket.getTime(); + if (firstPacketTime == 0xFFFFFFFFFFFFFFFFull){ + firstPacketTime = lastPacketTime; + } //slow down processing, if real time speed is wanted @@ -904,12 +910,22 @@ namespace Mist{ Triggers::doTrigger("CONN_CLOSE", payload, streamName); } if (isRecordingToFile && config->hasOption("target") && Triggers::shouldTrigger("RECORDING_END", streamName)){ + uint64_t rightNow = Util::epoch(); std::stringstream payl; payl << streamName << '\n'; payl << config->getString("target") << '\n'; payl << capa["name"].asStringRef() << '\n'; payl << myConn.dataUp() << '\n'; - payl << (Util::epoch() - myConn.connTime()) << '\n'; + payl << (rightNow - myConn.connTime()) << '\n'; + payl << myConn.connTime() << '\n'; + payl << rightNow << '\n'; + if (firstPacketTime != 0xFFFFFFFFFFFFFFFFull){ + payl << (lastPacketTime - firstPacketTime) << '\n'; + }else{ + payl << 0 << '\n'; + } + payl << firstPacketTime << '\n'; + payl << lastPacketTime << '\n'; Triggers::doTrigger("RECORDING_END", payl.str(), streamName); } /*LTS-END*/ diff --git a/src/output/output.h b/src/output/output.h index e07c75aa..43b7b2bc 100644 --- a/src/output/output.h +++ b/src/output/output.h @@ -133,6 +133,8 @@ namespace Mist { virtual bool isPushing(){return pushing;}; bool allowPush(const std::string & passwd); void bufferLivePacket(DTSC::Packet & packet); + uint64_t firstPacketTime; + uint64_t lastPacketTime; }; }