blob: a0a3f4d10f70df71da505f726d6d19ebf35ca307 [file] [log] [blame]
ilnik2edc6842017-07-06 03:06:50 -07001/*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/api/video/video_timing.h"
12
13#include <sstream>
14
15namespace webrtc {
16
17TimingFrameInfo::TimingFrameInfo()
18 : rtp_timestamp(0),
19 capture_time_ms(-1),
20 encode_start_ms(-1),
21 encode_finish_ms(-1),
22 packetization_finish_ms(-1),
23 pacer_exit_ms(-1),
24 network_timestamp_ms(-1),
25 network2_timestamp_ms(-1),
26 receive_start_ms(-1),
27 receive_finish_ms(-1),
28 decode_start_ms(-1),
29 decode_finish_ms(-1),
30 render_time_ms(-1) {}
31
32int64_t TimingFrameInfo::EndToEndDelay() const {
33 return capture_time_ms >= 0 ? decode_finish_ms - capture_time_ms : -1;
34}
35
36bool TimingFrameInfo::IsLongerThan(const TimingFrameInfo& other) const {
37 int64_t other_delay = other.EndToEndDelay();
38 return other_delay == -1 || EndToEndDelay() > other_delay;
39}
40
41std::string TimingFrameInfo::ToString() const {
42 std::stringstream out;
43 out << rtp_timestamp << ',' << capture_time_ms << ',' << encode_start_ms
44 << ',' << encode_finish_ms << ',' << packetization_finish_ms << ','
45 << pacer_exit_ms << ',' << network_timestamp_ms << ','
46 << network2_timestamp_ms << ',' << receive_start_ms << ','
47 << receive_finish_ms << ',' << decode_start_ms << ',' << decode_finish_ms
48 << ',' << render_time_ms;
49 return out.str();
50}
51
52} // namespace webrtc