OLD | NEW |
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 #ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ | 5 #ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ |
6 #define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ | 6 #define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 // MediaStreamBufferManager doesn't own |delegate|, the caller should keep | 46 // MediaStreamBufferManager doesn't own |delegate|, the caller should keep |
47 // it alive during the MediaStreamBufferManager's lifecycle. | 47 // it alive during the MediaStreamBufferManager's lifecycle. |
48 explicit MediaStreamBufferManager(Delegate* delegate); | 48 explicit MediaStreamBufferManager(Delegate* delegate); |
49 | 49 |
50 ~MediaStreamBufferManager(); | 50 ~MediaStreamBufferManager(); |
51 | 51 |
52 int32_t number_of_buffers() const { return number_of_buffers_; } | 52 int32_t number_of_buffers() const { return number_of_buffers_; } |
53 | 53 |
54 int32_t buffer_size() const { return buffer_size_; } | 54 int32_t buffer_size() const { return buffer_size_; } |
55 | 55 |
| 56 base::SharedMemory* shm() { return shm_.get(); } |
| 57 |
56 // Initializes shared memory for buffers transmission. | 58 // Initializes shared memory for buffers transmission. |
57 bool SetBuffers(int32_t number_of_buffers, | 59 bool SetBuffers(int32_t number_of_buffers, |
58 int32_t buffer_size, | 60 int32_t buffer_size, |
59 scoped_ptr<base::SharedMemory> shm, | 61 scoped_ptr<base::SharedMemory> shm, |
60 bool enqueue_all_buffers); | 62 bool enqueue_all_buffers); |
61 | 63 |
| 64 // Number of buffers available. |
| 65 int32 BuffersAvailable(); |
| 66 |
62 // Dequeues a buffer from |buffer_queue_|. | 67 // Dequeues a buffer from |buffer_queue_|. |
63 int32_t DequeueBuffer(); | 68 int32_t DequeueBuffer(); |
64 | 69 |
65 // Dequeues all the buffers from |buffer_queue_|. | 70 // Dequeues all the buffers from |buffer_queue_|. |
66 std::vector<int32_t> DequeueBuffers(); | 71 std::vector<int32_t> DequeueBuffers(); |
67 | 72 |
68 // Puts a buffer into |buffer_queue_|. | 73 // Puts a buffer into |buffer_queue_|. |
69 void EnqueueBuffer(int32_t index); | 74 void EnqueueBuffer(int32_t index); |
70 | 75 |
71 // Gets the buffer address for the given buffer index. | 76 // Gets the buffer address for the given buffer index. |
72 MediaStreamBuffer* GetBufferPointer(int32_t index); | 77 MediaStreamBuffer* GetBufferPointer(int32_t index); |
73 | 78 |
| 79 // Checks whether |buffer| is contains in the buffer manager. |
| 80 bool ContainsBuffer(MediaStreamBuffer* buffer); |
| 81 |
74 private: | 82 private: |
75 Delegate* delegate_; | 83 Delegate* delegate_; |
76 | 84 |
77 // A queue of buffer indices. | 85 // A queue of buffer indices. |
78 std::deque<int32_t> buffer_queue_; | 86 std::deque<int32_t> buffer_queue_; |
79 | 87 |
80 // A vector of buffer pointers. It is used for index to pointer converting. | 88 // A vector of buffer pointers. It is used for index to pointer converting. |
81 std::vector<MediaStreamBuffer*> buffers_; | 89 std::vector<MediaStreamBuffer*> buffers_; |
82 | 90 |
83 // The buffer size in bytes. | 91 // The buffer size in bytes. |
84 int32_t buffer_size_; | 92 int32_t buffer_size_; |
85 | 93 |
86 // The number of buffers in the shared memory. | 94 // The number of buffers in the shared memory. |
87 int32_t number_of_buffers_; | 95 int32_t number_of_buffers_; |
88 | 96 |
89 // A memory block shared between renderer process and plugin process. | 97 // A memory block shared between renderer process and plugin process. |
90 scoped_ptr<base::SharedMemory> shm_; | 98 scoped_ptr<base::SharedMemory> shm_; |
91 | 99 |
92 DISALLOW_COPY_AND_ASSIGN(MediaStreamBufferManager); | 100 DISALLOW_COPY_AND_ASSIGN(MediaStreamBufferManager); |
93 }; | 101 }; |
94 | 102 |
95 } // namespace ppapi | 103 } // namespace ppapi |
96 | 104 |
97 #endif // PPAPI_SHAERD_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ | 105 #endif // PPAPI_SHAERD_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_ |
OLD | NEW |