Fix video_replay tool to not accumulate error.

Bug: None
Change-Id: I825f971d92ff0185450450434d94441544727700
Reviewed-on: https://webrtc-review.googlesource.com/39040
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21596}
This commit is contained in:
philipel 2018-01-11 17:28:35 +01:00 committed by Commit Bot
parent 2d49e4e18d
commit 02f0396aa1

View File

@ -22,6 +22,7 @@
#include "rtc_base/checks.h"
#include "rtc_base/flags.h"
#include "rtc_base/string_to_number.h"
#include "rtc_base/timeutils.h"
#include "system_wrappers/include/clock.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
@ -289,13 +290,22 @@ void RtpReplay() {
}
receive_stream->Start();
uint32_t last_time_ms = 0;
int64_t replay_start_ms = -1;
int num_packets = 0;
std::map<uint32_t, int> unknown_packets;
while (true) {
int64_t now_ms = rtc::TimeMillis();
if (replay_start_ms == -1)
replay_start_ms = now_ms;
test::RtpPacket packet;
if (!rtp_reader->NextPacket(&packet))
break;
int64_t deliver_in_ms = replay_start_ms + packet.time_ms - now_ms;
if (deliver_in_ms > 0)
SleepMs(deliver_in_ms);
++num_packets;
switch (call->Receiver()->DeliverPacket(
webrtc::MediaType::VIDEO,
@ -322,10 +332,6 @@ void RtpReplay() {
break;
}
}
if (last_time_ms != 0 && last_time_ms != packet.time_ms) {
SleepMs(packet.time_ms - last_time_ms);
}
last_time_ms = packet.time_ms;
}
fprintf(stderr, "num_packets: %d\n", num_packets);