Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: webkit/media/android/media_player_bridge_manager_impl.cc

Issue 14314020: Rename MediaPlayerBridgeManager to MediaPlayerManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: additional rebase conflict Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/media/android/media_player_bridge_manager_impl.h ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "webkit/media/android/media_player_bridge_manager_impl.h"
6
7 #include "media/base/android/media_player_bridge.h"
8
9 namespace webkit_media {
10
11 MediaPlayerBridgeManagerImpl::MediaPlayerBridgeManagerImpl(
12 int threshold)
13 : active_player_threshold_(threshold) {
14 }
15
16 MediaPlayerBridgeManagerImpl::~MediaPlayerBridgeManagerImpl() {}
17
18 void MediaPlayerBridgeManagerImpl::RequestMediaResources(
19 media::MediaPlayerBridge* player) {
20 if (!player)
21 return;
22
23 int num_active_player = 0;
24 std::vector<media::MediaPlayerBridge*>::iterator it;
25 for (it = players_.begin(); it != players_.end(); ++it) {
26 // The player is already active, ignore it.
27 if ((*it) == player)
28 return;
29
30 num_active_player++;
31 }
32
33 if (num_active_player < active_player_threshold_) {
34 players_.push_back(player);
35 return;
36 }
37
38 // Get a list of the players to free.
39 std::vector<media::MediaPlayerBridge*> players_to_release;
40 for (it = players_.begin(); it != players_.end(); ++it) {
41 if ((*it)->prepared() && !(*it)->IsPlaying())
42 players_to_release.push_back(*it);
43 }
44
45 // Calling release() will result in a call to ReleaseMediaResources(), so
46 // the player will be removed from |players_|.
47 for (it = players_to_release.begin(); it != players_to_release.end(); ++it)
48 (*it)->Release();
49
50 players_.push_back(player);
51 }
52
53 void MediaPlayerBridgeManagerImpl::ReleaseMediaResources(
54 media::MediaPlayerBridge* player) {
55 for (std::vector<media::MediaPlayerBridge*>::iterator it = players_.begin();
56 it != players_.end(); ++it) {
57 if ((*it) == player) {
58 players_.erase(it);
59 return;
60 }
61 }
62 }
63
64 } // namespace webkit_media
OLDNEW
« no previous file with comments | « webkit/media/android/media_player_bridge_manager_impl.h ('k') | webkit/media/webkit_media.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698