Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / ppapi / proxy / media_stream_track_resource_base.cc
index d259036..4431da3 100644 (file)
@@ -22,6 +22,14 @@ MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
   AttachToPendingHost(RENDERER, pending_renderer_id);
 }
 
+MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
+    Connection connection,
+    PP_Instance instance)
+    : PluginResource(connection, instance),
+      buffer_manager_(this),
+      has_ended_(false) {
+}
+
 MediaStreamTrackResourceBase::~MediaStreamTrackResourceBase() {
 }
 
@@ -40,6 +48,9 @@ void MediaStreamTrackResourceBase::OnReplyReceived(
         PpapiPluginMsg_MediaStreamTrack_InitBuffers, OnPluginMsgInitBuffers)
     PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
         PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer, OnPluginMsgEnqueueBuffer)
+    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+        PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
+        OnPluginMsgEnqueueBuffers)
     PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
         PluginResource::OnReplyReceived(params, msg))
   IPC_END_MESSAGE_MAP()
@@ -55,11 +66,13 @@ void MediaStreamTrackResourceBase::CloseInternal() {
 void MediaStreamTrackResourceBase::OnPluginMsgInitBuffers(
     const ResourceMessageReplyParams& params,
     int32_t number_of_buffers,
-    int32_t buffer_size) {
+    int32_t buffer_size,
+    bool readonly) {
   base::SharedMemoryHandle shm_handle = base::SharedMemory::NULLHandle();
   params.TakeSharedMemoryHandleAtIndex(0, &shm_handle);
   buffer_manager_.SetBuffers(number_of_buffers, buffer_size,
-      scoped_ptr<base::SharedMemory>(new base::SharedMemory(shm_handle, true)),
+      scoped_ptr<base::SharedMemory>(new base::SharedMemory(shm_handle,
+                                                            readonly)),
       false);
 }
 
@@ -69,5 +82,12 @@ void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffer(
   buffer_manager_.EnqueueBuffer(index);
 }
 
+void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffers(
+    const ResourceMessageReplyParams& params,
+    const std::vector<int32_t>& indices) {
+  for (size_t i = 0; i < indices.size(); ++i)
+    buffer_manager_.EnqueueBuffer(indices[i]);
+}
+
 }  // namespace proxy
 }  // namespace ppapi