| Index: content/renderer/gpu/gpu_video_decode_accelerator_host.cc
|
| diff --git a/content/renderer/gpu/gpu_video_decode_accelerator_host.cc b/content/renderer/gpu/gpu_video_decode_accelerator_host.cc
|
| index 69ba6334243728b90b9d0fd8d6c4a1f0448bb9ac..2a58314c33e4403a919aca0acb4fb3aceb0f04ac 100644
|
| --- a/content/renderer/gpu/gpu_video_decode_accelerator_host.cc
|
| +++ b/content/renderer/gpu/gpu_video_decode_accelerator_host.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/task.h"
|
| #include "content/common/gpu/gpu_messages.h"
|
| #include "content/common/view_messages.h"
|
| +#include "content/renderer/gpu/gpu_channel_host.h"
|
| #include "content/renderer/render_thread.h"
|
| #include "ipc/ipc_message_macros.h"
|
| #include "ipc/ipc_message_utils.h"
|
| @@ -17,13 +18,13 @@
|
| using media::VideoDecodeAccelerator;
|
|
|
| GpuVideoDecodeAcceleratorHost::GpuVideoDecodeAcceleratorHost(
|
| - IPC::Message::Sender* ipc_sender,
|
| - int32 command_buffer_route_id,
|
| + GpuChannelHost* channel,
|
| + int32 decoder_route_id,
|
| VideoDecodeAccelerator::Client* client)
|
| - : ipc_sender_(ipc_sender),
|
| - command_buffer_route_id_(command_buffer_route_id),
|
| + : channel_(channel),
|
| + decoder_route_id_(decoder_route_id),
|
| client_(client) {
|
| - DCHECK(ipc_sender_);
|
| + DCHECK(channel_);
|
| DCHECK(client_);
|
| DCHECK(RenderThread::current());
|
| DCHECK_EQ(RenderThread::current()->message_loop(), MessageLoop::current());
|
| @@ -32,7 +33,7 @@ GpuVideoDecodeAcceleratorHost::GpuVideoDecodeAcceleratorHost(
|
| GpuVideoDecodeAcceleratorHost::~GpuVideoDecodeAcceleratorHost() {}
|
|
|
| void GpuVideoDecodeAcceleratorHost::OnChannelError() {
|
| - ipc_sender_ = NULL;
|
| + channel_ = NULL;
|
| }
|
|
|
| bool GpuVideoDecodeAcceleratorHost::OnMessageReceived(const IPC::Message& msg) {
|
| @@ -69,7 +70,7 @@ void GpuVideoDecodeAcceleratorHost::Decode(
|
| const media::BitstreamBuffer& bitstream_buffer) {
|
| DCHECK(CalledOnValidThread());
|
| Send(new AcceleratedVideoDecoderMsg_Decode(
|
| - command_buffer_route_id_, bitstream_buffer.handle(),
|
| + decoder_route_id_, bitstream_buffer.handle(),
|
| bitstream_buffer.id(), bitstream_buffer.size()));
|
| }
|
|
|
| @@ -87,37 +88,38 @@ void GpuVideoDecodeAcceleratorHost::AssignPictureBuffers(
|
| sizes.push_back(buffer.size());
|
| }
|
| Send(new AcceleratedVideoDecoderMsg_AssignPictureBuffers(
|
| - command_buffer_route_id_, buffer_ids, texture_ids, sizes));
|
| + decoder_route_id_, buffer_ids, texture_ids, sizes));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::ReusePictureBuffer(
|
| int32 picture_buffer_id) {
|
| DCHECK(CalledOnValidThread());
|
| Send(new AcceleratedVideoDecoderMsg_ReusePictureBuffer(
|
| - command_buffer_route_id_, picture_buffer_id));
|
| + decoder_route_id_, picture_buffer_id));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::Flush() {
|
| DCHECK(CalledOnValidThread());
|
| - Send(new AcceleratedVideoDecoderMsg_Flush(command_buffer_route_id_));
|
| + Send(new AcceleratedVideoDecoderMsg_Flush(decoder_route_id_));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::Reset() {
|
| DCHECK(CalledOnValidThread());
|
| - Send(new AcceleratedVideoDecoderMsg_Reset(command_buffer_route_id_));
|
| + Send(new AcceleratedVideoDecoderMsg_Reset(decoder_route_id_));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::Destroy() {
|
| DCHECK(CalledOnValidThread());
|
| - Send(new AcceleratedVideoDecoderMsg_Destroy(command_buffer_route_id_));
|
| + channel_->RemoveRoute(decoder_route_id_);
|
| client_ = NULL;
|
| + Send(new AcceleratedVideoDecoderMsg_Destroy(decoder_route_id_));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::Send(IPC::Message* message) {
|
| // After OnChannelError is called, the client should no longer send
|
| // messages to the gpu channel through this object.
|
| - DCHECK(ipc_sender_);
|
| - if (!ipc_sender_ || !ipc_sender_->Send(message)) {
|
| + DCHECK(channel_);
|
| + if (!channel_ || !channel_->Send(message)) {
|
| DLOG(ERROR) << "Send(" << message->type() << ") failed";
|
| OnErrorNotification(PLATFORM_FAILURE);
|
| }
|
|
|