Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "webkit/media/webmediaplayer_impl.h" | 5 #include "webkit/media/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 89 mismatching_enums) | 89 mismatching_enums) |
| 90 COMPILE_ASSERT_MATCHING_ENUM(Unspecified); | 90 COMPILE_ASSERT_MATCHING_ENUM(Unspecified); |
| 91 COMPILE_ASSERT_MATCHING_ENUM(Anonymous); | 91 COMPILE_ASSERT_MATCHING_ENUM(Anonymous); |
| 92 COMPILE_ASSERT_MATCHING_ENUM(UseCredentials); | 92 COMPILE_ASSERT_MATCHING_ENUM(UseCredentials); |
| 93 #undef COMPILE_ASSERT_MATCHING_ENUM | 93 #undef COMPILE_ASSERT_MATCHING_ENUM |
| 94 | 94 |
| 95 #define BIND_TO_RENDER_LOOP(function) \ | 95 #define BIND_TO_RENDER_LOOP(function) \ |
| 96 media::BindToLoop(main_loop_->message_loop_proxy(), base::Bind( \ | 96 media::BindToLoop(main_loop_->message_loop_proxy(), base::Bind( \ |
| 97 function, AsWeakPtr())) | 97 function, AsWeakPtr())) |
| 98 | 98 |
| 99 #define BIND_TO_RENDER_LOOP_2(function, arg1, arg2) \ | |
|
xhwang
2012/10/23 21:37:03
remove extra spaces?
Ami GONE FROM CHROMIUM
2012/10/23 21:58:07
Done.
| |
| 100 media::BindToLoop(main_loop_->message_loop_proxy(), base::Bind( \ | |
| 101 function, AsWeakPtr(), arg1, arg2)) | |
| 102 | |
| 99 static WebKit::WebTimeRanges ConvertToWebTimeRanges( | 103 static WebKit::WebTimeRanges ConvertToWebTimeRanges( |
| 100 const media::Ranges<base::TimeDelta>& ranges) { | 104 const media::Ranges<base::TimeDelta>& ranges) { |
| 101 WebKit::WebTimeRanges result(ranges.size()); | 105 WebKit::WebTimeRanges result(ranges.size()); |
| 102 for (size_t i = 0; i < ranges.size(); i++) { | 106 for (size_t i = 0; i < ranges.size(); i++) { |
| 103 result[i].start = ranges.start(i).InSecondsF(); | 107 result[i].start = ranges.start(i).InSecondsF(); |
| 104 result[i].end = ranges.end(i).InSecondsF(); | 108 result[i].end = ranges.end(i).InSecondsF(); |
| 105 } | 109 } |
| 106 return result; | 110 return result; |
| 107 } | 111 } |
| 108 | 112 |
| 109 // TODO(acolwell): Investigate whether the key_system & session_id parameters | 113 // TODO(acolwell): Investigate whether the key_system & session_id parameters |
| 110 // are really necessary. | 114 // are really necessary. |
| 111 typedef base::Callback<void(const std::string&, | 115 typedef base::Callback<void(const std::string&, |
| 112 const std::string&, | 116 const std::string&, |
| 113 scoped_array<uint8>, | 117 scoped_array<uint8>, |
| 114 int)> OnNeedKeyCB; | 118 int)> OnNeedKeyCB; |
| 115 | 119 |
| 116 static void OnDemuxerNeedKeyTrampoline( | |
| 117 const scoped_refptr<base::MessageLoopProxy>& message_loop, | |
| 118 const OnNeedKeyCB& need_key_cb, | |
| 119 scoped_array<uint8> init_data, | |
| 120 int init_data_size) { | |
| 121 message_loop->PostTask(FROM_HERE, base::Bind( | |
| 122 need_key_cb, "", "", base::Passed(&init_data), init_data_size)); | |
| 123 } | |
| 124 | |
| 125 WebMediaPlayerImpl::WebMediaPlayerImpl( | 120 WebMediaPlayerImpl::WebMediaPlayerImpl( |
| 126 WebKit::WebFrame* frame, | 121 WebKit::WebFrame* frame, |
| 127 WebKit::WebMediaPlayerClient* client, | 122 WebKit::WebMediaPlayerClient* client, |
| 128 base::WeakPtr<WebMediaPlayerDelegate> delegate, | 123 base::WeakPtr<WebMediaPlayerDelegate> delegate, |
| 129 media::FilterCollection* collection, | 124 media::FilterCollection* collection, |
| 130 WebKit::WebAudioSourceProvider* audio_source_provider, | 125 WebKit::WebAudioSourceProvider* audio_source_provider, |
| 131 media::AudioRendererSink* audio_renderer_sink, | 126 media::AudioRendererSink* audio_renderer_sink, |
| 132 media::MessageLoopFactory* message_loop_factory, | 127 media::MessageLoopFactory* message_loop_factory, |
| 133 MediaStreamClient* media_stream_client, | 128 MediaStreamClient* media_stream_client, |
| 134 media::MediaLog* media_log) | 129 media::MediaLog* media_log) |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 filter_collection_.get())) { | 261 filter_collection_.get())) { |
| 267 supports_save_ = false; | 262 supports_save_ = false; |
| 268 StartPipeline(); | 263 StartPipeline(); |
| 269 return; | 264 return; |
| 270 } | 265 } |
| 271 | 266 |
| 272 // Media source pipelines can start immediately. | 267 // Media source pipelines can start immediately. |
| 273 if (!url.isEmpty() && url == GetClient()->sourceURL()) { | 268 if (!url.isEmpty() && url == GetClient()->sourceURL()) { |
| 274 chunk_demuxer_ = new media::ChunkDemuxer( | 269 chunk_demuxer_ = new media::ChunkDemuxer( |
| 275 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), | 270 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), |
| 276 base::Bind(&OnDemuxerNeedKeyTrampoline, | 271 BIND_TO_RENDER_LOOP_2(&WebMediaPlayerImpl::OnNeedKey, "", "")); |
|
xhwang
2012/10/23 21:37:03
Thanks for fixing this :)
| |
| 277 main_loop_->message_loop_proxy(), | |
| 278 base::Bind(&WebMediaPlayerImpl::OnNeedKey, AsWeakPtr()))); | |
| 279 | 272 |
| 280 BuildMediaSourceCollection(chunk_demuxer_, | 273 BuildMediaSourceCollection(chunk_demuxer_, |
| 281 message_loop_factory_.get(), | 274 message_loop_factory_.get(), |
| 282 filter_collection_.get(), | 275 filter_collection_.get(), |
| 283 &decryptor_); | 276 &decryptor_); |
| 284 supports_save_ = false; | 277 supports_save_ = false; |
| 285 StartPipeline(); | 278 StartPipeline(); |
| 286 return; | 279 return; |
| 287 } | 280 } |
| 288 | 281 |
| (...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1096 return audio_source_provider_; | 1089 return audio_source_provider_; |
| 1097 } | 1090 } |
| 1098 | 1091 |
| 1099 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { | 1092 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { |
| 1100 DCHECK_EQ(main_loop_, MessageLoop::current()); | 1093 DCHECK_EQ(main_loop_, MessageLoop::current()); |
| 1101 incremented_externally_allocated_memory_ = true; | 1094 incremented_externally_allocated_memory_ = true; |
| 1102 v8::V8::AdjustAmountOfExternalAllocatedMemory(kPlayerExtraMemory); | 1095 v8::V8::AdjustAmountOfExternalAllocatedMemory(kPlayerExtraMemory); |
| 1103 } | 1096 } |
| 1104 | 1097 |
| 1105 } // namespace webkit_media | 1098 } // namespace webkit_media |
| OLD | NEW |