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

Side by Side Diff: ppapi/shared_impl/media_stream_buffer_manager.cc

Issue 150403006: [PPAPI][MediaStream] Support configure for video input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build errors Created 6 years, 10 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 | « ppapi/proxy/ppapi_param_traits.h ('k') | ppapi/shared_impl/media_stream_video_track_shared.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ppapi/shared_impl/media_stream_buffer_manager.h" 5 #include "ppapi/shared_impl/media_stream_buffer_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/shared_impl/media_stream_buffer.h" 9 #include "ppapi/shared_impl/media_stream_buffer.h"
10 10
11 namespace ppapi { 11 namespace ppapi {
12 12
13 MediaStreamBufferManager::Delegate::~Delegate() {} 13 MediaStreamBufferManager::Delegate::~Delegate() {}
14 14
15 void MediaStreamBufferManager::Delegate::OnNewBufferEnqueued() {} 15 void MediaStreamBufferManager::Delegate::OnNewBufferEnqueued() {}
16 16
17 MediaStreamBufferManager::MediaStreamBufferManager(Delegate* delegate) 17 MediaStreamBufferManager::MediaStreamBufferManager(Delegate* delegate)
18 : delegate_(delegate), buffer_size_(0), number_of_buffers_(0) { 18 : delegate_(delegate), buffer_size_(0), number_of_buffers_(0) {
19 DCHECK(delegate_); 19 DCHECK(delegate_);
20 } 20 }
21 21
22 MediaStreamBufferManager::~MediaStreamBufferManager() {} 22 MediaStreamBufferManager::~MediaStreamBufferManager() {}
23 23
24 bool MediaStreamBufferManager::SetBuffers(int32_t number_of_buffers, 24 bool MediaStreamBufferManager::SetBuffers(int32_t number_of_buffers,
25 int32_t buffer_size, 25 int32_t buffer_size,
26 scoped_ptr<base::SharedMemory> shm, 26 scoped_ptr<base::SharedMemory> shm,
27 bool enqueue_all_buffers) { 27 bool enqueue_all_buffers) {
28 DCHECK(shm); 28 DCHECK(shm);
29 DCHECK(!shm_);
30 DCHECK_GT(number_of_buffers, 0); 29 DCHECK_GT(number_of_buffers, 0);
31 DCHECK_GT(buffer_size, 30 DCHECK_GT(buffer_size,
32 static_cast<int32_t>(sizeof(MediaStreamBuffer::Header))); 31 static_cast<int32_t>(sizeof(MediaStreamBuffer::Header)));
33 DCHECK_EQ(buffer_size & 0x3, 0); 32 DCHECK_EQ(buffer_size & 0x3, 0);
34 33
35 number_of_buffers_ = number_of_buffers; 34 number_of_buffers_ = number_of_buffers;
36 buffer_size_ = buffer_size; 35 buffer_size_ = buffer_size;
37 36
38 int32_t size = number_of_buffers_ * buffer_size; 37 size_t size = number_of_buffers_ * buffer_size;
39 shm_ = shm.Pass(); 38 shm_ = shm.Pass();
40 if (!shm_->Map(size)) 39 if (!shm_->Map(size))
41 return false; 40 return false;
42 41
42 buffer_queue_.clear();
43 buffers_.clear();
43 uint8_t* p = reinterpret_cast<uint8_t*>(shm_->memory()); 44 uint8_t* p = reinterpret_cast<uint8_t*>(shm_->memory());
44 for (int32_t i = 0; i < number_of_buffers; ++i) { 45 for (int32_t i = 0; i < number_of_buffers; ++i) {
45 if (enqueue_all_buffers) 46 if (enqueue_all_buffers)
46 buffer_queue_.push_back(i); 47 buffer_queue_.push_back(i);
47 buffers_.push_back(reinterpret_cast<MediaStreamBuffer*>(p)); 48 buffers_.push_back(reinterpret_cast<MediaStreamBuffer*>(p));
48 p += buffer_size_; 49 p += buffer_size_;
49 } 50 }
50 return true; 51 return true;
51 } 52 }
52 53
53 int32_t MediaStreamBufferManager::DequeueBuffer() { 54 int32_t MediaStreamBufferManager::DequeueBuffer() {
54 if (buffer_queue_.empty()) 55 if (buffer_queue_.empty())
55 return PP_ERROR_FAILED; 56 return PP_ERROR_FAILED;
56 int32_t buffer = buffer_queue_.front(); 57 int32_t buffer = buffer_queue_.front();
57 buffer_queue_.pop_front(); 58 buffer_queue_.pop_front();
58 return buffer; 59 return buffer;
59 } 60 }
60 61
61 void MediaStreamBufferManager::EnqueueBuffer(int32_t index) { 62 void MediaStreamBufferManager::EnqueueBuffer(int32_t index) {
62 DCHECK_GE(index, 0); 63 CHECK_GE(index, 0) << "Invalid buffer index";
63 DCHECK_LT(index, number_of_buffers_); 64 CHECK_LT(index, number_of_buffers_) << "Invalid buffer index";
64 buffer_queue_.push_back(index); 65 buffer_queue_.push_back(index);
65 delegate_->OnNewBufferEnqueued(); 66 delegate_->OnNewBufferEnqueued();
66 } 67 }
67 68
68 MediaStreamBuffer* MediaStreamBufferManager::GetBufferPointer(int32_t index) { 69 MediaStreamBuffer* MediaStreamBufferManager::GetBufferPointer(
69 DCHECK_GE(index, 0); 70 int32_t index) {
70 DCHECK_LT(index, number_of_buffers_); 71 CHECK_GE(index, 0) << "Invalid buffer index";
72 CHECK_LT(index, number_of_buffers_) << "Invalid buffer index";
71 return buffers_[index]; 73 return buffers_[index];
72 } 74 }
73 75
74 } // namespace ppapi 76 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppapi_param_traits.h ('k') | ppapi/shared_impl/media_stream_video_track_shared.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698