diff options
author | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-15 22:03:52 +0000 |
---|---|---|
committer | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-15 22:03:52 +0000 |
commit | c131cf282cbb79ea8bd9585ec57192a427049c9f (patch) | |
tree | 8734d10927ed4302b79889b8c95c8310957c8354 /media | |
parent | 754b9d76e8a02040c423d7c15737073d48458eb0 (diff) | |
download | chromium_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.cc | 37 | ||||
-rw-r--r-- | media/base/android/media_player_android.h | 67 | ||||
-rw-r--r-- | media/base/android/media_player_bridge.cc | 40 | ||||
-rw-r--r-- | media/base/android/media_player_bridge.h | 10 | ||||
-rw-r--r-- | media/base/android/media_player_manager.h | 42 |
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 |