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

Side by Side Diff: content/common/gpu/media/gpu_video_decode_accelerator.cc

Issue 324143002: Decouple IPC::MessageFilter from IPC::Channel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing compilation errors Created 6 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 | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698