| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/media/video_capture_controller.h" | 5 #include "content/browser/renderer_host/media/video_capture_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 // Decorator for media::VideoFrameReceiver that forwards all incoming calls | 88 // Decorator for media::VideoFrameReceiver that forwards all incoming calls |
| 89 // to the Browser IO thread. | 89 // to the Browser IO thread. |
| 90 class VideoFrameReceiverOnIOThread : public media::VideoFrameReceiver { | 90 class VideoFrameReceiverOnIOThread : public media::VideoFrameReceiver { |
| 91 public: | 91 public: |
| 92 explicit VideoFrameReceiverOnIOThread( | 92 explicit VideoFrameReceiverOnIOThread( |
| 93 const base::WeakPtr<VideoFrameReceiver>& receiver) | 93 const base::WeakPtr<VideoFrameReceiver>& receiver) |
| 94 : receiver_(receiver) {} | 94 : receiver_(receiver) {} |
| 95 | 95 |
| 96 void OnIncomingCapturedVideoFrame( | 96 void OnIncomingCapturedVideoFrame( |
| 97 std::unique_ptr<media::VideoCaptureDevice::Client::Buffer> buffer, | 97 std::unique_ptr<media::VideoCaptureDevice::Client::Buffer> buffer, |
| 98 const scoped_refptr<media::VideoFrame>& frame) override { | 98 scoped_refptr<media::VideoFrame> frame) override { |
| 99 BrowserThread::PostTask( | 99 BrowserThread::PostTask( |
| 100 BrowserThread::IO, FROM_HERE, | 100 BrowserThread::IO, FROM_HERE, |
| 101 base::Bind(&VideoFrameReceiver::OnIncomingCapturedVideoFrame, receiver_, | 101 base::Bind(&VideoFrameReceiver::OnIncomingCapturedVideoFrame, receiver_, |
| 102 base::Passed(&buffer), frame)); | 102 base::Passed(&buffer), std::move(frame))); |
| 103 } | 103 } |
| 104 | 104 |
| 105 void OnError() override { | 105 void OnError() override { |
| 106 BrowserThread::PostTask( | 106 BrowserThread::PostTask( |
| 107 BrowserThread::IO, FROM_HERE, | 107 BrowserThread::IO, FROM_HERE, |
| 108 base::Bind(&VideoFrameReceiver::OnError, receiver_)); | 108 base::Bind(&VideoFrameReceiver::OnError, receiver_)); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void OnLog(const std::string& message) override { | 111 void OnLog(const std::string& message) override { |
| 112 BrowserThread::PostTask( | 112 BrowserThread::PostTask( |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 VideoCaptureController::GetVideoCaptureFormat() const { | 395 VideoCaptureController::GetVideoCaptureFormat() const { |
| 396 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 396 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 397 return video_capture_format_; | 397 return video_capture_format_; |
| 398 } | 398 } |
| 399 | 399 |
| 400 VideoCaptureController::~VideoCaptureController() { | 400 VideoCaptureController::~VideoCaptureController() { |
| 401 } | 401 } |
| 402 | 402 |
| 403 void VideoCaptureController::OnIncomingCapturedVideoFrame( | 403 void VideoCaptureController::OnIncomingCapturedVideoFrame( |
| 404 std::unique_ptr<media::VideoCaptureDevice::Client::Buffer> buffer, | 404 std::unique_ptr<media::VideoCaptureDevice::Client::Buffer> buffer, |
| 405 const scoped_refptr<VideoFrame>& frame) { | 405 scoped_refptr<VideoFrame> frame) { |
| 406 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 406 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 407 const int buffer_id = buffer->id(); | 407 const int buffer_id = buffer->id(); |
| 408 DCHECK_NE(buffer_id, media::VideoCaptureBufferPool::kInvalidId); | 408 DCHECK_NE(buffer_id, media::VideoCaptureBufferPool::kInvalidId); |
| 409 | 409 |
| 410 int count = 0; | 410 int count = 0; |
| 411 if (state_ == VIDEO_CAPTURE_STATE_STARTED) { | 411 if (state_ == VIDEO_CAPTURE_STATE_STARTED) { |
| 412 if (!frame->metadata()->HasKey(VideoFrameMetadata::FRAME_RATE)) { | 412 if (!frame->metadata()->HasKey(VideoFrameMetadata::FRAME_RATE)) { |
| 413 frame->metadata()->SetDouble(VideoFrameMetadata::FRAME_RATE, | 413 frame->metadata()->SetDouble(VideoFrameMetadata::FRAME_RATE, |
| 414 video_capture_format_.frame_rate); | 414 video_capture_format_.frame_rate); |
| 415 } | 415 } |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 int session_id, | 530 int session_id, |
| 531 const ControllerClients& clients) { | 531 const ControllerClients& clients) { |
| 532 for (const auto& client : clients) { | 532 for (const auto& client : clients) { |
| 533 if (client->session_id == session_id) | 533 if (client->session_id == session_id) |
| 534 return client.get(); | 534 return client.get(); |
| 535 } | 535 } |
| 536 return nullptr; | 536 return nullptr; |
| 537 } | 537 } |
| 538 | 538 |
| 539 } // namespace content | 539 } // namespace content |
| OLD | NEW |