summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorqinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-08 19:04:02 +0000
committerqinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-08 19:04:02 +0000
commitbbb5eba591a4226e8a4ff8f617c6e86fd428664c (patch)
tree5237c106016ae63a148b8c0b4df46030119b7c8c /content
parent2da8060fe765a97c68de1f36398f5bf988662f8d (diff)
downloadchromium_src-bbb5eba591a4226e8a4ff8f617c6e86fd428664c.zip
chromium_src-bbb5eba591a4226e8a4ff8f617c6e86fd428664c.tar.gz
chromium_src-bbb5eba591a4226e8a4ff8f617c6e86fd428664c.tar.bz2
Add MediaPlayerAndroid as a super class for all media player implementations on android.
There are several different implementations of media players on Android. Currently they all inherit from MediaPlayerBridge. This only works if their java player is a subclass of Android MediaPlayer class, which is not necessary in some cases. Additionally, we are not going to use any subclass of android MediaPlayer for MSE implementation As a result, this change introduces a super class for all the media player implementations. BUG=233420 R=scherkus@chromium.org, ycheo@chromium.org, yfriedman@chromium.org Review URL: https://codereview.chromium.org/14762006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198957 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/android/child_process_launcher_android.cc6
-rw-r--r--content/browser/android/content_video_view.cc18
-rw-r--r--content/browser/android/media_player_manager_impl.cc52
-rw-r--r--content/browser/android/media_player_manager_impl.h24
-rw-r--r--content/browser/android/surface_texture_peer_browser_impl.cc6
5 files changed, 54 insertions, 52 deletions
diff --git a/content/browser/android/child_process_launcher_android.cc b/content/browser/android/child_process_launcher_android.cc
index b3fb563..e14813a 100644
--- a/content/browser/android/child_process_launcher_android.cc
+++ b/content/browser/android/child_process_launcher_android.cc
@@ -14,7 +14,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
#include "jni/ChildProcessLauncher_jni.h"
-#include "media/base/android/media_player_bridge.h"
+#include "media/base/android/media_player_android.h"
#include "ui/gl/android/scoped_java_surface.h"
using base::android::AttachCurrentThread;
@@ -27,7 +27,7 @@ namespace content {
namespace {
-// Pass a java surface object to the MediaPlayerBridge object
+// Pass a java surface object to the MediaPlayerAndroid object
// identified by render process handle, render view ID and player ID.
static void SetSurfacePeer(
const base::android::JavaRef<jobject>& surface,
@@ -48,7 +48,7 @@ static void SetSurfacePeer(
RenderViewHostImpl* host = RenderViewHostImpl::FromID(
renderer_id, render_view_id);
if (host) {
- media::MediaPlayerBridge* player =
+ media::MediaPlayerAndroid* player =
host->media_player_manager()->GetPlayer(player_id);
if (player &&
player != host->media_player_manager()->GetFullscreenPlayer()) {
diff --git a/content/browser/android/content_video_view.cc b/content/browser/android/content_video_view.cc
index 242134b..7f71cc4 100644
--- a/content/browser/android/content_video_view.cc
+++ b/content/browser/android/content_video_view.cc
@@ -87,27 +87,27 @@ void ContentVideoView::UpdateMediaMetadata() {
}
int ContentVideoView::GetVideoWidth(JNIEnv*, jobject obj) const {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
return player ? player->GetVideoWidth() : 0;
}
int ContentVideoView::GetVideoHeight(JNIEnv*, jobject obj) const {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
return player ? player->GetVideoHeight() : 0;
}
int ContentVideoView::GetDurationInMilliSeconds(JNIEnv*, jobject obj) const {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
return player ? player->GetDuration().InMilliseconds() : -1;
}
int ContentVideoView::GetCurrentPosition(JNIEnv*, jobject obj) const {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
return player ? player->GetCurrentTime().InMilliseconds() : 0;
}
bool ContentVideoView::IsPlaying(JNIEnv*, jobject obj) {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
return player ? player->IsPlaying() : false;
}
@@ -135,12 +135,12 @@ void ContentVideoView::SetSurface(JNIEnv* env, jobject obj,
}
void ContentVideoView::UpdateMediaMetadata(JNIEnv* env, jobject obj) {
- media::MediaPlayerBridge* player = manager_->GetFullscreenPlayer();
- if (player && player->prepared())
+ media::MediaPlayerAndroid* player = manager_->GetFullscreenPlayer();
+ if (player && player->IsPlayerReady())
Java_ContentVideoView_updateMediaMetadata(
env, obj, player->GetVideoWidth(), player->GetVideoHeight(),
- player->GetDuration().InMilliseconds(), player->can_pause(),
- player->can_seek_forward(), player->can_seek_backward());
+ player->GetDuration().InMilliseconds(), player->CanPause(),
+ player->CanSeekForward(), player->CanSeekBackward());
}
} // namespace content
diff --git a/content/browser/android/media_player_manager_impl.cc b/content/browser/android/media_player_manager_impl.cc
index 30f11a4..2fe672d 100644
--- a/content/browser/android/media_player_manager_impl.cc
+++ b/content/browser/android/media_player_manager_impl.cc
@@ -13,7 +13,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/storage_partition.h"
-using media::MediaPlayerBridge;
+using media::MediaPlayerAndroid;
// Threshold on the number of media players per renderer before we start
// attempting to release inactive media players.
@@ -59,7 +59,7 @@ bool MediaPlayerManagerImpl::OnMessageReceived(const IPC::Message& msg) {
}
void MediaPlayerManagerImpl::FullscreenPlayerPlay() {
- MediaPlayerBridge* player = GetFullscreenPlayer();
+ MediaPlayerAndroid* player = GetFullscreenPlayer();
if (player) {
player->Start();
Send(new MediaPlayerMsg_DidMediaPlayerPlay(
@@ -68,7 +68,7 @@ void MediaPlayerManagerImpl::FullscreenPlayerPlay() {
}
void MediaPlayerManagerImpl::FullscreenPlayerPause() {
- MediaPlayerBridge* player = GetFullscreenPlayer();
+ MediaPlayerAndroid* player = GetFullscreenPlayer();
if (player) {
player->Pause();
Send(new MediaPlayerMsg_DidMediaPlayerPause(
@@ -77,7 +77,7 @@ void MediaPlayerManagerImpl::FullscreenPlayerPause() {
}
void MediaPlayerManagerImpl::FullscreenPlayerSeek(int msec) {
- MediaPlayerBridge* player = GetFullscreenPlayer();
+ MediaPlayerAndroid* player = GetFullscreenPlayer();
if (player)
player->SeekTo(base::TimeDelta::FromMilliseconds(msec));
}
@@ -85,7 +85,7 @@ void MediaPlayerManagerImpl::FullscreenPlayerSeek(int msec) {
void MediaPlayerManagerImpl::ExitFullscreen(bool release_media_player) {
Send(new MediaPlayerMsg_DidExitFullscreen(
routing_id(), fullscreen_player_id_));
- MediaPlayerBridge* player = GetFullscreenPlayer();
+ MediaPlayerAndroid* player = GetFullscreenPlayer();
fullscreen_player_id_ = -1;
if (!player)
return;
@@ -96,7 +96,7 @@ void MediaPlayerManagerImpl::ExitFullscreen(bool release_media_player) {
}
void MediaPlayerManagerImpl::SetVideoSurface(jobject surface) {
- MediaPlayerBridge* player = GetFullscreenPlayer();
+ MediaPlayerAndroid* player = GetFullscreenPlayer();
if (player) {
player->SetVideoSurface(surface);
Send(new MediaPlayerMsg_DidEnterFullscreen(
@@ -108,7 +108,7 @@ void MediaPlayerManagerImpl::OnInitialize(
int player_id, const GURL& url,
bool is_media_source,
const GURL& first_party_for_cookies) {
- for (ScopedVector<MediaPlayerBridge>::iterator it = players_.begin();
+ for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin();
it != players_.end(); ++it) {
if ((*it)->player_id() == player_id) {
players_.erase(it);
@@ -117,7 +117,7 @@ void MediaPlayerManagerImpl::OnInitialize(
}
RenderProcessHost* host = render_view_host()->GetProcess();
- players_.push_back(media::MediaPlayerBridge::Create(
+ players_.push_back(media::MediaPlayerAndroid::Create(
player_id, url, is_media_source, first_party_for_cookies,
host->GetBrowserContext()->IsOffTheRecord(), this,
#if defined(GOOGLE_TV)
@@ -155,19 +155,19 @@ media::MediaResourceGetter* MediaPlayerManagerImpl::GetMediaResourceGetter() {
}
void MediaPlayerManagerImpl::OnStart(int player_id) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->Start();
}
void MediaPlayerManagerImpl::OnSeek(int player_id, base::TimeDelta time) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->SeekTo(time);
}
void MediaPlayerManagerImpl::OnPause(int player_id) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->Pause();
}
@@ -181,7 +181,7 @@ void MediaPlayerManagerImpl::OnEnterFullscreen(int player_id) {
void MediaPlayerManagerImpl::OnExitFullscreen(int player_id) {
if (fullscreen_player_id_ == player_id) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->SetVideoSurface(NULL);
video_view_.DestroyContentVideoView();
@@ -190,7 +190,7 @@ void MediaPlayerManagerImpl::OnExitFullscreen(int player_id) {
}
void MediaPlayerManagerImpl::OnReleaseResources(int player_id) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
// Don't release the fullscreen player when tab visibility changes,
// it will be released when user hit the back/home button or when
// OnDestroyPlayer is called.
@@ -199,7 +199,7 @@ void MediaPlayerManagerImpl::OnReleaseResources(int player_id) {
}
void MediaPlayerManagerImpl::OnDestroyPlayer(int player_id) {
- for (ScopedVector<MediaPlayerBridge>::iterator it = players_.begin();
+ for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin();
it != players_.end(); ++it) {
if ((*it)->player_id() == player_id) {
players_.erase(it);
@@ -221,13 +221,13 @@ void MediaPlayerManagerImpl::DestroyAllMediaPlayers() {
#if defined(GOOGLE_TV)
void MediaPlayerManagerImpl::AttachExternalVideoSurface(int player_id,
jobject surface) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->SetVideoSurface(surface);
}
void MediaPlayerManagerImpl::DetachExternalVideoSurface(int player_id) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->SetVideoSurface(NULL);
}
@@ -246,7 +246,7 @@ void MediaPlayerManagerImpl::OnNotifyExternalSurface(
void MediaPlayerManagerImpl::OnDemuxerReady(
int player_id,
const media::MediaPlayerHostMsg_DemuxerReady_Params& params) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->DemuxerReady(params);
}
@@ -254,14 +254,14 @@ void MediaPlayerManagerImpl::OnDemuxerReady(
void MediaPlayerManagerImpl::OnReadFromDemuxerAck(
int player_id,
const media::MediaPlayerHostMsg_ReadFromDemuxerAck_Params& params) {
- MediaPlayerBridge* player = GetPlayer(player_id);
+ MediaPlayerAndroid* player = GetPlayer(player_id);
if (player)
player->ReadFromDemuxerAck(params);
}
#endif
-MediaPlayerBridge* MediaPlayerManagerImpl::GetPlayer(int player_id) {
- for (ScopedVector<MediaPlayerBridge>::iterator it = players_.begin();
+MediaPlayerAndroid* MediaPlayerManagerImpl::GetPlayer(int player_id) {
+ for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin();
it != players_.end(); ++it) {
if ((*it)->player_id() == player_id)
return *it;
@@ -269,7 +269,7 @@ MediaPlayerBridge* MediaPlayerManagerImpl::GetPlayer(int player_id) {
return NULL;
}
-MediaPlayerBridge* MediaPlayerManagerImpl::GetFullscreenPlayer() {
+MediaPlayerAndroid* MediaPlayerManagerImpl::GetFullscreenPlayer() {
return GetPlayer(fullscreen_player_id_);
}
@@ -337,14 +337,14 @@ void MediaPlayerManagerImpl::OnReadFromDemuxer(
#endif
void MediaPlayerManagerImpl::RequestMediaResources(
- MediaPlayerBridge* player) {
+ MediaPlayerAndroid* player) {
if (player == NULL)
return;
int num_active_player = 0;
- ScopedVector<MediaPlayerBridge>::iterator it;
+ ScopedVector<MediaPlayerAndroid>::iterator it;
for (it = players_.begin(); it != players_.end(); ++it) {
- if (!(*it)->prepared())
+ if (!(*it)->IsPlayerReady())
continue;
// The player is already active, ignore it.
@@ -359,7 +359,7 @@ void MediaPlayerManagerImpl::RequestMediaResources(
return;
for (it = players_.begin(); it != players_.end(); ++it) {
- if ((*it)->prepared() && !(*it)->IsPlaying() &&
+ if ((*it)->IsPlayerReady() && !(*it)->IsPlaying() &&
fullscreen_player_id_ != (*it)->player_id()) {
(*it)->Release();
Send(new MediaPlayerMsg_MediaPlayerReleased(
@@ -369,7 +369,7 @@ void MediaPlayerManagerImpl::RequestMediaResources(
}
void MediaPlayerManagerImpl::ReleaseMediaResources(
- MediaPlayerBridge* player) {
+ MediaPlayerAndroid* player) {
// Nothing needs to be done.
}
diff --git a/content/browser/android/media_player_manager_impl.h b/content/browser/android/media_player_manager_impl.h
index 2cba3f6..61993b4 100644
--- a/content/browser/android/media_player_manager_impl.h
+++ b/content/browser/android/media_player_manager_impl.h
@@ -17,7 +17,7 @@
#if defined(GOOGLE_TV)
#include "media/base/android/demuxer_stream_player_params.h"
#endif
-#include "media/base/android/media_player_bridge.h"
+#include "media/base/android/media_player_android.h"
#include "media/base/android/media_player_manager.h"
#include "ui/gfx/rect_f.h"
@@ -25,10 +25,10 @@ namespace content {
class WebContents;
-// This class manages all the MediaPlayerBridge objects. It receives
+// This class manages all the MediaPlayerAndroid objects. It receives
// control operations from the the render process, and forwards
-// them to corresponding MediaPlayerBridge object. Callbacks from
-// MediaPlayerBridge objects are converted to IPCs and then sent to the
+// them to corresponding MediaPlayerAndroid object. Callbacks from
+// MediaPlayerAndroid objects are converted to IPCs and then sent to the
// render process.
class MediaPlayerManagerImpl
: public RenderViewHostObserver,
@@ -52,7 +52,7 @@ class MediaPlayerManagerImpl
// time update events.
void OnTimeUpdate(int player_id, base::TimeDelta current_time);
- // Callbacks needed by media::MediaPlayerBridge.
+ // Callbacks needed by media::MediaPlayerAndroid.
void OnMediaMetadataChanged(int player_id, base::TimeDelta duration,
int width, int height, bool success);
void OnPlaybackComplete(int player_id);
@@ -68,9 +68,11 @@ class MediaPlayerManagerImpl
int player_id, media::DemuxerStream::Type type, bool seek_done);
#endif
- // media::MediaPlayerBridgeManager overrides.
- virtual void RequestMediaResources(media::MediaPlayerBridge* player) OVERRIDE;
- virtual void ReleaseMediaResources(media::MediaPlayerBridge* player) OVERRIDE;
+ // media::MediaPlayerManager overrides.
+ virtual void RequestMediaResources(
+ media::MediaPlayerAndroid* player) OVERRIDE;
+ virtual void ReleaseMediaResources(
+ media::MediaPlayerAndroid* player) OVERRIDE;
virtual media::MediaResourceGetter* GetMediaResourceGetter() OVERRIDE;
// Release all the players managed by this object.
@@ -81,8 +83,8 @@ class MediaPlayerManagerImpl
void DetachExternalVideoSurface(int player_id);
#endif
- media::MediaPlayerBridge* GetFullscreenPlayer();
- media::MediaPlayerBridge* GetPlayer(int player_id);
+ media::MediaPlayerAndroid* GetFullscreenPlayer();
+ media::MediaPlayerAndroid* GetPlayer(int player_id);
private:
// Message handlers.
@@ -108,7 +110,7 @@ class MediaPlayerManagerImpl
#endif
// An array of managed players.
- ScopedVector<media::MediaPlayerBridge> players_;
+ ScopedVector<media::MediaPlayerAndroid> players_;
// The fullscreen video view object.
ContentVideoView video_view_;
diff --git a/content/browser/android/surface_texture_peer_browser_impl.cc b/content/browser/android/surface_texture_peer_browser_impl.cc
index 1cba847..fecc317 100644
--- a/content/browser/android/surface_texture_peer_browser_impl.cc
+++ b/content/browser/android/surface_texture_peer_browser_impl.cc
@@ -8,14 +8,14 @@
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
-#include "media/base/android/media_player_bridge.h"
+#include "media/base/android/media_player_android.h"
#include "ui/gl/android/scoped_java_surface.h"
namespace content {
namespace {
-// Pass a java surface object to the MediaPlayerBridge object
+// Pass a java surface object to the MediaPlayerAndroid object
// identified by render process handle, render view ID and player ID.
static void SetSurfacePeer(
scoped_refptr<gfx::SurfaceTextureBridge> surface_texture_bridge,
@@ -36,7 +36,7 @@ static void SetSurfacePeer(
RenderViewHostImpl* host = RenderViewHostImpl::FromID(
renderer_id, render_view_id);
if (host) {
- media::MediaPlayerBridge* player =
+ media::MediaPlayerAndroid* player =
host->media_player_manager()->GetPlayer(player_id);
if (player &&
player != host->media_player_manager()->GetFullscreenPlayer()) {