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

Side by Side Diff: media/filters/pipeline_integration_test.cc

Issue 11313016: Add "type" in GenerateKeyRequest() and OnNeedKey(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix the DCHECK where init_data_type_ is set but NeedKey from decoder passes empty "type". Created 8 years, 1 month 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 | « media/filters/chunk_demuxer_unittest.cc ('k') | media/mp4/mp4_stream_parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/filters/pipeline_integration_test_base.h" 5 #include "media/filters/pipeline_integration_test_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "media/base/decoder_buffer.h" 9 #include "media/base/decoder_buffer.h"
10 #include "media/base/decryptor_client.h" 10 #include "media/base/decryptor_client.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 size_t quote1 = mimetype_.find("\""); 113 size_t quote1 = mimetype_.find("\"");
114 size_t quote2 = mimetype_.find("\"", quote1 + 1); 114 size_t quote2 = mimetype_.find("\"", quote1 + 1);
115 std::string codecStr = mimetype_.substr(quote1 + 1, quote2 - quote1 - 1); 115 std::string codecStr = mimetype_.substr(quote1 + 1, quote2 - quote1 - 1);
116 std::vector<std::string> codecs; 116 std::vector<std::string> codecs;
117 Tokenize(codecStr, ",", &codecs); 117 Tokenize(codecStr, ",", &codecs);
118 118
119 CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk); 119 CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk);
120 AppendData(initial_append_size_); 120 AppendData(initial_append_size_);
121 } 121 }
122 122
123 void DemuxerNeedKey(scoped_array<uint8> init_data, int init_data_size) { 123 void DemuxerNeedKey(const std::string& type,
124 scoped_array<uint8> init_data, int init_data_size) {
124 DCHECK(init_data.get()); 125 DCHECK(init_data.get());
125 DCHECK_GT(init_data_size, 0); 126 DCHECK_GT(init_data_size, 0);
126 DCHECK(decryptor_client_); 127 DCHECK(decryptor_client_);
127 decryptor_client_->NeedKey("", "", init_data.Pass(), init_data_size); 128 decryptor_client_->NeedKey("", "", type, init_data.Pass(), init_data_size);
128 } 129 }
129 130
130 private: 131 private:
131 std::string url_; 132 std::string url_;
132 scoped_refptr<DecoderBuffer> file_data_; 133 scoped_refptr<DecoderBuffer> file_data_;
133 int current_position_; 134 int current_position_;
134 int initial_append_size_; 135 int initial_append_size_;
135 std::string mimetype_; 136 std::string mimetype_;
136 scoped_refptr<ChunkDemuxer> chunk_demuxer_; 137 scoped_refptr<ChunkDemuxer> chunk_demuxer_;
137 DecryptorClient* decryptor_client_; 138 DecryptorClient* decryptor_client_;
(...skipping 30 matching lines...) Expand all
168 EXPECT_FALSE(session_id.empty()); 169 EXPECT_FALSE(session_id.empty());
169 EXPECT_TRUE(message.get()); 170 EXPECT_TRUE(message.get());
170 EXPECT_GT(message_length, 0); 171 EXPECT_GT(message_length, 0);
171 172
172 current_key_system_ = key_system; 173 current_key_system_ = key_system;
173 current_session_id_ = session_id; 174 current_session_id_ = session_id;
174 } 175 }
175 176
176 virtual void NeedKey(const std::string& key_system, 177 virtual void NeedKey(const std::string& key_system,
177 const std::string& session_id, 178 const std::string& session_id,
179 const std::string& type,
178 scoped_array<uint8> init_data, 180 scoped_array<uint8> init_data,
179 int init_data_length) { 181 int init_data_length) {
180 current_key_system_ = key_system; 182 current_key_system_ = key_system;
181 current_session_id_ = session_id; 183 current_session_id_ = session_id;
182 184
183 // When NeedKey is called from the demuxer, the |key_system| will be empty. 185 // When NeedKey is called from the demuxer, the |key_system| will be empty.
184 // In this case, we need to call GenerateKeyRequest() to initialize a 186 // In this case, we need to call GenerateKeyRequest() to initialize a
185 // session (which will call KeyMessage). 187 // session (which will call KeyMessage).
186 if (current_key_system_.empty()) { 188 if (current_key_system_.empty()) {
187 DCHECK(current_session_id_.empty()); 189 DCHECK(current_session_id_.empty());
188 EXPECT_TRUE(decryptor_.GenerateKeyRequest( 190 EXPECT_TRUE(decryptor_.GenerateKeyRequest(
189 kClearKeySystem, kInitData, arraysize(kInitData))); 191 kClearKeySystem, type, kInitData, arraysize(kInitData)));
190 } 192 }
191 193
192 EXPECT_FALSE(current_key_system_.empty()); 194 EXPECT_FALSE(current_key_system_.empty());
193 EXPECT_FALSE(current_session_id_.empty()); 195 EXPECT_FALSE(current_session_id_.empty());
194 decryptor_.AddKey(current_key_system_, kSecretKey, arraysize(kSecretKey), 196 decryptor_.AddKey(current_key_system_, kSecretKey, arraysize(kSecretKey),
195 init_data.get(), init_data_length, current_session_id_); 197 init_data.get(), init_data_length, current_session_id_);
196 } 198 }
197 199
198 private: 200 private:
199 AesDecryptor decryptor_; 201 AesDecryptor decryptor_;
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 // Verify video decoder & renderer can handle aborted demuxer reads. 441 // Verify video decoder & renderer can handle aborted demuxer reads.
440 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_VideoOnly) { 442 TEST_F(PipelineIntegrationTest, ChunkDemuxerAbortRead_VideoOnly) {
441 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", kVideoOnlyWebM, 443 ASSERT_TRUE(TestSeekDuringRead("bear-320x240-video-only.webm", kVideoOnlyWebM,
442 32768, 444 32768,
443 base::TimeDelta::FromMilliseconds(200), 445 base::TimeDelta::FromMilliseconds(200),
444 base::TimeDelta::FromMilliseconds(1668), 446 base::TimeDelta::FromMilliseconds(1668),
445 0x1C896, 65536)); 447 0x1C896, 65536));
446 } 448 }
447 449
448 } // namespace media 450 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/chunk_demuxer_unittest.cc ('k') | media/mp4/mp4_stream_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698