Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: webrtc/video/video_quality_test.cc

Issue 1814023003: Fixing issues with timestamps in video_quality_test.cc. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Typo. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 #include <stdio.h> 10 #include <stdio.h>
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 delete thread; 111 delete thread;
112 } 112 }
113 } 113 }
114 114
115 virtual void SetReceiver(PacketReceiver* receiver) { receiver_ = receiver; } 115 virtual void SetReceiver(PacketReceiver* receiver) { receiver_ = receiver; }
116 116
117 DeliveryStatus DeliverPacket(MediaType media_type, 117 DeliveryStatus DeliverPacket(MediaType media_type,
118 const uint8_t* packet, 118 const uint8_t* packet,
119 size_t length, 119 size_t length,
120 const PacketTime& packet_time) override { 120 const PacketTime& packet_time) override {
121 // Ignore timestamps of RTCP packets. They're not synchronized with
122 // RTP packet timestamps and so they would confuse wrap_handler_.
123 if (RtpHeaderParser::IsRtcp(packet, length)) {
124 return receiver_->DeliverPacket(media_type, packet, length, packet_time);
125 }
126
sprang_webrtc 2016/03/18 10:05:29 Thinking some more about this, perhaps we should e
121 RtpUtility::RtpHeaderParser parser(packet, length); 127 RtpUtility::RtpHeaderParser parser(packet, length);
122 RTPHeader header; 128 RTPHeader header;
123 parser.Parse(&header); 129 parser.Parse(&header);
124 { 130 {
125 rtc::CritScope lock(&crit_); 131 rtc::CritScope lock(&crit_);
126 int64_t timestamp = 132 int64_t timestamp =
127 wrap_handler_.Unwrap(header.timestamp - rtp_timestamp_delta_); 133 wrap_handler_.Unwrap(header.timestamp - rtp_timestamp_delta_);
128 recv_times_[timestamp] = 134 recv_times_[timestamp] =
129 Clock::GetRealTimeClock()->CurrentNtpInMilliseconds(); 135 Clock::GetRealTimeClock()->CurrentNtpInMilliseconds();
130 } 136 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 if (frames_recorded_ < frames_to_process_) 204 if (frames_recorded_ < frames_to_process_)
199 encoded_frame_size_.AddSample(frame.length_); 205 encoded_frame_size_.AddSample(frame.length_);
200 } 206 }
201 207
202 void RenderFrame(const VideoFrame& video_frame, 208 void RenderFrame(const VideoFrame& video_frame,
203 int time_to_render_ms) override { 209 int time_to_render_ms) override {
204 int64_t render_time_ms = 210 int64_t render_time_ms =
205 Clock::GetRealTimeClock()->CurrentNtpInMilliseconds(); 211 Clock::GetRealTimeClock()->CurrentNtpInMilliseconds();
206 212
207 rtc::CritScope lock(&crit_); 213 rtc::CritScope lock(&crit_);
208 uint32_t send_timestamp = 214 int64_t send_timestamp =
209 wrap_handler_.Unwrap(video_frame.timestamp() - rtp_timestamp_delta_); 215 wrap_handler_.Unwrap(video_frame.timestamp() - rtp_timestamp_delta_);
210 216
211 while (wrap_handler_.Unwrap(frames_.front().timestamp()) < send_timestamp) { 217 while (wrap_handler_.Unwrap(frames_.front().timestamp()) < send_timestamp) {
212 if (last_rendered_frame_.IsZeroSize()) { 218 if (last_rendered_frame_.IsZeroSize()) {
213 // No previous frame rendered, this one was dropped after sending but 219 // No previous frame rendered, this one was dropped after sending but
214 // before rendering. 220 // before rendering.
215 ++dropped_frames_before_rendering_; 221 ++dropped_frames_before_rendering_;
216 frames_.pop_front(); 222 frames_.pop_front();
217 RTC_CHECK(!frames_.empty()); 223 RTC_CHECK(!frames_.empty());
218 continue; 224 continue;
(...skipping 905 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 video_send_stream_->Stop(); 1130 video_send_stream_->Stop();
1125 receive_stream->Stop(); 1131 receive_stream->Stop();
1126 1132
1127 call->DestroyVideoReceiveStream(receive_stream); 1133 call->DestroyVideoReceiveStream(receive_stream);
1128 call->DestroyVideoSendStream(video_send_stream_); 1134 call->DestroyVideoSendStream(video_send_stream_);
1129 1135
1130 transport.StopSending(); 1136 transport.StopSending();
1131 } 1137 }
1132 1138
1133 } // namespace webrtc 1139 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698