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

Side by Side Diff: media/gpu/ipc/service/media_gpu_channel.cc

Issue 2923933004: [NotForReview] Move GJDAH and GJDA to media/gpu/mojo
Patch Set: . Created 3 years, 6 months 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 unified diff | Download patch
« no previous file with comments | « media/gpu/ipc/service/media_gpu_channel.h ('k') | media/gpu/mojo/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "media/gpu/ipc/service/media_gpu_channel.h" 5 #include "media/gpu/ipc/service/media_gpu_channel.h"
6 6
7 #include "base/single_thread_task_runner.h" 7 #include "base/single_thread_task_runner.h"
8 #include "base/unguessable_token.h" 8 #include "base/unguessable_token.h"
9 #include "gpu/ipc/service/gpu_channel.h" 9 #include "gpu/ipc/service/gpu_channel.h"
10 #include "ipc/message_filter.h" 10 #include "ipc/message_filter.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 bool MediaGpuChannel::OnMessageReceived(const IPC::Message& message) { 97 bool MediaGpuChannel::OnMessageReceived(const IPC::Message& message) {
98 MediaGpuChannelDispatchHelper helper(this, message.routing_id()); 98 MediaGpuChannelDispatchHelper helper(this, message.routing_id());
99 bool handled = true; 99 bool handled = true;
100 IPC_BEGIN_MESSAGE_MAP(MediaGpuChannel, message) 100 IPC_BEGIN_MESSAGE_MAP(MediaGpuChannel, message)
101 IPC_MESSAGE_FORWARD_DELAY_REPLY( 101 IPC_MESSAGE_FORWARD_DELAY_REPLY(
102 GpuCommandBufferMsg_CreateVideoDecoder, &helper, 102 GpuCommandBufferMsg_CreateVideoDecoder, &helper,
103 MediaGpuChannelDispatchHelper::OnCreateVideoDecoder) 103 MediaGpuChannelDispatchHelper::OnCreateVideoDecoder)
104 IPC_MESSAGE_FORWARD_DELAY_REPLY( 104 IPC_MESSAGE_FORWARD_DELAY_REPLY(
105 GpuCommandBufferMsg_CreateVideoEncoder, &helper, 105 GpuCommandBufferMsg_CreateVideoEncoder, &helper,
106 MediaGpuChannelDispatchHelper::OnCreateVideoEncoder) 106 MediaGpuChannelDispatchHelper::OnCreateVideoEncoder)
107 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuChannelMsg_CreateJpegDecoder,
108 OnCreateJpegDecoder)
109 IPC_MESSAGE_UNHANDLED(handled = false) 107 IPC_MESSAGE_UNHANDLED(handled = false)
110 IPC_END_MESSAGE_MAP() 108 IPC_END_MESSAGE_MAP()
111 return handled; 109 return handled;
112 } 110 }
113 111
114 namespace {
115
116 void SendCreateJpegDecoderResult(
117 std::unique_ptr<IPC::Message> reply_message,
118 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
119 base::WeakPtr<IPC::Sender> channel,
120 scoped_refptr<MediaGpuChannelFilter> filter,
121 bool result) {
122 GpuChannelMsg_CreateJpegDecoder::WriteReplyParams(reply_message.get(),
123 result);
124 if (io_task_runner->BelongsToCurrentThread()) {
125 filter->Send(reply_message.release());
126 } else if (channel) {
127 channel->Send(reply_message.release());
128 }
129 }
130
131 } // namespace
132
133 void MediaGpuChannel::OnCreateJpegDecoder(int32_t route_id,
134 IPC::Message* reply_msg) {
135 std::unique_ptr<IPC::Message> msg(reply_msg);
136 if (!jpeg_decoder_) {
137 // The lifetime of |jpeg_decoder_| is managed by a gpu::GpuChannel. The
138 // GpuChannels destroy all the GpuJpegDecodeAccelerator that they own when
139 // they are destroyed. Therefore, passing |channel_| as a raw pointer is
140 // safe.
141 jpeg_decoder_.reset(
142 new GpuJpegDecodeAccelerator(channel_, channel_->io_task_runner()));
143 }
144 jpeg_decoder_->AddClient(
145 route_id,
146 base::Bind(&SendCreateJpegDecoderResult, base::Passed(&msg),
147 channel_->io_task_runner(), channel_->AsWeakPtr(), filter_));
148 }
149
150 void MediaGpuChannel::OnCreateVideoDecoder( 112 void MediaGpuChannel::OnCreateVideoDecoder(
151 int32_t command_buffer_route_id, 113 int32_t command_buffer_route_id,
152 const VideoDecodeAccelerator::Config& config, 114 const VideoDecodeAccelerator::Config& config,
153 int32_t decoder_route_id, 115 int32_t decoder_route_id,
154 IPC::Message* reply_message) { 116 IPC::Message* reply_message) {
155 TRACE_EVENT0("gpu", "MediaGpuChannel::OnCreateVideoDecoder"); 117 TRACE_EVENT0("gpu", "MediaGpuChannel::OnCreateVideoDecoder");
156 gpu::GpuCommandBufferStub* stub = 118 gpu::GpuCommandBufferStub* stub =
157 channel_->LookupCommandBuffer(command_buffer_route_id); 119 channel_->LookupCommandBuffer(command_buffer_route_id);
158 if (!stub) { 120 if (!stub) {
159 reply_message->set_reply_error(); 121 reply_message->set_reply_error();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 params.output_profile, params.initial_bitrate); 153 params.output_profile, params.initial_bitrate);
192 GpuCommandBufferMsg_CreateVideoEncoder::WriteReplyParams(reply_message, 154 GpuCommandBufferMsg_CreateVideoEncoder::WriteReplyParams(reply_message,
193 succeeded); 155 succeeded);
194 Send(reply_message); 156 Send(reply_message);
195 157
196 // encoder is registered as a DestructionObserver of this stub and will 158 // encoder is registered as a DestructionObserver of this stub and will
197 // self-delete during destruction of this stub. 159 // self-delete during destruction of this stub.
198 } 160 }
199 161
200 } // namespace media 162 } // namespace media
OLDNEW
« no previous file with comments | « media/gpu/ipc/service/media_gpu_channel.h ('k') | media/gpu/mojo/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698