summaryrefslogtreecommitdiffstats
path: root/content/browser/android/browser_media_player_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/android/browser_media_player_manager.h')
-rw-r--r--content/browser/android/browser_media_player_manager.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/content/browser/android/browser_media_player_manager.h b/content/browser/android/browser_media_player_manager.h
index 6e433da..192e24b 100644
--- a/content/browser/android/browser_media_player_manager.h
+++ b/content/browser/android/browser_media_player_manager.h
@@ -11,12 +11,14 @@
#include "base/basictypes.h"
#include "base/callback.h"
+#include "base/id_map.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "base/time/time.h"
#include "content/browser/android/content_video_view.h"
#include "content/common/media/media_player_messages_enums_android.h"
#include "content/public/browser/render_view_host_observer.h"
+#include "media/base/android/demuxer_android.h"
#include "media/base/android/demuxer_stream_player_params.h"
#include "media/base/android/media_player_android.h"
#include "media/base/android/media_player_manager.h"
@@ -38,7 +40,8 @@ class WebContents;
// render process.
class CONTENT_EXPORT BrowserMediaPlayerManager
: public RenderViewHostObserver,
- public media::MediaPlayerManager {
+ public media::MediaPlayerManager,
+ public media::DemuxerAndroid {
public:
// Permits embedders to provide an extended version of the class.
typedef BrowserMediaPlayerManager* (*Factory)(RenderViewHost*);
@@ -76,8 +79,6 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
virtual void OnError(int player_id, int error) OVERRIDE;
virtual void OnVideoSizeChanged(
int player_id, int width, int height) OVERRIDE;
- virtual void OnReadFromDemuxer(int player_id,
- media::DemuxerStream::Type type) OVERRIDE;
virtual void RequestMediaResources(int player_id) OVERRIDE;
virtual void ReleaseMediaResources(int player_id) OVERRIDE;
virtual media::MediaResourceGetter* GetMediaResourceGetter() OVERRIDE;
@@ -85,9 +86,6 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
virtual media::MediaPlayerAndroid* GetPlayer(int player_id) OVERRIDE;
virtual media::MediaDrmBridge* GetDrmBridge(int media_keys_id) OVERRIDE;
virtual void DestroyAllMediaPlayers() OVERRIDE;
- virtual void OnMediaSeekRequest(int player_id, base::TimeDelta time_to_seek,
- unsigned seek_request_id) OVERRIDE;
- virtual void OnMediaConfigRequest(int player_id) OVERRIDE;
virtual void OnProtectedSurfaceRequested(int player_id) OVERRIDE;
virtual void OnKeyAdded(int media_keys_id,
const std::string& session_id) OVERRIDE;
@@ -100,6 +98,17 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
const std::vector<uint8>& message,
const std::string& destination_url) OVERRIDE;
+ // media::DemuxerAndroid implementation.
+ virtual void AddDemuxerClient(int demuxer_client_id,
+ media::DemuxerAndroidClient* client) OVERRIDE;
+ virtual void RemoveDemuxerClient(int demuxer_client_id) OVERRIDE;
+ virtual void RequestDemuxerConfigs(int demuxer_client_id) OVERRIDE;
+ virtual void RequestDemuxerData(int demuxer_client_id,
+ media::DemuxerStream::Type type) OVERRIDE;
+ virtual void RequestDemuxerSeek(int demuxer_client_id,
+ base::TimeDelta time_to_seek,
+ unsigned seek_request_id) OVERRIDE;
+
#if defined(GOOGLE_TV)
void AttachExternalVideoSurface(int player_id, jobject surface);
void DetachExternalVideoSurface(int player_id);
@@ -171,7 +180,8 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
MediaPlayerHostMsg_Initialize_Type type,
const GURL& first_party_for_cookies,
bool hide_url_log,
- media::MediaPlayerManager* manager);
+ media::MediaPlayerManager* manager,
+ media::DemuxerAndroid* demuxer);
// An array of managed players.
ScopedVector<media::MediaPlayerAndroid> players_;
@@ -179,6 +189,8 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
// An array of managed media DRM bridges.
ScopedVector<media::MediaDrmBridge> drm_bridges_;
+ IDMap<media::DemuxerAndroidClient> demuxer_clients_;
+
// The fullscreen video view object or NULL if video is not played in
// fullscreen.
scoped_ptr<ContentVideoView> video_view_;