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_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ | 5 #ifndef PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ |
6 #define PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ | 6 #define PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ |
7 | 7 |
8 #include "ppapi/proxy/plugin_resource.h" | 8 #include "ppapi/proxy/plugin_resource.h" |
9 #include "ppapi/proxy/ppapi_proxy_export.h" | 9 #include "ppapi/proxy/ppapi_proxy_export.h" |
10 #include "ppapi/shared_impl/media_stream_buffer_manager.h" | 10 #include "ppapi/shared_impl/media_stream_buffer_manager.h" |
11 | 11 |
12 namespace ppapi { | 12 namespace ppapi { |
13 namespace proxy { | 13 namespace proxy { |
14 | 14 |
15 class PPAPI_PROXY_EXPORT MediaStreamTrackResourceBase | 15 class PPAPI_PROXY_EXPORT MediaStreamTrackResourceBase |
16 : public PluginResource, | 16 : public PluginResource, |
17 public MediaStreamBufferManager::Delegate { | 17 public MediaStreamBufferManager::Delegate { |
18 protected: | 18 protected: |
19 MediaStreamTrackResourceBase(Connection connection, | 19 MediaStreamTrackResourceBase(Connection connection, |
20 PP_Instance instance, | 20 PP_Instance instance, |
21 int pending_renderer_id, | 21 int pending_renderer_id, |
22 const std::string& id); | 22 const std::string& id); |
23 | 23 |
24 MediaStreamTrackResourceBase(Connection connection, PP_Instance instance); | 24 MediaStreamTrackResourceBase(Connection connection, PP_Instance instance); |
25 | 25 |
26 virtual ~MediaStreamTrackResourceBase(); | 26 ~MediaStreamTrackResourceBase() override; |
27 | 27 |
28 std::string id() const { return id_; } | 28 std::string id() const { return id_; } |
29 | 29 |
30 void set_id(const std::string& id) { id_ = id; } | 30 void set_id(const std::string& id) { id_ = id; } |
31 | 31 |
32 bool has_ended() const { return has_ended_; } | 32 bool has_ended() const { return has_ended_; } |
33 | 33 |
34 MediaStreamBufferManager* buffer_manager() { return &buffer_manager_; } | 34 MediaStreamBufferManager* buffer_manager() { return &buffer_manager_; } |
35 | 35 |
36 void CloseInternal(); | 36 void CloseInternal(); |
37 | 37 |
38 // Sends a buffer index to the corresponding PepperMediaStreamTrackHostBase | 38 // Sends a buffer index to the corresponding PepperMediaStreamTrackHostBase |
39 // via an IPC message. The host adds the buffer index into its | 39 // via an IPC message. The host adds the buffer index into its |
40 // |buffer_manager_| for reading or writing. | 40 // |buffer_manager_| for reading or writing. |
41 // Also see |MediaStreamBufferManager|. | 41 // Also see |MediaStreamBufferManager|. |
42 void SendEnqueueBufferMessageToHost(int32_t index); | 42 void SendEnqueueBufferMessageToHost(int32_t index); |
43 | 43 |
44 // PluginResource overrides: | 44 // PluginResource overrides: |
45 virtual void OnReplyReceived(const ResourceMessageReplyParams& params, | 45 void OnReplyReceived(const ResourceMessageReplyParams& params, |
46 const IPC::Message& msg) override; | 46 const IPC::Message& msg) override; |
47 | 47 |
48 private: | 48 private: |
49 // Message handlers: | 49 // Message handlers: |
50 void OnPluginMsgInitBuffers(const ResourceMessageReplyParams& params, | 50 void OnPluginMsgInitBuffers(const ResourceMessageReplyParams& params, |
51 int32_t number_of_buffers, | 51 int32_t number_of_buffers, |
52 int32_t buffer_size, | 52 int32_t buffer_size, |
53 bool readonly); | 53 bool readonly); |
54 void OnPluginMsgEnqueueBuffer(const ResourceMessageReplyParams& params, | 54 void OnPluginMsgEnqueueBuffer(const ResourceMessageReplyParams& params, |
55 int32_t index); | 55 int32_t index); |
56 void OnPluginMsgEnqueueBuffers(const ResourceMessageReplyParams& params, | 56 void OnPluginMsgEnqueueBuffers(const ResourceMessageReplyParams& params, |
57 const std::vector<int32_t>& indices); | 57 const std::vector<int32_t>& indices); |
58 | 58 |
59 MediaStreamBufferManager buffer_manager_; | 59 MediaStreamBufferManager buffer_manager_; |
60 | 60 |
61 std::string id_; | 61 std::string id_; |
62 | 62 |
63 bool has_ended_; | 63 bool has_ended_; |
64 | 64 |
65 DISALLOW_COPY_AND_ASSIGN(MediaStreamTrackResourceBase); | 65 DISALLOW_COPY_AND_ASSIGN(MediaStreamTrackResourceBase); |
66 }; | 66 }; |
67 | 67 |
68 } // namespace proxy | 68 } // namespace proxy |
69 } // namespace ppapi | 69 } // namespace ppapi |
70 | 70 |
71 #endif // PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ | 71 #endif // PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_ |
OLD | NEW |