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

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

Issue 10829470: Support for parsing encrypted WebM streams by src. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tool player_x11 Created 7 years, 9 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 "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/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 Tokenize(codecStr, ",", &codecs); 306 Tokenize(codecStr, ",", &codecs);
307 307
308 CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk); 308 CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk);
309 AppendData(initial_append_size_); 309 AppendData(initial_append_size_);
310 } 310 }
311 311
312 void DemuxerNeedKey(const std::string& type, 312 void DemuxerNeedKey(const std::string& type,
313 scoped_array<uint8> init_data, int init_data_size) { 313 scoped_array<uint8> init_data, int init_data_size) {
314 DCHECK(init_data.get()); 314 DCHECK(init_data.get());
315 DCHECK_GT(init_data_size, 0); 315 DCHECK_GT(init_data_size, 0);
316 CHECK(!need_key_cb_.is_null());
316 need_key_cb_.Run("", "", type, init_data.Pass(), init_data_size); 317 need_key_cb_.Run("", "", type, init_data.Pass(), init_data_size);
317 } 318 }
318 319
319 private: 320 private:
320 base::FilePath file_path_; 321 base::FilePath file_path_;
321 scoped_refptr<DecoderBuffer> file_data_; 322 scoped_refptr<DecoderBuffer> file_data_;
322 int current_position_; 323 int current_position_;
323 int initial_append_size_; 324 int initial_append_size_;
324 std::string mimetype_; 325 std::string mimetype_;
325 scoped_refptr<ChunkDemuxer> chunk_demuxer_; 326 scoped_refptr<ChunkDemuxer> chunk_demuxer_;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 418
418 ASSERT_TRUE(WaitUntilOnEnded()); 419 ASSERT_TRUE(WaitUntilOnEnded());
419 420
420 EXPECT_EQ(GetVideoHash(), "f0be120a90a811506777c99a2cdf7cc1"); 421 EXPECT_EQ(GetVideoHash(), "f0be120a90a811506777c99a2cdf7cc1");
421 422
422 // TODO(dalecurtis): Audio decoded in float does not have a consistent hash 423 // TODO(dalecurtis): Audio decoded in float does not have a consistent hash
423 // across platforms. Fix this: http://crbug.com/168204 424 // across platforms. Fix this: http://crbug.com/168204
424 // EXPECT_EQ(GetAudioHash(), ""); 425 // EXPECT_EQ(GetAudioHash(), "");
425 } 426 }
426 427
428 // TODO(fgalligan): Enable test when code to parse encrypted WebM files lands
429 // in Chromium's FFmpeg. crbug.com/189221
430 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlaybackEncrypted) {
431 FakeEncryptedMedia encrypted_media(new KeyProvidingApp());
432 set_need_key_cb(base::Bind(&FakeEncryptedMedia::NeedKey,
433 base::Unretained(&encrypted_media)));
434
435 ASSERT_TRUE(Start(GetTestDataFilePath("bear-320x240-av_enc-av.webm"),
436 encrypted_media.decryptor()));
437
438 Play();
439
440 ASSERT_TRUE(WaitUntilOnEnded());
441 Stop();
442 }
443
427 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource) { 444 TEST_F(PipelineIntegrationTest, BasicPlayback_MediaSource) {
428 MockMediaSource source("bear-320x240.webm", kWebM, 219229); 445 MockMediaSource source("bear-320x240.webm", kWebM, 219229);
429 StartPipelineWithMediaSource(&source); 446 StartPipelineWithMediaSource(&source);
430 source.EndOfStream(); 447 source.EndOfStream();
431 448
432 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); 449 EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
433 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); 450 EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds());
434 EXPECT_EQ(k320WebMFileDurationMs, 451 EXPECT_EQ(k320WebMFileDurationMs,
435 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); 452 pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds());
436 453
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 // back. 895 // back.
879 // Disabled since it might crash or corrupt heap, see http://crbug.com/173333 896 // Disabled since it might crash or corrupt heap, see http://crbug.com/173333
880 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_VP9_Opus_WebM) { 897 TEST_F(PipelineIntegrationTest, DISABLED_BasicPlayback_VP9_Opus_WebM) {
881 ASSERT_TRUE(Start(GetTestDataFilePath("bear-vp9-opus.webm"), 898 ASSERT_TRUE(Start(GetTestDataFilePath("bear-vp9-opus.webm"),
882 PIPELINE_OK)); 899 PIPELINE_OK));
883 Play(); 900 Play();
884 ASSERT_TRUE(WaitUntilOnEnded()); 901 ASSERT_TRUE(WaitUntilOnEnded());
885 } 902 }
886 903
887 } // namespace media 904 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/ffmpeg_demuxer_unittest.cc ('k') | media/filters/pipeline_integration_test_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698