Chromium Code Reviews| Index: content/browser/renderer_host/media/video_capture_controller.cc |
| diff --git a/content/browser/renderer_host/media/video_capture_controller.cc b/content/browser/renderer_host/media/video_capture_controller.cc |
| index 9902d94dad4e4b80de214b7b342299a6720d697c..0a2ef8b39f236fa4e5f9f6f721458ce7a8d44326 100644 |
| --- a/content/browser/renderer_host/media/video_capture_controller.cc |
| +++ b/content/browser/renderer_host/media/video_capture_controller.cc |
| @@ -145,6 +145,11 @@ bool VideoCaptureController::BufferState::HasZeroConsumerHoldCount() { |
| return consumer_hold_count_ == 0; |
| } |
| +void VideoCaptureController::BufferState::SetFrameFeedbackId(int id) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + frame_feedback_id_ = id; |
| +} |
| + |
| void VideoCaptureController::BufferState::SetConsumerFeedbackObserver( |
| media::VideoFrameConsumerFeedbackObserver* consumer_feedback_observer) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| @@ -377,15 +382,16 @@ void VideoCaptureController::OnIncomingCapturedVideoFrame( |
| DCHECK_NE(buffer_id, media::VideoCaptureBufferPool::kInvalidId); |
| // Insert if not exists. |
| - const auto it = |
| + const auto insert_result = |
| buffer_id_to_state_map_ |
| .insert(std::make_pair( |
| buffer_id, BufferState(buffer_id, buffer.frame_feedback_id(), |
| consumer_feedback_observer_.get(), |
| - frame_buffer_pool_.get()))) |
| - .first; |
| - BufferState& buffer_state = it->second; |
| + frame_buffer_pool_.get()))); |
| + BufferState& buffer_state = insert_result.first->second; |
| DCHECK(buffer_state.HasZeroConsumerHoldCount()); |
| + if (!insert_result.second) |
| + buffer_state.SetFrameFeedbackId(buffer.frame_feedback_id()); |
|
mcasas
2017/01/30 15:36:34
This is confusing. buffer.frame_feedback_id() is
chfremer
2017/01/30 21:18:27
Please see PatchSet#2 and let me know if it makes
|
| if (state_ == VIDEO_CAPTURE_STATE_STARTED) { |
| if (!frame->metadata()->HasKey(VideoFrameMetadata::FRAME_RATE)) { |