| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/common/gpu/media/gpu_video_decode_accelerator.h" | 5 #include "content/common/gpu/media/gpu_video_decode_accelerator.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 public: | 65 public: |
| 66 explicit DebugAutoLock(base::Lock&) {} | 66 explicit DebugAutoLock(base::Lock&) {} |
| 67 }; | 67 }; |
| 68 #endif | 68 #endif |
| 69 | 69 |
| 70 class GpuVideoDecodeAccelerator::MessageFilter : public IPC::MessageFilter { | 70 class GpuVideoDecodeAccelerator::MessageFilter : public IPC::MessageFilter { |
| 71 public: | 71 public: |
| 72 MessageFilter(GpuVideoDecodeAccelerator* owner, int32 host_route_id) | 72 MessageFilter(GpuVideoDecodeAccelerator* owner, int32 host_route_id) |
| 73 : owner_(owner), host_route_id_(host_route_id) {} | 73 : owner_(owner), host_route_id_(host_route_id) {} |
| 74 | 74 |
| 75 virtual void OnChannelError() OVERRIDE { channel_ = NULL; } | 75 virtual void OnSenderError() OVERRIDE { sender_ = NULL; } |
| 76 | 76 |
| 77 virtual void OnChannelClosing() OVERRIDE { channel_ = NULL; } | 77 virtual void OnSenderClosing() OVERRIDE { sender_ = NULL; } |
| 78 | 78 |
| 79 virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE { | 79 virtual void OnFilterAdded(IPC::Sender* sender) OVERRIDE { |
| 80 channel_ = channel; | 80 sender_ = sender; |
| 81 } | 81 } |
| 82 | 82 |
| 83 virtual void OnFilterRemoved() OVERRIDE { | 83 virtual void OnFilterRemoved() OVERRIDE { |
| 84 // This will delete |owner_| and |this|. | 84 // This will delete |owner_| and |this|. |
| 85 owner_->OnFilterRemoved(); | 85 owner_->OnFilterRemoved(); |
| 86 } | 86 } |
| 87 | 87 |
| 88 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE { | 88 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE { |
| 89 if (msg.routing_id() != host_route_id_) | 89 if (msg.routing_id() != host_route_id_) |
| 90 return false; | 90 return false; |
| 91 | 91 |
| 92 IPC_BEGIN_MESSAGE_MAP(MessageFilter, msg) | 92 IPC_BEGIN_MESSAGE_MAP(MessageFilter, msg) |
| 93 IPC_MESSAGE_FORWARD(AcceleratedVideoDecoderMsg_Decode, owner_, | 93 IPC_MESSAGE_FORWARD(AcceleratedVideoDecoderMsg_Decode, owner_, |
| 94 GpuVideoDecodeAccelerator::OnDecode) | 94 GpuVideoDecodeAccelerator::OnDecode) |
| 95 IPC_MESSAGE_UNHANDLED(return false;) | 95 IPC_MESSAGE_UNHANDLED(return false;) |
| 96 IPC_END_MESSAGE_MAP() | 96 IPC_END_MESSAGE_MAP() |
| 97 return true; | 97 return true; |
| 98 } | 98 } |
| 99 | 99 |
| 100 bool SendOnIOThread(IPC::Message* message) { | 100 bool SendOnIOThread(IPC::Message* message) { |
| 101 DCHECK(!message->is_sync()); | 101 DCHECK(!message->is_sync()); |
| 102 if (!channel_) { | 102 if (!sender_) { |
| 103 delete message; | 103 delete message; |
| 104 return false; | 104 return false; |
| 105 } | 105 } |
| 106 return channel_->Send(message); | 106 return sender_->Send(message); |
| 107 } | 107 } |
| 108 | 108 |
| 109 protected: | 109 protected: |
| 110 virtual ~MessageFilter() {} | 110 virtual ~MessageFilter() {} |
| 111 | 111 |
| 112 private: | 112 private: |
| 113 GpuVideoDecodeAccelerator* owner_; | 113 GpuVideoDecodeAccelerator* owner_; |
| 114 int32 host_route_id_; | 114 int32 host_route_id_; |
| 115 // The channel to which this filter was added. | 115 // The sender to which this filter was added. |
| 116 IPC::Channel* channel_; | 116 IPC::Sender* sender_; |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator( | 119 GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator( |
| 120 int32 host_route_id, | 120 int32 host_route_id, |
| 121 GpuCommandBufferStub* stub, | 121 GpuCommandBufferStub* stub, |
| 122 const scoped_refptr<base::MessageLoopProxy>& io_message_loop) | 122 const scoped_refptr<base::MessageLoopProxy>& io_message_loop) |
| 123 : host_route_id_(host_route_id), | 123 : host_route_id_(host_route_id), |
| 124 stub_(stub), | 124 stub_(stub), |
| 125 texture_target_(0), | 125 texture_target_(0), |
| 126 filter_removed_(true, false), | 126 filter_removed_(true, false), |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 return stub_->channel()->Send(message); | 488 return stub_->channel()->Send(message); |
| 489 } | 489 } |
| 490 | 490 |
| 491 void GpuVideoDecodeAccelerator::SendCreateDecoderReply(IPC::Message* message, | 491 void GpuVideoDecodeAccelerator::SendCreateDecoderReply(IPC::Message* message, |
| 492 bool succeeded) { | 492 bool succeeded) { |
| 493 GpuCommandBufferMsg_CreateVideoDecoder::WriteReplyParams(message, succeeded); | 493 GpuCommandBufferMsg_CreateVideoDecoder::WriteReplyParams(message, succeeded); |
| 494 Send(message); | 494 Send(message); |
| 495 } | 495 } |
| 496 | 496 |
| 497 } // namespace content | 497 } // namespace content |
| OLD | NEW |