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

Unified Diff: media/gpu/ipc/service/media_gpu_channel.cc

Issue 2870333003: gpu: Remove gpu channel filter and queue from header. (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: media/gpu/ipc/service/media_gpu_channel.cc
diff --git a/media/gpu/ipc/service/media_gpu_channel.cc b/media/gpu/ipc/service/media_gpu_channel.cc
index 2f5732d046bbbf24b1e819b3fbae5a53f87c26f6..5dcb2d3710cd206bb38cf49fddca4c927058f4a2 100644
--- a/media/gpu/ipc/service/media_gpu_channel.cc
+++ b/media/gpu/ipc/service/media_gpu_channel.cc
@@ -13,25 +13,6 @@
namespace media {
-namespace {
-
-void SendCreateJpegDecoderResult(
- std::unique_ptr<IPC::Message> reply_message,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- base::WeakPtr<gpu::GpuChannel> channel,
- scoped_refptr<gpu::GpuChannelMessageFilter> filter,
- bool result) {
- GpuChannelMsg_CreateJpegDecoder::WriteReplyParams(reply_message.get(),
- result);
- if (io_task_runner->BelongsToCurrentThread()) {
- filter->Send(reply_message.release());
- } else if (channel) {
- channel->Send(reply_message.release());
- }
-}
-
-} // namespace
-
class MediaGpuChannelDispatchHelper {
public:
MediaGpuChannelDispatchHelper(MediaGpuChannel* channel, int32_t routing_id)
@@ -64,7 +45,6 @@ class MediaGpuChannelFilter : public IPC::MessageFilter {
: channel_token_(channel_token) {}
void OnFilterAdded(IPC::Channel* channel) override { channel_ = channel; }
- bool Send(IPC::Message* msg) { return channel_->Send(msg); }
bool OnMessageReceived(const IPC::Message& msg) override {
bool handled = true;
@@ -82,6 +62,8 @@ class MediaGpuChannelFilter : public IPC::MessageFilter {
Send(reply_message);
}
+ bool Send(IPC::Message* msg) { return channel_->Send(msg); }
+
private:
~MediaGpuChannelFilter() override {}
@@ -91,8 +73,8 @@ class MediaGpuChannelFilter : public IPC::MessageFilter {
MediaGpuChannel::MediaGpuChannel(gpu::GpuChannel* channel,
const base::UnguessableToken& channel_token)
- : channel_(channel) {
- channel_->AddFilter(new MediaGpuChannelFilter(channel_token));
+ : channel_(channel), filter_(new MediaGpuChannelFilter(channel_token)) {
sandersd (OOO until July 31) 2017/05/11 21:09:18 I'm not very comfortable keeping a reference to th
sunnyps 2017/05/11 22:21:46 Filter lifetime has never been tied to the (gpu or
sandersd (OOO until July 31) 2017/05/11 22:45:03 The specific implementation of this filter guarant
sunnyps 2017/05/11 22:53:24 Oh you mean accessing |channel_| right? That shoul
sandersd (OOO until July 31) 2017/05/11 23:14:38 I believe that OnFilterRemoved is a sufficient sol
+ channel_->AddFilter(filter_.get());
}
MediaGpuChannel::~MediaGpuChannel() {}
@@ -118,6 +100,25 @@ bool MediaGpuChannel::OnMessageReceived(const IPC::Message& message) {
return handled;
}
+namespace {
+
+void SendCreateJpegDecoderResult(
+ std::unique_ptr<IPC::Message> reply_message,
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
+ base::WeakPtr<IPC::Sender> channel,
+ scoped_refptr<MediaGpuChannelFilter> filter,
+ bool result) {
+ GpuChannelMsg_CreateJpegDecoder::WriteReplyParams(reply_message.get(),
+ result);
+ if (io_task_runner->BelongsToCurrentThread()) {
+ filter->Send(reply_message.release());
+ } else if (channel) {
+ channel->Send(reply_message.release());
+ }
+}
+
+} // namespace
+
void MediaGpuChannel::OnCreateJpegDecoder(int32_t route_id,
IPC::Message* reply_msg) {
std::unique_ptr<IPC::Message> msg(reply_msg);
@@ -130,9 +131,9 @@ void MediaGpuChannel::OnCreateJpegDecoder(int32_t route_id,
new GpuJpegDecodeAccelerator(channel_, channel_->io_task_runner()));
}
jpeg_decoder_->AddClient(
- route_id, base::Bind(&SendCreateJpegDecoderResult, base::Passed(&msg),
- channel_->io_task_runner(), channel_->AsWeakPtr(),
- channel_->filter()));
+ route_id,
+ base::Bind(&SendCreateJpegDecoderResult, base::Passed(&msg),
+ channel_->io_task_runner(), channel_->AsWeakPtr(), filter_));
}
void MediaGpuChannel::OnCreateVideoDecoder(
« media/gpu/ipc/service/media_gpu_channel.h ('K') | « media/gpu/ipc/service/media_gpu_channel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698