Remove unused output parameter in VCMReceiver::FrameForDecoding().
BUG=
R=pbos@webrtc.org
Review URL: https://codereview.webrtc.org/2104863002 .
Cr-Original-Commit-Position: refs/heads/master@{#13310}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 31b2ec4e0df1bd2ed24bfdd79acde69b9ffc821e
diff --git a/modules/video_coding/receiver.cc b/modules/video_coding/receiver.cc
index 5eeca04..444c906 100644
--- a/modules/video_coding/receiver.cc
+++ b/modules/video_coding/receiver.cc
@@ -138,12 +138,12 @@
}
VCMEncodedFrame* VCMReceiver::FrameForDecoding(uint16_t max_wait_time_ms,
- int64_t* next_render_time_ms,
bool prefer_late_decoding) {
const int64_t start_time_ms = clock_->TimeInMilliseconds();
uint32_t frame_timestamp = 0;
int min_playout_delay_ms = -1;
int max_playout_delay_ms = -1;
+ int64_t render_time_ms = 0;
// Exhaust wait time to get a complete frame for decoding.
VCMEncodedFrame* found_frame =
jitter_buffer_.NextCompleteFrame(max_wait_time_ms);
@@ -167,14 +167,14 @@
timing_->SetJitterDelay(jitter_buffer_.EstimatedJitterMs());
const int64_t now_ms = clock_->TimeInMilliseconds();
timing_->UpdateCurrentDelay(frame_timestamp);
- *next_render_time_ms = timing_->RenderTimeMs(frame_timestamp, now_ms);
+ render_time_ms = timing_->RenderTimeMs(frame_timestamp, now_ms);
// Check render timing.
bool timing_error = false;
// Assume that render timing errors are due to changes in the video stream.
- if (*next_render_time_ms < 0) {
+ if (render_time_ms < 0) {
timing_error = true;
- } else if (std::abs(*next_render_time_ms - now_ms) > max_video_delay_ms_) {
- int frame_delay = static_cast<int>(std::abs(*next_render_time_ms - now_ms));
+ } else if (std::abs(render_time_ms - now_ms) > max_video_delay_ms_) {
+ int frame_delay = static_cast<int>(std::abs(render_time_ms - now_ms));
LOG(LS_WARNING) << "A frame about to be decoded is out of the configured "
<< "delay bounds (" << frame_delay << " > "
<< max_video_delay_ms_
@@ -201,8 +201,8 @@
static_cast<int32_t>(clock_->TimeInMilliseconds() - start_time_ms);
uint16_t new_max_wait_time =
static_cast<uint16_t>(VCM_MAX(available_wait_time, 0));
- uint32_t wait_time_ms = timing_->MaxWaitingTime(
- *next_render_time_ms, clock_->TimeInMilliseconds());
+ uint32_t wait_time_ms =
+ timing_->MaxWaitingTime(render_time_ms, clock_->TimeInMilliseconds());
if (new_max_wait_time < wait_time_ms) {
// We're not allowed to wait until the frame is supposed to be rendered,
// waiting as long as we're allowed to avoid busy looping, and then return
@@ -219,9 +219,9 @@
if (frame == NULL) {
return NULL;
}
- frame->SetRenderTime(*next_render_time_ms);
+ frame->SetRenderTime(render_time_ms);
TRACE_EVENT_ASYNC_STEP1("webrtc", "Video", frame->TimeStamp(), "SetRenderTS",
- "render_time", *next_render_time_ms);
+ "render_time", frame->RenderTimeMs());
if (!frame->Complete()) {
// Update stats for incomplete frames.
bool retransmitted = false;
diff --git a/modules/video_coding/receiver.h b/modules/video_coding/receiver.h
index 7aa9795..6b25d86 100644
--- a/modules/video_coding/receiver.h
+++ b/modules/video_coding/receiver.h
@@ -65,7 +65,6 @@
void UpdateRtt(int64_t rtt);
int32_t InsertPacket(const VCMPacket& packet);
VCMEncodedFrame* FrameForDecoding(uint16_t max_wait_time_ms,
- int64_t* next_render_time_ms,
bool prefer_late_decoding);
void ReleaseFrame(VCMEncodedFrame* frame);
void ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate);
diff --git a/modules/video_coding/receiver_unittest.cc b/modules/video_coding/receiver_unittest.cc
index 863dac3..b2a3a36 100644
--- a/modules/video_coding/receiver_unittest.cc
+++ b/modules/video_coding/receiver_unittest.cc
@@ -73,9 +73,7 @@
}
bool DecodeNextFrame() {
- int64_t render_time_ms = 0;
- VCMEncodedFrame* frame =
- receiver_.FrameForDecoding(0, &render_time_ms, false);
+ VCMEncodedFrame* frame = receiver_.FrameForDecoding(0, false);
if (!frame)
return false;
receiver_.ReleaseFrame(frame);
@@ -409,7 +407,6 @@
const int kFramePeriod = 40;
int64_t arrive_timestamps[kNumFrames];
int64_t render_timestamps[kNumFrames];
- int64_t next_render_time;
// Construct test samples.
// render_timestamps are the timestamps stored in the Frame;
@@ -435,8 +432,7 @@
// build bot to kill the test.
while (num_frames_return < kNumFrames) {
int64_t start_time = clock_.TimeInMilliseconds();
- VCMEncodedFrame* frame =
- receiver_.FrameForDecoding(kMaxWaitTime, &next_render_time, false);
+ VCMEncodedFrame* frame = receiver_.FrameForDecoding(kMaxWaitTime, false);
int64_t end_time = clock_.TimeInMilliseconds();
// In any case the FrameForDecoding should not wait longer than
@@ -467,7 +463,6 @@
int64_t arrive_timestamps[kNumFrames];
int64_t render_timestamps[kNumFrames];
- int64_t next_render_time;
int render_delay_ms;
int max_decode_ms;
@@ -496,8 +491,8 @@
while (num_frames_return < kNumFrames) {
int64_t start_time = clock_.TimeInMilliseconds();
- VCMEncodedFrame* frame = receiver_.FrameForDecoding(
- kMaxWaitTime, &next_render_time, prefer_late_decoding);
+ VCMEncodedFrame* frame =
+ receiver_.FrameForDecoding(kMaxWaitTime, prefer_late_decoding);
int64_t end_time = clock_.TimeInMilliseconds();
if (frame) {
EXPECT_EQ(frame->RenderTimeMs() - max_decode_ms - render_delay_ms,
diff --git a/modules/video_coding/video_receiver.cc b/modules/video_coding/video_receiver.cc
index d42d053..ae59cf1 100644
--- a/modules/video_coding/video_receiver.cc
+++ b/modules/video_coding/video_receiver.cc
@@ -244,15 +244,14 @@
// Decode next frame, blocking.
// Should be called as often as possible to get the most out of the decoder.
int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) {
- int64_t nextRenderTimeMs;
bool prefer_late_decoding = false;
{
rtc::CritScope cs(&receive_crit_);
prefer_late_decoding = _codecDataBase.PrefersLateDecoding();
}
- VCMEncodedFrame* frame = _receiver.FrameForDecoding(
- maxWaitTimeMs, &nextRenderTimeMs, prefer_late_decoding);
+ VCMEncodedFrame* frame =
+ _receiver.FrameForDecoding(maxWaitTimeMs, prefer_late_decoding);
if (!frame)
return VCM_FRAME_NOT_READY;