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

Side by Side Diff: webkit/media/webmediaplayer_impl.cc

Issue 10829470: Support for parsing encrypted WebM streams by src. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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
OLDNEW
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 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode), 267 url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
268 base::Bind( 268 base::Bind(
269 &WebMediaPlayerImpl::DataSourceInitialized, 269 &WebMediaPlayerImpl::DataSourceInitialized,
270 AsWeakPtr(), gurl)); 270 AsWeakPtr(), gurl));
271 271
272 is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https"); 272 is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
273 273
274 BuildDefaultCollection(proxy_->data_source(), 274 BuildDefaultCollection(proxy_->data_source(),
275 message_loop_factory_.get(), 275 message_loop_factory_.get(),
276 filter_collection_.get(), 276 filter_collection_.get(),
277 &decryptor_); 277 &decryptor_,
278 base::Bind(&WebMediaPlayerImpl::SendNeedKey,
279 base::Unretained(this)));
278 } 280 }
279 281
280 void WebMediaPlayerImpl::cancelLoad() { 282 void WebMediaPlayerImpl::cancelLoad() {
281 DCHECK_EQ(main_loop_, MessageLoop::current()); 283 DCHECK_EQ(main_loop_, MessageLoop::current());
282 } 284 }
283 285
284 void WebMediaPlayerImpl::play() { 286 void WebMediaPlayerImpl::play() {
285 DCHECK_EQ(main_loop_, MessageLoop::current()); 287 DCHECK_EQ(main_loop_, MessageLoop::current());
286 288
287 paused_ = false; 289 paused_ = false;
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 883
882 GetClient()->sourceOpened(); 884 GetClient()->sourceOpened();
883 } 885 }
884 886
885 void WebMediaPlayerImpl::OnKeyAdded(const std::string& key_system, 887 void WebMediaPlayerImpl::OnKeyAdded(const std::string& key_system,
886 const std::string& session_id) { 888 const std::string& session_id) {
887 DCHECK_EQ(main_loop_, MessageLoop::current()); 889 DCHECK_EQ(main_loop_, MessageLoop::current());
888 890
889 GetClient()->keyAdded(WebString::fromUTF8(key_system), 891 GetClient()->keyAdded(WebString::fromUTF8(key_system),
890 WebString::fromUTF8(session_id)); 892 WebString::fromUTF8(session_id));
893 pipeline_->KeyAdded();
891 } 894 }
892 895
893 void WebMediaPlayerImpl::OnNeedKey(const std::string& key_system, 896 void WebMediaPlayerImpl::OnNeedKey(const std::string& key_system,
894 const std::string& session_id, 897 const std::string& session_id,
895 scoped_array<uint8> init_data, 898 scoped_array<uint8> init_data,
896 int init_data_size) { 899 int init_data_size) {
897 DCHECK_EQ(main_loop_, MessageLoop::current()); 900 DCHECK_EQ(main_loop_, MessageLoop::current());
898 901
899 GetClient()->keyNeeded(WebString::fromUTF8(key_system), 902 GetClient()->keyNeeded(WebString::fromUTF8(key_system),
900 WebString::fromUTF8(session_id), 903 WebString::fromUTF8(session_id),
901 init_data.get(), 904 init_data.get(),
902 init_data_size); 905 init_data_size);
903 } 906 }
904 907
908 bool WebMediaPlayerImpl::SendNeedKey(scoped_array<uint8> init_data,
909 int init_data_size) {
910 proxy_->DemuxerNeedKey(init_data.Pass(), init_data_size);
ddorwin 2012/08/22 23:20:29 Why is this different from the above? Isn't the ch
fgalligan1 2012/08/23 02:39:11 Because right now the the interface is defined in
ddorwin 2012/08/24 00:20:30 Okay, maybe a media/base version of ChunkDemuxerCl
fgalligan1 2012/08/24 20:01:26 Removed SendNeedKey
911 return true;
912 }
913
905 #define COMPILE_ASSERT_MATCHING_ENUM(name) \ 914 #define COMPILE_ASSERT_MATCHING_ENUM(name) \
906 COMPILE_ASSERT(static_cast<int>(WebKit::WebMediaPlayerClient::name) == \ 915 COMPILE_ASSERT(static_cast<int>(WebKit::WebMediaPlayerClient::name) == \
907 static_cast<int>(media::Decryptor::k ## name), \ 916 static_cast<int>(media::Decryptor::k ## name), \
908 mismatching_enums) 917 mismatching_enums)
909 COMPILE_ASSERT_MATCHING_ENUM(UnknownError); 918 COMPILE_ASSERT_MATCHING_ENUM(UnknownError);
910 COMPILE_ASSERT_MATCHING_ENUM(ClientError); 919 COMPILE_ASSERT_MATCHING_ENUM(ClientError);
911 COMPILE_ASSERT_MATCHING_ENUM(ServiceError); 920 COMPILE_ASSERT_MATCHING_ENUM(ServiceError);
912 COMPILE_ASSERT_MATCHING_ENUM(OutputError); 921 COMPILE_ASSERT_MATCHING_ENUM(OutputError);
913 COMPILE_ASSERT_MATCHING_ENUM(HardwareChangeError); 922 COMPILE_ASSERT_MATCHING_ENUM(HardwareChangeError);
914 COMPILE_ASSERT_MATCHING_ENUM(DomainError); 923 COMPILE_ASSERT_MATCHING_ENUM(DomainError);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 return audio_source_provider_; 1059 return audio_source_provider_;
1051 } 1060 }
1052 1061
1053 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() { 1062 void WebMediaPlayerImpl::IncrementExternallyAllocatedMemory() {
1054 DCHECK_EQ(main_loop_, MessageLoop::current()); 1063 DCHECK_EQ(main_loop_, MessageLoop::current());
1055 incremented_externally_allocated_memory_ = true; 1064 incremented_externally_allocated_memory_ = true;
1056 v8::V8::AdjustAmountOfExternalAllocatedMemory(kPlayerExtraMemory); 1065 v8::V8::AdjustAmountOfExternalAllocatedMemory(kPlayerExtraMemory);
1057 } 1066 }
1058 1067
1059 } // namespace webkit_media 1068 } // namespace webkit_media
OLDNEW
« webkit/media/webmediaplayer_impl.h ('K') | « webkit/media/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698