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

Unified Diff: content/common/gpu/gpu_channel_manager.cc

Issue 1451353002: Implement GpuArcVideoService for arc video accelerator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase and addressed luis's comments Created 5 years 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 side-by-side diff with in-line comments
Download patch
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..cad870c58a3c71e5c6e1146436ad2adfd89fc693 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,27 @@ void GpuChannelManager::OnDestroyGpuMemoryBuffer(
DestroyGpuMemoryBuffer(id, client_id);
}
+void GpuChannelManager::OnCreateArcVideoAcceleratorChannel() {
+ if (!arc_video_service_) {
+ arc_video_service_.reset(
+ new GpuArcVideoService(shutdown_event_, io_task_runner_));
+ arc_video_service_->Initialize();
+ }
+
+ arc_video_service_->CreateChannel(
+ base::Bind(&GpuChannelManager::ArcVideoAcceleratorChannelCreated,
+ weak_factory_.GetWeakPtr()));
+}
+
+void GpuChannelManager::ArcVideoAcceleratorChannelCreated(
+ const IPC::ChannelHandle& handle) {
+ Send(new GpuHostMsg_ArcVideoAcceleratorChannelCreated(handle));
+}
+
+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

Powered by Google App Engine
This is Rietveld 408576698