summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authoravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-15 22:03:52 +0000
committeravayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-15 22:03:52 +0000
commitc131cf282cbb79ea8bd9585ec57192a427049c9f (patch)
tree8734d10927ed4302b79889b8c95c8310957c8354 /media
parent754b9d76e8a02040c423d7c15737073d48458eb0 (diff)
downloadchromium_src-c131cf282cbb79ea8bd9585ec57192a427049c9f.zip
chromium_src-c131cf282cbb79ea8bd9585ec57192a427049c9f.tar.gz
chromium_src-c131cf282cbb79ea8bd9585ec57192a427049c9f.tar.bz2
Replaced 8 callbacks provided to MediaPlayerBridge with an interface (reusing MediaPlayerManager).
BUG=None TEST=No new tests, no functional changes. Review URL: https://chromiumcodereview.appspot.com/14581015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200365 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/base/android/media_player_android.cc37
-rw-r--r--media/base/android/media_player_android.h67
-rw-r--r--media/base/android/media_player_bridge.cc40
-rw-r--r--media/base/android/media_player_bridge.h10
-rw-r--r--media/base/android/media_player_manager.h42
5 files changed, 60 insertions, 136 deletions
diff --git a/media/base/android/media_player_android.cc b/media/base/android/media_player_android.cc
index fef9ff9..e45c16f 100644
--- a/media/base/android/media_player_android.cc
+++ b/media/base/android/media_player_android.cc
@@ -11,60 +11,45 @@ namespace media {
MediaPlayerAndroid::MediaPlayerAndroid(
int player_id,
- MediaPlayerManager* manager,
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_metadata_changed_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb)
+ MediaPlayerManager* manager)
: player_id_(player_id),
- manager_(manager),
- media_error_cb_(media_error_cb),
- video_size_changed_cb_(video_size_changed_cb),
- buffering_update_cb_(buffering_update_cb),
- media_metadata_changed_cb_(media_metadata_changed_cb),
- playback_complete_cb_(playback_complete_cb),
- seek_complete_cb_(seek_complete_cb),
- media_interrupted_cb_(media_interrupted_cb),
- time_update_cb_(time_update_cb) {
+ manager_(manager) {
}
MediaPlayerAndroid::~MediaPlayerAndroid() {}
void MediaPlayerAndroid::OnMediaError(int error_type) {
- media_error_cb_.Run(player_id_, error_type);
+ manager_->OnError(player_id_, error_type);
}
void MediaPlayerAndroid::OnVideoSizeChanged(int width, int height) {
- video_size_changed_cb_.Run(player_id_, width, height);
+ manager_->OnVideoSizeChanged(player_id_, width, height);
}
void MediaPlayerAndroid::OnBufferingUpdate(int percent) {
- buffering_update_cb_.Run(player_id_, percent);
+ manager_->OnBufferingUpdate(player_id_, percent);
}
void MediaPlayerAndroid::OnPlaybackComplete() {
- playback_complete_cb_.Run(player_id_);
+ manager_->OnPlaybackComplete(player_id_);
}
void MediaPlayerAndroid::OnMediaInterrupted() {
- media_interrupted_cb_.Run(player_id_);
+ manager_->OnMediaInterrupted(player_id_);
}
void MediaPlayerAndroid::OnSeekComplete() {
- seek_complete_cb_.Run(player_id_, GetCurrentTime());
+ manager_->OnSeekComplete(player_id_, GetCurrentTime());
}
void MediaPlayerAndroid::OnTimeUpdated() {
- time_update_cb_.Run(player_id_, GetCurrentTime());
+ manager_->OnTimeUpdate(player_id_, GetCurrentTime());
}
void MediaPlayerAndroid::OnMediaMetadataChanged(
base::TimeDelta duration, int width, int height, bool success) {
- media_metadata_changed_cb_.Run(player_id_, duration, width, height, success);
+ manager_->OnMediaMetadataChanged(
+ player_id_, duration, width, height, success);
}
void MediaPlayerAndroid::RequestMediaResourcesFromManager() {
diff --git a/media/base/android/media_player_android.h b/media/base/android/media_player_android.h
index 8dfe90c..be21581 100644
--- a/media/base/android/media_player_android.h
+++ b/media/base/android/media_player_android.h
@@ -36,40 +36,6 @@ class MEDIA_EXPORT MediaPlayerAndroid {
MEDIA_ERROR_INVALID_CODE,
};
- // Callback when error happens. Args: player ID, error type.
- typedef base::Callback<void(int, int)> MediaErrorCB;
-
- // Callback when video size has changed. Args: player ID, width, height.
- typedef base::Callback<void(int, int, int)> VideoSizeChangedCB;
-
- // Callback when buffering has changed. Args: player ID, percentage
- // of the media.
- typedef base::Callback<void(int, int)> BufferingUpdateCB;
-
- // Callback when media metadata changed. Args: player ID, duration of the
- // media, width, height, whether the metadata is successfully extracted.
- typedef base::Callback<void(int, base::TimeDelta, int, int, bool)>
- MediaMetadataChangedCB;
-
- // Callbacks when seek completed. Args: player ID, current time.
- typedef base::Callback<void(int, base::TimeDelta)> SeekCompleteCB;
-
- // Callbacks when seek completed. Args: player ID.
- typedef base::Callback<void(int)> MediaInterruptedCB;
-
- // Callbacks when playback completed. Args: player ID.
- typedef base::Callback<void(int)> PlaybackCompleteCB;
-
- // Callback when time update messages need to be sent. Args: player ID,
- // current time.
- typedef base::Callback<void(int, base::TimeDelta)> TimeUpdateCB;
-
-#if defined(GOOGLE_TV)
- // Callback when DemuxerStreamPlayer wants to read data from the demuxer.
- typedef base::Callback<void(int, DemuxerStream::Type, bool)>
- ReadFromDemuxerCB;
-#endif
-
// Construct a MediaPlayerAndroid object with all the needed media player
// callbacks. This object needs to call |manager_|'s RequestMediaResources()
// before decoding the media stream. This allows |manager_| to track
@@ -81,18 +47,7 @@ class MEDIA_EXPORT MediaPlayerAndroid {
bool is_media_source,
const GURL& first_party_for_cookies,
bool hide_url_log,
- MediaPlayerManager* manager,
-#if defined(GOOGLE_TV)
- const ReadFromDemuxerCB read_from_demuxer_cb,
-#endif
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_metadata_changed_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb);
+ MediaPlayerManager* manager);
// Passing an external java surface object to the player.
virtual void SetVideoSurface(jobject surface) = 0;
@@ -138,15 +93,7 @@ class MEDIA_EXPORT MediaPlayerAndroid {
protected:
MediaPlayerAndroid(int player_id,
- MediaPlayerManager* manager,
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_metadata_changed_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb);
+ MediaPlayerManager* manager);
// Called when player status changes.
virtual void OnMediaError(int error_type);
@@ -172,16 +119,6 @@ class MEDIA_EXPORT MediaPlayerAndroid {
// Resource manager for all the media players.
MediaPlayerManager* manager_;
- // Callbacks when media player events are received.
- MediaErrorCB media_error_cb_;
- VideoSizeChangedCB video_size_changed_cb_;
- BufferingUpdateCB buffering_update_cb_;
- MediaMetadataChangedCB media_metadata_changed_cb_;
- PlaybackCompleteCB playback_complete_cb_;
- SeekCompleteCB seek_complete_cb_;
- MediaInterruptedCB media_interrupted_cb_;
- TimeUpdateCB time_update_cb_;
-
DISALLOW_COPY_AND_ASSIGN(MediaPlayerAndroid);
};
diff --git a/media/base/android/media_player_bridge.cc b/media/base/android/media_player_bridge.cc
index 3a45225..b87e4dc 100644
--- a/media/base/android/media_player_bridge.cc
+++ b/media/base/android/media_player_bridge.cc
@@ -37,30 +37,14 @@ MediaPlayerAndroid* MediaPlayerAndroid::Create(
bool is_media_source,
const GURL& first_party_for_cookies,
bool hide_url_log,
- MediaPlayerManager* manager,
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_prepared_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb) {
+ MediaPlayerManager* manager) {
LOG_IF(WARNING, is_media_source) << "MSE is not supported";
return new MediaPlayerBridge(
player_id,
url,
first_party_for_cookies,
hide_url_log,
- manager,
- media_error_cb,
- video_size_changed_cb,
- buffering_update_cb,
- media_prepared_cb,
- playback_complete_cb,
- seek_complete_cb,
- time_update_cb,
- media_interrupted_cb);
+ manager);
}
#endif
@@ -69,25 +53,9 @@ MediaPlayerBridge::MediaPlayerBridge(
const GURL& url,
const GURL& first_party_for_cookies,
bool hide_url_log,
- MediaPlayerManager* manager,
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_metadata_changed_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb)
+ MediaPlayerManager* manager)
: MediaPlayerAndroid(player_id,
- manager,
- media_error_cb,
- video_size_changed_cb,
- buffering_update_cb,
- media_metadata_changed_cb,
- playback_complete_cb,
- seek_complete_cb,
- time_update_cb,
- media_interrupted_cb),
+ manager),
prepared_(false),
pending_play_(false),
url_(url),
diff --git a/media/base/android/media_player_bridge.h b/media/base/android/media_player_bridge.h
index 7e9ba62..84b769d 100644
--- a/media/base/android/media_player_bridge.h
+++ b/media/base/android/media_player_bridge.h
@@ -44,15 +44,7 @@ class MEDIA_EXPORT MediaPlayerBridge : public MediaPlayerAndroid {
const GURL& url,
const GURL& first_party_for_cookies,
bool hide_url_log,
- MediaPlayerManager* manager,
- const MediaErrorCB& media_error_cb,
- const VideoSizeChangedCB& video_size_changed_cb,
- const BufferingUpdateCB& buffering_update_cb,
- const MediaMetadataChangedCB& media_prepared_cb,
- const PlaybackCompleteCB& playback_complete_cb,
- const SeekCompleteCB& seek_complete_cb,
- const TimeUpdateCB& time_update_cb,
- const MediaInterruptedCB& media_interrupted_cb);
+ MediaPlayerManager* manager);
virtual ~MediaPlayerBridge();
// MediaPlayerAndroid implementation.
diff --git a/media/base/android/media_player_manager.h b/media/base/android/media_player_manager.h
index 7d1abce..a0b764d 100644
--- a/media/base/android/media_player_manager.h
+++ b/media/base/android/media_player_manager.h
@@ -5,7 +5,11 @@
#ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
#define MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
+#include "base/time.h"
#include "media/base/media_export.h"
+#if defined(GOOGLE_TV)
+#include "media/base/android/demuxer_stream_player_params.h"
+#endif
namespace media {
@@ -30,6 +34,44 @@ class MEDIA_EXPORT MediaPlayerManager {
// Return a pointer to the MediaResourceGetter object.
virtual MediaResourceGetter* GetMediaResourceGetter() = 0;
+
+ // Called when time update messages need to be sent. Args: player ID,
+ // current time.
+ virtual void OnTimeUpdate(int player_id, base::TimeDelta current_time) = 0;
+
+ // Called when media metadata changed. Args: player ID, duration of the
+ // media, width, height, whether the metadata is successfully extracted.
+ virtual void OnMediaMetadataChanged(
+ int player_id,
+ base::TimeDelta duration,
+ int width,
+ int height,
+ bool success) = 0;
+
+ // Called when playback completed. Args: player ID.
+ virtual void OnPlaybackComplete(int player_id) = 0;
+
+ // Called when media download was interrupted. Args: player ID.
+ virtual void OnMediaInterrupted(int player_id) = 0;
+
+ // Called when buffering has changed. Args: player ID, percentage
+ // of the media.
+ virtual void OnBufferingUpdate(int player_id, int percentage) = 0;
+
+ // Called when seek completed. Args: player ID, current time.
+ virtual void OnSeekComplete(int player_id, base::TimeDelta current_time) = 0;
+
+ // Called when error happens. Args: player ID, error type.
+ virtual void OnError(int player_id, int error) = 0;
+
+ // Called when video size has changed. Args: player ID, width, height.
+ virtual void OnVideoSizeChanged(int player_id, int width, int height) = 0;
+
+#if defined(GOOGLE_TV)
+ // Callback when DemuxerStreamPlayer wants to read data from the demuxer.
+ virtual void OnReadFromDemuxer(
+ int player_id, media::DemuxerStream::Type type, bool seek_done) = 0;
+#endif
};
} // namespace media