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

Side by Side Diff: content/renderer/media/webmediaplayer_impl.cc

Issue 115993004: Remove WebMediaPlayerImpl::GetClient() because it's useless. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years 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
« no previous file with comments | « content/renderer/media/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webmediaplayer_impl.h" 5 #include "content/renderer/media/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 197
198 // Use the null sink if no sink was provided. 198 // Use the null sink if no sink was provided.
199 audio_source_provider_ = new WebAudioSourceProviderImpl( 199 audio_source_provider_ = new WebAudioSourceProviderImpl(
200 params.audio_renderer_sink().get() 200 params.audio_renderer_sink().get()
201 ? params.audio_renderer_sink() 201 ? params.audio_renderer_sink()
202 : new media::NullAudioSink(media_loop_)); 202 : new media::NullAudioSink(media_loop_));
203 } 203 }
204 204
205 WebMediaPlayerImpl::~WebMediaPlayerImpl() { 205 WebMediaPlayerImpl::~WebMediaPlayerImpl() {
206 SetVideoFrameProviderClient(NULL); 206 SetVideoFrameProviderClient(NULL);
207 GetClient()->setWebLayer(NULL); 207 client_->setWebLayer(NULL);
208 208
209 DCHECK(main_loop_->BelongsToCurrentThread()); 209 DCHECK(main_loop_->BelongsToCurrentThread());
210 media_log_->AddEvent( 210 media_log_->AddEvent(
211 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_DESTROYED)); 211 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_DESTROYED));
212 212
213 if (delegate_.get()) 213 if (delegate_.get())
214 delegate_->PlayerGone(this); 214 delegate_->PlayerGone(this);
215 215
216 Destroy(); 216 Destroy();
217 } 217 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 267
268 GURL gurl(url); 268 GURL gurl(url);
269 UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme); 269 UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme);
270 270
271 // Set subresource URL for crash reporting. 271 // Set subresource URL for crash reporting.
272 base::debug::SetCrashKeyValue("subresource_url", gurl.spec()); 272 base::debug::SetCrashKeyValue("subresource_url", gurl.spec());
273 273
274 load_type_ = load_type; 274 load_type_ = load_type;
275 275
276 // Handle any volume/preload changes that occurred before load(). 276 // Handle any volume/preload changes that occurred before load().
277 setVolume(GetClient()->volume()); 277 setVolume(client_->volume());
278 setPreload(GetClient()->preload()); 278 setPreload(client_->preload());
279 279
280 SetNetworkState(WebMediaPlayer::NetworkStateLoading); 280 SetNetworkState(WebMediaPlayer::NetworkStateLoading);
281 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); 281 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
282 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); 282 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
283 283
284 // Media source pipelines can start immediately. 284 // Media source pipelines can start immediately.
285 if (load_type == LoadTypeMediaSource) { 285 if (load_type == LoadTypeMediaSource) {
286 supports_save_ = false; 286 supports_save_ = false;
287 StartPipeline(); 287 StartPipeline();
288 return; 288 return;
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 std::swap(pending_size_change_, size_changed); 867 std::swap(pending_size_change_, size_changed);
868 if (pending_repaint_) { 868 if (pending_repaint_) {
869 TRACE_EVENT_ASYNC_END0( 869 TRACE_EVENT_ASYNC_END0(
870 "media", "WebMediaPlayerImpl:repaintPending", this); 870 "media", "WebMediaPlayerImpl:repaintPending", this);
871 pending_repaint_ = false; 871 pending_repaint_ = false;
872 } 872 }
873 } 873 }
874 874
875 if (size_changed) { 875 if (size_changed) {
876 TRACE_EVENT0("media", "WebMediaPlayerImpl:clientSizeChanged"); 876 TRACE_EVENT0("media", "WebMediaPlayerImpl:clientSizeChanged");
877 GetClient()->sizeChanged(); 877 client_->sizeChanged();
878 } 878 }
879 879
880 TRACE_EVENT0("media", "WebMediaPlayerImpl:clientRepaint"); 880 TRACE_EVENT0("media", "WebMediaPlayerImpl:clientRepaint");
881 GetClient()->repaint(); 881 client_->repaint();
882 } 882 }
883 883
884 void WebMediaPlayerImpl::OnPipelineSeek(PipelineStatus status) { 884 void WebMediaPlayerImpl::OnPipelineSeek(PipelineStatus status) {
885 DCHECK(main_loop_->BelongsToCurrentThread()); 885 DCHECK(main_loop_->BelongsToCurrentThread());
886 starting_ = false; 886 starting_ = false;
887 seeking_ = false; 887 seeking_ = false;
888 if (pending_seek_) { 888 if (pending_seek_) {
889 pending_seek_ = false; 889 pending_seek_ = false;
890 seek(pending_seek_seconds_); 890 seek(pending_seek_seconds_);
891 return; 891 return;
892 } 892 }
893 893
894 if (status != media::PIPELINE_OK) { 894 if (status != media::PIPELINE_OK) {
895 OnPipelineError(status); 895 OnPipelineError(status);
896 return; 896 return;
897 } 897 }
898 898
899 // Update our paused time. 899 // Update our paused time.
900 if (paused_) 900 if (paused_)
901 paused_time_ = pipeline_->GetMediaTime(); 901 paused_time_ = pipeline_->GetMediaTime();
902 902
903 GetClient()->timeChanged(); 903 client_->timeChanged();
904 } 904 }
905 905
906 void WebMediaPlayerImpl::OnPipelineEnded() { 906 void WebMediaPlayerImpl::OnPipelineEnded() {
907 DCHECK(main_loop_->BelongsToCurrentThread()); 907 DCHECK(main_loop_->BelongsToCurrentThread());
908 GetClient()->timeChanged(); 908 client_->timeChanged();
909 } 909 }
910 910
911 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { 911 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) {
912 DCHECK(main_loop_->BelongsToCurrentThread()); 912 DCHECK(main_loop_->BelongsToCurrentThread());
913 DCHECK_NE(error, media::PIPELINE_OK); 913 DCHECK_NE(error, media::PIPELINE_OK);
914 914
915 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { 915 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) {
916 // Any error that occurs before reaching ReadyStateHaveMetadata should 916 // Any error that occurs before reaching ReadyStateHaveMetadata should
917 // be considered a format error. 917 // be considered a format error.
918 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); 918 SetNetworkState(WebMediaPlayer::NetworkStateFormatError);
(...skipping 11 matching lines...) Expand all
930 } 930 }
931 931
932 void WebMediaPlayerImpl::OnPipelineBufferingState( 932 void WebMediaPlayerImpl::OnPipelineBufferingState(
933 media::Pipeline::BufferingState buffering_state) { 933 media::Pipeline::BufferingState buffering_state) {
934 DVLOG(1) << "OnPipelineBufferingState(" << buffering_state << ")"; 934 DVLOG(1) << "OnPipelineBufferingState(" << buffering_state << ")";
935 935
936 switch (buffering_state) { 936 switch (buffering_state) {
937 case media::Pipeline::kHaveMetadata: 937 case media::Pipeline::kHaveMetadata:
938 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata); 938 SetReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
939 939
940 if (hasVideo() && GetClient()->needsWebLayerForVideo()) { 940 if (hasVideo() && client_->needsWebLayerForVideo()) {
941 DCHECK(!video_weblayer_); 941 DCHECK(!video_weblayer_);
942 video_weblayer_.reset( 942 video_weblayer_.reset(
943 new webkit::WebLayerImpl(cc::VideoLayer::Create(this))); 943 new webkit::WebLayerImpl(cc::VideoLayer::Create(this)));
944 GetClient()->setWebLayer(video_weblayer_.get()); 944 client_->setWebLayer(video_weblayer_.get());
945 } 945 }
946 break; 946 break;
947 case media::Pipeline::kPrerollCompleted: 947 case media::Pipeline::kPrerollCompleted:
948 // Only transition to ReadyStateHaveEnoughData if we don't have 948 // Only transition to ReadyStateHaveEnoughData if we don't have
949 // any pending seeks because the transition can cause Blink to 949 // any pending seeks because the transition can cause Blink to
950 // report that the most recent seek has completed. 950 // report that the most recent seek has completed.
951 if (!pending_seek_) 951 if (!pending_seek_)
952 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); 952 SetReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
953 break; 953 break;
954 } 954 }
955 955
956 // Repaint to trigger UI update. 956 // Repaint to trigger UI update.
957 Repaint(); 957 Repaint();
958 } 958 }
959 959
960 void WebMediaPlayerImpl::OnDemuxerOpened() { 960 void WebMediaPlayerImpl::OnDemuxerOpened() {
961 DCHECK(main_loop_->BelongsToCurrentThread()); 961 DCHECK(main_loop_->BelongsToCurrentThread());
962 GetClient()->mediaSourceOpened(new WebMediaSourceImpl( 962 client_->mediaSourceOpened(new WebMediaSourceImpl(
963 chunk_demuxer_, base::Bind(&LogMediaSourceError, media_log_))); 963 chunk_demuxer_, base::Bind(&LogMediaSourceError, media_log_)));
964 } 964 }
965 965
966 void WebMediaPlayerImpl::OnKeyAdded(const std::string& session_id) { 966 void WebMediaPlayerImpl::OnKeyAdded(const std::string& session_id) {
967 DCHECK(main_loop_->BelongsToCurrentThread()); 967 DCHECK(main_loop_->BelongsToCurrentThread());
968 EmeUMAHistogramCounts(current_key_system_, "KeyAdded", 1); 968 EmeUMAHistogramCounts(current_key_system_, "KeyAdded", 1);
969 GetClient()->keyAdded(current_key_system_, 969 client_->keyAdded(current_key_system_, WebString::fromUTF8(session_id));
970 WebString::fromUTF8(session_id));
971 } 970 }
972 971
973 void WebMediaPlayerImpl::OnNeedKey(const std::string& type, 972 void WebMediaPlayerImpl::OnNeedKey(const std::string& type,
974 const std::vector<uint8>& init_data) { 973 const std::vector<uint8>& init_data) {
975 DCHECK(main_loop_->BelongsToCurrentThread()); 974 DCHECK(main_loop_->BelongsToCurrentThread());
976 975
977 // Do not fire NeedKey event if encrypted media is not enabled. 976 // Do not fire NeedKey event if encrypted media is not enabled.
978 if (!decryptor_) 977 if (!decryptor_)
979 return; 978 return;
980 979
981 UMA_HISTOGRAM_COUNTS(kMediaEme + std::string("NeedKey"), 1); 980 UMA_HISTOGRAM_COUNTS(kMediaEme + std::string("NeedKey"), 1);
982 981
983 DCHECK(init_data_type_.empty() || type.empty() || type == init_data_type_); 982 DCHECK(init_data_type_.empty() || type.empty() || type == init_data_type_);
984 if (init_data_type_.empty()) 983 if (init_data_type_.empty())
985 init_data_type_ = type; 984 init_data_type_ = type;
986 985
987 const uint8* init_data_ptr = init_data.empty() ? NULL : &init_data[0]; 986 const uint8* init_data_ptr = init_data.empty() ? NULL : &init_data[0];
988 GetClient()->keyNeeded(WebString(), 987 client_->keyNeeded(WebString(), WebString(), init_data_ptr, init_data.size());
989 WebString(),
990 init_data_ptr,
991 init_data.size());
992 } 988 }
993 989
994 void WebMediaPlayerImpl::OnAddTextTrack( 990 void WebMediaPlayerImpl::OnAddTextTrack(
995 const media::TextTrackConfig& config, 991 const media::TextTrackConfig& config,
996 const media::AddTextTrackDoneCB& done_cb) { 992 const media::AddTextTrackDoneCB& done_cb) {
997 DCHECK(main_loop_->BelongsToCurrentThread()); 993 DCHECK(main_loop_->BelongsToCurrentThread());
998 994
999 const WebInbandTextTrackImpl::Kind web_kind = 995 const WebInbandTextTrackImpl::Kind web_kind =
1000 static_cast<WebInbandTextTrackImpl::Kind>(config.kind()); 996 static_cast<WebInbandTextTrackImpl::Kind>(config.kind());
1001 const blink::WebString web_label = 997 const blink::WebString web_label =
1002 blink::WebString::fromUTF8(config.label()); 998 blink::WebString::fromUTF8(config.label());
1003 const blink::WebString web_language = 999 const blink::WebString web_language =
1004 blink::WebString::fromUTF8(config.language()); 1000 blink::WebString::fromUTF8(config.language());
1005 const blink::WebString web_id = 1001 const blink::WebString web_id =
1006 blink::WebString::fromUTF8(config.id()); 1002 blink::WebString::fromUTF8(config.id());
1007 1003
1008 scoped_ptr<WebInbandTextTrackImpl> web_inband_text_track( 1004 scoped_ptr<WebInbandTextTrackImpl> web_inband_text_track(
1009 new WebInbandTextTrackImpl(web_kind, web_label, web_language, web_id, 1005 new WebInbandTextTrackImpl(web_kind, web_label, web_language, web_id,
1010 text_track_index_++)); 1006 text_track_index_++));
1011 1007
1012 scoped_ptr<media::TextTrack> text_track( 1008 scoped_ptr<media::TextTrack> text_track(
1013 new TextTrackImpl(main_loop_, GetClient(), web_inband_text_track.Pass())); 1009 new TextTrackImpl(main_loop_, client_, web_inband_text_track.Pass()));
1014 1010
1015 done_cb.Run(text_track.Pass()); 1011 done_cb.Run(text_track.Pass());
1016 } 1012 }
1017 1013
1018 void WebMediaPlayerImpl::OnKeyError(const std::string& session_id, 1014 void WebMediaPlayerImpl::OnKeyError(const std::string& session_id,
1019 media::MediaKeys::KeyError error_code, 1015 media::MediaKeys::KeyError error_code,
1020 int system_code) { 1016 int system_code) {
1021 DCHECK(main_loop_->BelongsToCurrentThread()); 1017 DCHECK(main_loop_->BelongsToCurrentThread());
1022 1018
1023 EmeUMAHistogramEnumeration(current_key_system_, "KeyError", 1019 EmeUMAHistogramEnumeration(current_key_system_, "KeyError",
1024 error_code, media::MediaKeys::kMaxKeyError); 1020 error_code, media::MediaKeys::kMaxKeyError);
1025 1021
1026 GetClient()->keyError( 1022 client_->keyError(
1027 current_key_system_, 1023 current_key_system_,
1028 WebString::fromUTF8(session_id), 1024 WebString::fromUTF8(session_id),
1029 static_cast<blink::WebMediaPlayerClient::MediaKeyErrorCode>(error_code), 1025 static_cast<blink::WebMediaPlayerClient::MediaKeyErrorCode>(error_code),
1030 system_code); 1026 system_code);
1031 } 1027 }
1032 1028
1033 void WebMediaPlayerImpl::OnKeyMessage(const std::string& session_id, 1029 void WebMediaPlayerImpl::OnKeyMessage(const std::string& session_id,
1034 const std::vector<uint8>& message, 1030 const std::vector<uint8>& message,
1035 const std::string& default_url) { 1031 const std::string& default_url) {
1036 DCHECK(main_loop_->BelongsToCurrentThread()); 1032 DCHECK(main_loop_->BelongsToCurrentThread());
1037 1033
1038 const GURL default_url_gurl(default_url); 1034 const GURL default_url_gurl(default_url);
1039 DLOG_IF(WARNING, !default_url.empty() && !default_url_gurl.is_valid()) 1035 DLOG_IF(WARNING, !default_url.empty() && !default_url_gurl.is_valid())
1040 << "Invalid URL in default_url: " << default_url; 1036 << "Invalid URL in default_url: " << default_url;
1041 1037
1042 GetClient()->keyMessage(current_key_system_, 1038 client_->keyMessage(current_key_system_,
1043 WebString::fromUTF8(session_id), 1039 WebString::fromUTF8(session_id),
1044 message.empty() ? NULL : &message[0], 1040 message.empty() ? NULL : &message[0],
1045 message.size(), 1041 message.size(),
1046 default_url_gurl); 1042 default_url_gurl);
1047 } 1043 }
1048 1044
1049 void WebMediaPlayerImpl::SetOpaque(bool opaque) { 1045 void WebMediaPlayerImpl::SetOpaque(bool opaque) {
1050 DCHECK(main_loop_->BelongsToCurrentThread()); 1046 DCHECK(main_loop_->BelongsToCurrentThread());
1051 1047
1052 GetClient()->setOpaque(opaque); 1048 client_->setOpaque(opaque);
1053 } 1049 }
1054 1050
1055 void WebMediaPlayerImpl::DataSourceInitialized(const GURL& gurl, bool success) { 1051 void WebMediaPlayerImpl::DataSourceInitialized(const GURL& gurl, bool success) {
1056 DCHECK(main_loop_->BelongsToCurrentThread()); 1052 DCHECK(main_loop_->BelongsToCurrentThread());
1057 1053
1058 if (!success) { 1054 if (!success) {
1059 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); 1055 SetNetworkState(WebMediaPlayer::NetworkStateFormatError);
1060 Repaint(); 1056 Repaint();
1061 return; 1057 return;
1062 } 1058 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineSeek), 1165 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineSeek),
1170 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingState), 1166 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingState),
1171 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChange)); 1167 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChange));
1172 } 1168 }
1173 1169
1174 void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) { 1170 void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) {
1175 DCHECK(main_loop_->BelongsToCurrentThread()); 1171 DCHECK(main_loop_->BelongsToCurrentThread());
1176 DVLOG(1) << "SetNetworkState: " << state; 1172 DVLOG(1) << "SetNetworkState: " << state;
1177 network_state_ = state; 1173 network_state_ = state;
1178 // Always notify to ensure client has the latest value. 1174 // Always notify to ensure client has the latest value.
1179 GetClient()->networkStateChanged(); 1175 client_->networkStateChanged();
1180 } 1176 }
1181 1177
1182 void WebMediaPlayerImpl::SetReadyState(WebMediaPlayer::ReadyState state) { 1178 void WebMediaPlayerImpl::SetReadyState(WebMediaPlayer::ReadyState state) {
1183 DCHECK(main_loop_->BelongsToCurrentThread()); 1179 DCHECK(main_loop_->BelongsToCurrentThread());
1184 DVLOG(1) << "SetReadyState: " << state; 1180 DVLOG(1) << "SetReadyState: " << state;
1185 1181
1186 if (state == WebMediaPlayer::ReadyStateHaveEnoughData && 1182 if (state == WebMediaPlayer::ReadyStateHaveEnoughData &&
1187 is_local_source_ && 1183 is_local_source_ &&
1188 network_state_ == WebMediaPlayer::NetworkStateLoading) 1184 network_state_ == WebMediaPlayer::NetworkStateLoading)
1189 SetNetworkState(WebMediaPlayer::NetworkStateLoaded); 1185 SetNetworkState(WebMediaPlayer::NetworkStateLoaded);
1190 1186
1191 ready_state_ = state; 1187 ready_state_ = state;
1192 // Always notify to ensure client has the latest value. 1188 // Always notify to ensure client has the latest value.
1193 GetClient()->readyStateChanged(); 1189 client_->readyStateChanged();
1194 } 1190 }
1195 1191
1196 void WebMediaPlayerImpl::Destroy() { 1192 void WebMediaPlayerImpl::Destroy() {
1197 DCHECK(main_loop_->BelongsToCurrentThread()); 1193 DCHECK(main_loop_->BelongsToCurrentThread());
1198 1194
1199 // Abort any pending IO so stopping the pipeline doesn't get blocked. 1195 // Abort any pending IO so stopping the pipeline doesn't get blocked.
1200 if (data_source_) 1196 if (data_source_)
1201 data_source_->Abort(); 1197 data_source_->Abort();
1202 if (chunk_demuxer_) { 1198 if (chunk_demuxer_) {
1203 chunk_demuxer_->Shutdown(); 1199 chunk_demuxer_->Shutdown();
(...skipping 18 matching lines...) Expand all
1222 -kPlayerExtraMemory); 1218 -kPlayerExtraMemory);
1223 incremented_externally_allocated_memory_ = false; 1219 incremented_externally_allocated_memory_ = false;
1224 } 1220 }
1225 1221
1226 // Release any final references now that everything has stopped. 1222 // Release any final references now that everything has stopped.
1227 pipeline_.reset(); 1223 pipeline_.reset();
1228 demuxer_.reset(); 1224 demuxer_.reset();
1229 data_source_.reset(); 1225 data_source_.reset();
1230 } 1226 }
1231 1227
1232 blink::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() {
1233 DCHECK(main_loop_->BelongsToCurrentThread());
Ami GONE FROM CHROMIUM 2013/12/19 21:00:50 This is the only bit I (slightly) regret losing wi
scherkus (not reviewing) 2013/12/19 21:14:10 that assumes future coders realize they should be
1234 DCHECK(client_);
1235 return client_;
1236 }
1237
1238 blink::WebAudioSourceProvider* WebMediaPlayerImpl::audioSourceProvider() { 1228 blink::WebAudioSourceProvider* WebMediaPlayerImpl::audioSourceProvider() {
1239 return audio_source_provider_.get(); 1229 return audio_source_provider_.get();
1240 } 1230 }
1241 1231
1242 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { 1232 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() {
1243 DCHECK(main_loop_->BelongsToCurrentThread()); 1233 DCHECK(main_loop_->BelongsToCurrentThread());
1244 incremented_externally_allocated_memory_ = true; 1234 incremented_externally_allocated_memory_ = true;
1245 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory( 1235 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
1246 kPlayerExtraMemory); 1236 kPlayerExtraMemory);
1247 } 1237 }
1248 1238
1249 double WebMediaPlayerImpl::GetPipelineDuration() const { 1239 double WebMediaPlayerImpl::GetPipelineDuration() const {
1250 base::TimeDelta duration = pipeline_->GetMediaDuration(); 1240 base::TimeDelta duration = pipeline_->GetMediaDuration();
1251 1241
1252 // Return positive infinity if the resource is unbounded. 1242 // Return positive infinity if the resource is unbounded.
1253 // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom- media-duration 1243 // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#dom- media-duration
1254 if (duration == media::kInfiniteDuration()) 1244 if (duration == media::kInfiniteDuration())
1255 return std::numeric_limits<double>::infinity(); 1245 return std::numeric_limits<double>::infinity();
1256 1246
1257 return duration.InSecondsF(); 1247 return duration.InSecondsF();
1258 } 1248 }
1259 1249
1260 void WebMediaPlayerImpl::OnDurationChange() { 1250 void WebMediaPlayerImpl::OnDurationChange() {
1261 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) 1251 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing)
1262 return; 1252 return;
1263 1253
1264 GetClient()->durationChanged(); 1254 client_->durationChanged();
1265 } 1255 }
1266 1256
1267 void WebMediaPlayerImpl::FrameReady( 1257 void WebMediaPlayerImpl::FrameReady(
1268 const scoped_refptr<media::VideoFrame>& frame) { 1258 const scoped_refptr<media::VideoFrame>& frame) {
1269 base::AutoLock auto_lock(lock_); 1259 base::AutoLock auto_lock(lock_);
1270 1260
1271 if (current_frame_ && 1261 if (current_frame_ &&
1272 current_frame_->natural_size() != frame->natural_size() && 1262 current_frame_->natural_size() != frame->natural_size() &&
1273 !pending_size_change_) { 1263 !pending_size_change_) {
1274 pending_size_change_ = true; 1264 pending_size_change_ = true;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 // The |current_frame_| wasn't painted, it is being replaced, and we haven't 1299 // The |current_frame_| wasn't painted, it is being replaced, and we haven't
1310 // even gotten the chance to request a repaint for it yet. Mark it as dropped. 1300 // even gotten the chance to request a repaint for it yet. Mark it as dropped.
1311 TRACE_EVENT0("media", "WebMediaPlayerImpl:frameDropped"); 1301 TRACE_EVENT0("media", "WebMediaPlayerImpl:frameDropped");
1312 DVLOG(1) << "Frame dropped before being painted: " 1302 DVLOG(1) << "Frame dropped before being painted: "
1313 << current_frame_->GetTimestamp().InSecondsF(); 1303 << current_frame_->GetTimestamp().InSecondsF();
1314 if (frames_dropped_before_paint_ < kuint32max) 1304 if (frames_dropped_before_paint_ < kuint32max)
1315 frames_dropped_before_paint_++; 1305 frames_dropped_before_paint_++;
1316 } 1306 }
1317 1307
1318 } // namespace content 1308 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698