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/renderer/media/android/renderer_demuxer_android.cc

Issue 254473010: Refactor MSE implementation on Android to simplify the logic and improve the performance (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 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/renderer/media/android/renderer_demuxer_android.h" 5 #include "content/renderer/media/android/renderer_demuxer_android.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "content/child/thread_safe_sender.h" 9 #include "content/child/thread_safe_sender.h"
10 #include "content/common/media/media_player_messages_android.h" 10 #include "content/common/media/media_player_messages_android.h"
(...skipping 24 matching lines...) Expand all
35 35
36 void RendererDemuxerAndroid::RemoveDelegate(int demuxer_client_id) { 36 void RendererDemuxerAndroid::RemoveDelegate(int demuxer_client_id) {
37 DCHECK(media_message_loop_->BelongsToCurrentThread()); 37 DCHECK(media_message_loop_->BelongsToCurrentThread());
38 delegates_.Remove(demuxer_client_id); 38 delegates_.Remove(demuxer_client_id);
39 } 39 }
40 40
41 bool RendererDemuxerAndroid::OnMessageReceived(const IPC::Message& message) { 41 bool RendererDemuxerAndroid::OnMessageReceived(const IPC::Message& message) {
42 switch (message.type()) { 42 switch (message.type()) {
43 case MediaPlayerMsg_DemuxerSeekRequest::ID: 43 case MediaPlayerMsg_DemuxerSeekRequest::ID:
44 case MediaPlayerMsg_ReadFromDemuxer::ID: 44 case MediaPlayerMsg_ReadFromDemuxer::ID:
45 case MediaPlayerMsg_MediaConfigRequest::ID:
46 media_message_loop_->PostTask(FROM_HERE, base::Bind( 45 media_message_loop_->PostTask(FROM_HERE, base::Bind(
47 &RendererDemuxerAndroid::DispatchMessage, this, message)); 46 &RendererDemuxerAndroid::DispatchMessage, this, message));
48 return true; 47 return true;
49 } 48 }
50 return false; 49 return false;
51 } 50 }
52 51
53 void RendererDemuxerAndroid::DemuxerReady( 52 void RendererDemuxerAndroid::DemuxerReady(
54 int demuxer_client_id, 53 int demuxer_client_id,
55 const media::DemuxerConfigs& configs) { 54 const media::DemuxerConfigs& configs) {
(...skipping 18 matching lines...) Expand all
74 void RendererDemuxerAndroid::DurationChanged(int demuxer_client_id, 73 void RendererDemuxerAndroid::DurationChanged(int demuxer_client_id,
75 const base::TimeDelta& duration) { 74 const base::TimeDelta& duration) {
76 thread_safe_sender_->Send(new MediaPlayerHostMsg_DurationChanged( 75 thread_safe_sender_->Send(new MediaPlayerHostMsg_DurationChanged(
77 demuxer_client_id, duration)); 76 demuxer_client_id, duration));
78 } 77 }
79 78
80 void RendererDemuxerAndroid::DispatchMessage(const IPC::Message& message) { 79 void RendererDemuxerAndroid::DispatchMessage(const IPC::Message& message) {
81 IPC_BEGIN_MESSAGE_MAP(RendererDemuxerAndroid, message) 80 IPC_BEGIN_MESSAGE_MAP(RendererDemuxerAndroid, message)
82 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DemuxerSeekRequest, OnDemuxerSeekRequest) 81 IPC_MESSAGE_HANDLER(MediaPlayerMsg_DemuxerSeekRequest, OnDemuxerSeekRequest)
83 IPC_MESSAGE_HANDLER(MediaPlayerMsg_ReadFromDemuxer, OnReadFromDemuxer) 82 IPC_MESSAGE_HANDLER(MediaPlayerMsg_ReadFromDemuxer, OnReadFromDemuxer)
84 IPC_MESSAGE_HANDLER(MediaPlayerMsg_MediaConfigRequest, OnMediaConfigRequest)
85 IPC_END_MESSAGE_MAP() 83 IPC_END_MESSAGE_MAP()
86 } 84 }
87 85
88 void RendererDemuxerAndroid::OnReadFromDemuxer( 86 void RendererDemuxerAndroid::OnReadFromDemuxer(
89 int demuxer_client_id, 87 int demuxer_client_id,
90 media::DemuxerStream::Type type) { 88 media::DemuxerStream::Type type) {
91 MediaSourceDelegate* delegate = delegates_.Lookup(demuxer_client_id); 89 MediaSourceDelegate* delegate = delegates_.Lookup(demuxer_client_id);
92 if (delegate) 90 if (delegate)
93 delegate->OnReadFromDemuxer(type); 91 delegate->OnReadFromDemuxer(type);
94 } 92 }
95 93
96 void RendererDemuxerAndroid::OnDemuxerSeekRequest( 94 void RendererDemuxerAndroid::OnDemuxerSeekRequest(
97 int demuxer_client_id, 95 int demuxer_client_id,
98 const base::TimeDelta& time_to_seek, 96 const base::TimeDelta& time_to_seek,
99 bool is_browser_seek) { 97 bool is_browser_seek) {
100 MediaSourceDelegate* delegate = delegates_.Lookup(demuxer_client_id); 98 MediaSourceDelegate* delegate = delegates_.Lookup(demuxer_client_id);
101 if (delegate) 99 if (delegate)
102 delegate->Seek(time_to_seek, is_browser_seek); 100 delegate->Seek(time_to_seek, is_browser_seek);
103 } 101 }
104 102
105 void RendererDemuxerAndroid::OnMediaConfigRequest(int demuxer_client_id) {
106 MediaSourceDelegate* delegate = delegates_.Lookup(demuxer_client_id);
107 if (delegate)
108 delegate->OnMediaConfigRequest();
109 }
110
111 } // namespace content 103 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698