Index: content/common/gpu/gpu_channel_manager.cc |
diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc |
index 60dbd9c2a58bdc7d1ba705bb8de4a1b6ee78ac24..50f43a5ab28c0bb4478e6f59d8c17956070197a5 100644 |
--- a/content/common/gpu/gpu_channel_manager.cc |
+++ b/content/common/gpu/gpu_channel_manager.cc |
@@ -15,6 +15,7 @@ |
#include "content/common/gpu/gpu_memory_buffer_factory.h" |
#include "content/common/gpu/gpu_memory_manager.h" |
#include "content/common/gpu/gpu_messages.h" |
+#include "content/common/gpu/media/gpu_arc_video_service.h" |
#include "content/common/message_router.h" |
#include "content/public/common/content_switches.h" |
#include "gpu/command_buffer/common/value_state.h" |
@@ -135,6 +136,8 @@ bool GpuChannelManager::OnControlMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(GpuMsg_CreateViewCommandBuffer, |
OnCreateViewCommandBuffer) |
IPC_MESSAGE_HANDLER(GpuMsg_DestroyGpuMemoryBuffer, OnDestroyGpuMemoryBuffer) |
+ IPC_MESSAGE_HANDLER(GpuMsg_CreateArcVideoAcceleratorChannel, |
+ OnCreateArcVideoAcceleratorChannel) |
IPC_MESSAGE_HANDLER(GpuMsg_LoadedShader, OnLoadedShader) |
IPC_MESSAGE_HANDLER(GpuMsg_UpdateValueState, OnUpdateValueState) |
#if defined(OS_ANDROID) |
@@ -244,6 +247,20 @@ void GpuChannelManager::OnDestroyGpuMemoryBuffer( |
DestroyGpuMemoryBuffer(id, client_id); |
} |
+void GpuChannelManager::OnCreateArcVideoAcceleratorChannel() { |
+ if (!arc_video_service_) { |
+ arc_video_service_.reset( |
+ new GpuArcVideoService(this, shutdown_event_, io_task_runner_)); |
+ arc_video_service_->Initialize(); |
+ } |
+ |
+ arc_video_service_->CreateChannel(); |
+} |
+ |
+void GpuChannelManager::OnShutdownArcVideoService() { |
+ arc_video_service_.reset(); |
+} |
+ |
void GpuChannelManager::OnUpdateValueState( |
int client_id, unsigned int target, const gpu::ValueState& state) { |
// Only pass updated state to the channel corresponding to the |