Index: webrtc/modules/video_coding/frame_buffer2.cc |
diff --git a/webrtc/modules/video_coding/frame_buffer2.cc b/webrtc/modules/video_coding/frame_buffer2.cc |
index dab783254684e2ff140ed598bd3fdc022f9dbd57..544ecb17fa7b5b1e8bc215e43460fe7d81754805 100644 |
--- a/webrtc/modules/video_coding/frame_buffer2.cc |
+++ b/webrtc/modules/video_coding/frame_buffer2.cc |
@@ -52,7 +52,8 @@ FrameBuffer::FrameBuffer(Clock* clock, |
stopped_(false), |
protection_mode_(kProtectionNack) {} |
-std::unique_ptr<FrameObject> FrameBuffer::NextFrame(int64_t max_wait_time_ms) { |
+std::pair<std::unique_ptr<FrameObject>, FrameBuffer::ReturnReason> |
+FrameBuffer::NextFrame(int64_t max_wait_time_ms) { |
int64_t latest_return_time = clock_->TimeInMilliseconds() + max_wait_time_ms; |
int64_t now = clock_->TimeInMilliseconds(); |
int64_t wait_ms = max_wait_time_ms; |
@@ -63,7 +64,7 @@ std::unique_ptr<FrameObject> FrameBuffer::NextFrame(int64_t max_wait_time_ms) { |
rtc::CritScope lock(&crit_); |
frame_inserted_event_.Reset(); |
if (stopped_) |
- return std::unique_ptr<FrameObject>(); |
+ return std::make_pair(nullptr, kStopped); |
now = clock_->TimeInMilliseconds(); |
wait_ms = max_wait_time_ms; |
@@ -115,9 +116,9 @@ std::unique_ptr<FrameObject> FrameBuffer::NextFrame(int64_t max_wait_time_ms) { |
decoded_frames_.insert(next_frame_it->first); |
std::unique_ptr<FrameObject> frame = std::move(next_frame_it->second); |
frames_.erase(frames_.begin(), ++next_frame_it); |
- return frame; |
+ return std::make_pair(std::move(frame), kFrameFound); |
} else { |
- return std::unique_ptr<FrameObject>(); |
+ return std::make_pair(nullptr, kTimeout); |
} |
} |
} |