| Index: media/base/android/media_player_listener.cc
|
| diff --git a/media/base/android/media_player_listener.cc b/media/base/android/media_player_listener.cc
|
| index 861a34f7b0b3a636540b29b5ba0cf13fbd52db8a..60292ef92473e1e7d768b9b69823e7c7a2b36583 100644
|
| --- a/media/base/android/media_player_listener.cc
|
| +++ b/media/base/android/media_player_listener.cc
|
| @@ -18,7 +18,7 @@ using base::android::ScopedJavaLocalRef;
|
|
|
| namespace media {
|
|
|
| -MediaPlayerListener::MediaPlayerListener(
|
| +MediaPlayerListenerProxy::MediaPlayerListenerProxy(
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| base::WeakPtr<MediaPlayerAndroid> media_player)
|
| : task_runner_(task_runner),
|
| @@ -27,6 +27,100 @@ MediaPlayerListener::MediaPlayerListener(
|
| DCHECK(media_player_);
|
| }
|
|
|
| +void MediaPlayerListenerProxy::OnMediaError(int error_type) {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnMediaError, this, error_type));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnMediaError(error_type);
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnVideoSizeChanged(int width, int height) {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnVideoSizeChanged,
|
| + this, width, height));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnVideoSizeChanged(width, height);
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnBufferingUpdate(int percent) {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnBufferingUpdate,
|
| + this, percent));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnBufferingUpdate(percent);
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnPlaybackComplete() {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnPlaybackComplete, this));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnPlaybackComplete();
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnSeekComplete() {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnSeekComplete, this));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnSeekComplete();
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnMediaPrepared() {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnMediaPrepared, this));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnMediaPrepared();
|
| +}
|
| +
|
| +void MediaPlayerListenerProxy::OnMediaInterrupted() {
|
| + if (!task_runner_->BelongsToCurrentThread()) {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&MediaPlayerListenerProxy::OnMediaInterrupted, this));
|
| + return;
|
| + }
|
| +
|
| + if (media_player_)
|
| + media_player_->OnMediaInterrupted();
|
| +}
|
| +
|
| +MediaPlayerListenerProxy::~MediaPlayerListenerProxy() {}
|
| +
|
| +MediaPlayerListener::MediaPlayerListener(
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| + base::WeakPtr<MediaPlayerAndroid> media_player)
|
| + : proxy_(new MediaPlayerListenerProxy(task_runner, media_player)) {
|
| +}
|
| +
|
| MediaPlayerListener::~MediaPlayerListener() {}
|
|
|
| void MediaPlayerListener::CreateMediaPlayerListener(
|
| @@ -39,7 +133,6 @@ void MediaPlayerListener::CreateMediaPlayerListener(
|
| }
|
| }
|
|
|
| -
|
| void MediaPlayerListener::ReleaseMediaPlayerListenerResources() {
|
| JNIEnv* env = AttachCurrentThread();
|
| CHECK(env);
|
| @@ -52,45 +145,37 @@ void MediaPlayerListener::ReleaseMediaPlayerListenerResources() {
|
|
|
| void MediaPlayerListener::OnMediaError(
|
| JNIEnv* /* env */, jobject /* obj */, jint error_type) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnMediaError, media_player_, error_type));
|
| + proxy_->OnMediaError(error_type);
|
| }
|
|
|
| void MediaPlayerListener::OnVideoSizeChanged(
|
| JNIEnv* /* env */, jobject /* obj */, jint width, jint height) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnVideoSizeChanged, media_player_,
|
| - width, height));
|
| + proxy_->OnVideoSizeChanged(width, height);
|
| }
|
|
|
| void MediaPlayerListener::OnBufferingUpdate(
|
| JNIEnv* /* env */, jobject /* obj */, jint percent) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnBufferingUpdate, media_player_, percent));
|
| + proxy_->OnBufferingUpdate(percent);
|
| }
|
|
|
| void MediaPlayerListener::OnPlaybackComplete(
|
| JNIEnv* /* env */, jobject /* obj */) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnPlaybackComplete, media_player_));
|
| + proxy_->OnPlaybackComplete();
|
| }
|
|
|
| void MediaPlayerListener::OnSeekComplete(
|
| JNIEnv* /* env */, jobject /* obj */) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnSeekComplete, media_player_));
|
| + proxy_->OnSeekComplete();
|
| }
|
|
|
| void MediaPlayerListener::OnMediaPrepared(
|
| JNIEnv* /* env */, jobject /* obj */) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnMediaPrepared, media_player_));
|
| + proxy_->OnMediaPrepared();
|
| }
|
|
|
| void MediaPlayerListener::OnMediaInterrupted(
|
| JNIEnv* /* env */, jobject /* obj */) {
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &MediaPlayerAndroid::OnMediaInterrupted, media_player_));
|
| + proxy_->OnMediaInterrupted();
|
| }
|
|
|
| bool MediaPlayerListener::RegisterMediaPlayerListener(JNIEnv* env) {
|
|
|