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

Side by Side Diff: content/browser/media/android/browser_demuxer_android.cc

Issue 1132973002: Revert of Added stub MediaSourcePlayer for developing behind the flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/browser/media/android/browser_demuxer_android.h" 5 #include "content/browser/media/android/browser_demuxer_android.h"
6 6
7 #include "base/command_line.h"
8 #include "content/common/media/media_player_messages_android.h" 7 #include "content/common/media/media_player_messages_android.h"
9 #include "media/base/android/media_codec_player.h"
10 #include "media/base/media_switches.h"
11 8
12 namespace content { 9 namespace content {
13 10
14 class BrowserDemuxerAndroid::Internal : public media::DemuxerAndroid { 11 class BrowserDemuxerAndroid::Internal : public media::DemuxerAndroid {
15 public: 12 public:
16 Internal(const scoped_refptr<BrowserDemuxerAndroid>& demuxer, 13 Internal(const scoped_refptr<BrowserDemuxerAndroid>& demuxer,
17 int demuxer_client_id) 14 int demuxer_client_id)
18 : demuxer_(demuxer), 15 : demuxer_(demuxer),
19 demuxer_client_id_(demuxer_client_id) {} 16 demuxer_client_id_(demuxer_client_id) {}
20 17
(...skipping 27 matching lines...) Expand all
48 return demuxer_->demuxer_clients_.Lookup(demuxer_client_id_); 45 return demuxer_->demuxer_clients_.Lookup(demuxer_client_id_);
49 } 46 }
50 47
51 scoped_refptr<BrowserDemuxerAndroid> demuxer_; 48 scoped_refptr<BrowserDemuxerAndroid> demuxer_;
52 int demuxer_client_id_; 49 int demuxer_client_id_;
53 50
54 DISALLOW_COPY_AND_ASSIGN(Internal); 51 DISALLOW_COPY_AND_ASSIGN(Internal);
55 }; 52 };
56 53
57 BrowserDemuxerAndroid::BrowserDemuxerAndroid() 54 BrowserDemuxerAndroid::BrowserDemuxerAndroid()
58 : BrowserMessageFilter(MediaPlayerMsgStart) { 55 : BrowserMessageFilter(MediaPlayerMsgStart) {}
59 bool enable_media_thread =
60 base::CommandLine::ForCurrentProcess()->
61 HasSwitch(switches::kEnableMediaThreadForMediaPlayback);
62
63 task_runner_ =
64 enable_media_thread ?
65 media::GetMediaTaskRunner().get() :
66 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI).get();
67
68 }
69 56
70 BrowserDemuxerAndroid::~BrowserDemuxerAndroid() {} 57 BrowserDemuxerAndroid::~BrowserDemuxerAndroid() {}
71 58
72 base::TaskRunner* BrowserDemuxerAndroid::OverrideTaskRunnerForMessage( 59 void BrowserDemuxerAndroid::OverrideThreadForMessage(
73 const IPC::Message& message) { 60 const IPC::Message& message,
74 61 BrowserThread::ID* thread) {
75 switch (message.type()) { 62 switch (message.type()) {
76 case MediaPlayerHostMsg_DemuxerReady::ID: 63 case MediaPlayerHostMsg_DemuxerReady::ID:
77 case MediaPlayerHostMsg_ReadFromDemuxerAck::ID: 64 case MediaPlayerHostMsg_ReadFromDemuxerAck::ID:
78 case MediaPlayerHostMsg_DurationChanged::ID: 65 case MediaPlayerHostMsg_DurationChanged::ID:
79 case MediaPlayerHostMsg_DemuxerSeekDone::ID: 66 case MediaPlayerHostMsg_DemuxerSeekDone::ID:
80 return task_runner_; 67 *thread = BrowserThread::UI;
68 return;
81 } 69 }
82
83 return nullptr;
84 } 70 }
85 71
86 bool BrowserDemuxerAndroid::OnMessageReceived(const IPC::Message& message) { 72 bool BrowserDemuxerAndroid::OnMessageReceived(const IPC::Message& message) {
87 bool handled = true; 73 bool handled = true;
88 IPC_BEGIN_MESSAGE_MAP(BrowserDemuxerAndroid, message) 74 IPC_BEGIN_MESSAGE_MAP(BrowserDemuxerAndroid, message)
89 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DemuxerReady, OnDemuxerReady) 75 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DemuxerReady, OnDemuxerReady)
90 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_ReadFromDemuxerAck, 76 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_ReadFromDemuxerAck,
91 OnReadFromDemuxerAck) 77 OnReadFromDemuxerAck)
92 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DurationChanged, 78 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DurationChanged,
93 OnDurationChanged) 79 OnDurationChanged)
94 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DemuxerSeekDone, 80 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DemuxerSeekDone,
95 OnDemuxerSeekDone) 81 OnDemuxerSeekDone)
96 IPC_MESSAGE_UNHANDLED(handled = false) 82 IPC_MESSAGE_UNHANDLED(handled = false)
97 IPC_END_MESSAGE_MAP() 83 IPC_END_MESSAGE_MAP()
98 return handled; 84 return handled;
99 } 85 }
100 86
101 scoped_ptr<media::DemuxerAndroid> BrowserDemuxerAndroid::CreateDemuxer( 87 scoped_ptr<media::DemuxerAndroid> BrowserDemuxerAndroid::CreateDemuxer(
102 int demuxer_client_id) { 88 int demuxer_client_id) {
103 return scoped_ptr<media::DemuxerAndroid>( 89 return scoped_ptr<media::DemuxerAndroid>(
104 new Internal(this, demuxer_client_id)); 90 new Internal(this, demuxer_client_id));
105 } 91 }
106 92
107 void BrowserDemuxerAndroid::AddDemuxerClient( 93 void BrowserDemuxerAndroid::AddDemuxerClient(
108 int demuxer_client_id, 94 int demuxer_client_id,
109 media::DemuxerAndroidClient* client) { 95 media::DemuxerAndroidClient* client) {
110 DVLOG(1) << __FUNCTION__ << " peer_pid=" << peer_pid() 96 DVLOG(1) << __FUNCTION__ << " peer_pid=" << peer_pid()
111 << " demuxer_client_id=" << demuxer_client_id; 97 << " demuxer_client_id=" << demuxer_client_id;
112 DCHECK(task_runner_->BelongsToCurrentThread());
113
114 demuxer_clients_.AddWithID(client, demuxer_client_id); 98 demuxer_clients_.AddWithID(client, demuxer_client_id);
115
116 if (pending_configs_.count(demuxer_client_id)) {
117 client->OnDemuxerConfigsAvailable(pending_configs_[demuxer_client_id]);
118 pending_configs_.erase(demuxer_client_id);
119 }
120 } 99 }
121 100
122 void BrowserDemuxerAndroid::RemoveDemuxerClient(int demuxer_client_id) { 101 void BrowserDemuxerAndroid::RemoveDemuxerClient(int demuxer_client_id) {
123 DVLOG(1) << __FUNCTION__ << " peer_pid=" << peer_pid() 102 DVLOG(1) << __FUNCTION__ << " peer_pid=" << peer_pid()
124 << " demuxer_client_id=" << demuxer_client_id; 103 << " demuxer_client_id=" << demuxer_client_id;
125 DCHECK(task_runner_->BelongsToCurrentThread());
126
127 demuxer_clients_.Remove(demuxer_client_id); 104 demuxer_clients_.Remove(demuxer_client_id);
128 } 105 }
129 106
130 void BrowserDemuxerAndroid::OnDemuxerReady( 107 void BrowserDemuxerAndroid::OnDemuxerReady(
131 int demuxer_client_id, 108 int demuxer_client_id,
132 const media::DemuxerConfigs& configs) { 109 const media::DemuxerConfigs& configs) {
133 DCHECK(task_runner_->BelongsToCurrentThread());
134
135 media::DemuxerAndroidClient* client = 110 media::DemuxerAndroidClient* client =
136 demuxer_clients_.Lookup(demuxer_client_id); 111 demuxer_clients_.Lookup(demuxer_client_id);
137
138 if (client) 112 if (client)
139 client->OnDemuxerConfigsAvailable(configs); 113 client->OnDemuxerConfigsAvailable(configs);
140 else
141 pending_configs_[demuxer_client_id] = configs;
142 } 114 }
143 115
144 void BrowserDemuxerAndroid::OnReadFromDemuxerAck( 116 void BrowserDemuxerAndroid::OnReadFromDemuxerAck(
145 int demuxer_client_id, 117 int demuxer_client_id,
146 const media::DemuxerData& data) { 118 const media::DemuxerData& data) {
147 DCHECK(task_runner_->BelongsToCurrentThread());
148
149 media::DemuxerAndroidClient* client = 119 media::DemuxerAndroidClient* client =
150 demuxer_clients_.Lookup(demuxer_client_id); 120 demuxer_clients_.Lookup(demuxer_client_id);
151
152 if (client) 121 if (client)
153 client->OnDemuxerDataAvailable(data); 122 client->OnDemuxerDataAvailable(data);
154 } 123 }
155 124
156 void BrowserDemuxerAndroid::OnDemuxerSeekDone( 125 void BrowserDemuxerAndroid::OnDemuxerSeekDone(
157 int demuxer_client_id, 126 int demuxer_client_id,
158 const base::TimeDelta& actual_browser_seek_time) { 127 const base::TimeDelta& actual_browser_seek_time) {
159 DCHECK(task_runner_->BelongsToCurrentThread());
160
161 media::DemuxerAndroidClient* client = 128 media::DemuxerAndroidClient* client =
162 demuxer_clients_.Lookup(demuxer_client_id); 129 demuxer_clients_.Lookup(demuxer_client_id);
163
164 if (client) 130 if (client)
165 client->OnDemuxerSeekDone(actual_browser_seek_time); 131 client->OnDemuxerSeekDone(actual_browser_seek_time);
166 } 132 }
167 133
168 void BrowserDemuxerAndroid::OnDurationChanged(int demuxer_client_id, 134 void BrowserDemuxerAndroid::OnDurationChanged(int demuxer_client_id,
169 const base::TimeDelta& duration) { 135 const base::TimeDelta& duration) {
170 DCHECK(task_runner_->BelongsToCurrentThread());
171
172 media::DemuxerAndroidClient* client = 136 media::DemuxerAndroidClient* client =
173 demuxer_clients_.Lookup(demuxer_client_id); 137 demuxer_clients_.Lookup(demuxer_client_id);
174
175 if (client) 138 if (client)
176 client->OnDemuxerDurationChanged(duration); 139 client->OnDemuxerDurationChanged(duration);
177 else
178 pending_configs_[demuxer_client_id].duration = duration;
179 } 140 }
180 141
181 } // namespace content 142 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/media/android/browser_demuxer_android.h ('k') | content/browser/media/android/browser_media_player_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698