| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <deque> | 6 #include <deque> |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 return static_cast<FFmpegDemuxerStream*>(stream)->stopped_; | 134 return static_cast<FFmpegDemuxerStream*>(stream)->stopped_; |
| 135 } | 135 } |
| 136 | 136 |
| 137 // Fixture members. | 137 // Fixture members. |
| 138 scoped_refptr<FileDataSource> data_source_; | 138 scoped_refptr<FileDataSource> data_source_; |
| 139 scoped_refptr<FFmpegDemuxer> demuxer_; | 139 scoped_refptr<FFmpegDemuxer> demuxer_; |
| 140 StrictMock<MockDemuxerHost> host_; | 140 StrictMock<MockDemuxerHost> host_; |
| 141 MessageLoop message_loop_; | 141 MessageLoop message_loop_; |
| 142 | 142 |
| 143 AVFormatContext* format_context() { | 143 AVFormatContext* format_context() { |
| 144 return demuxer_->format_context_; | 144 return demuxer_->glue_->format_context(); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void ReadUntilEndOfStream() { | 147 void ReadUntilEndOfStream() { |
| 148 // We should expect an end of stream buffer. | 148 // We should expect an end of stream buffer. |
| 149 scoped_refptr<DemuxerStream> audio = | 149 scoped_refptr<DemuxerStream> audio = |
| 150 demuxer_->GetStream(DemuxerStream::AUDIO); | 150 demuxer_->GetStream(DemuxerStream::AUDIO); |
| 151 | 151 |
| 152 bool got_eos_buffer = false; | 152 bool got_eos_buffer = false; |
| 153 const int kMaxBuffers = 170; | 153 const int kMaxBuffers = 170; |
| 154 for (int i = 0; !got_eos_buffer && i < kMaxBuffers; i++) { | 154 for (int i = 0; !got_eos_buffer && i < kMaxBuffers; i++) { |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 InitializeDemuxer(); | 534 InitializeDemuxer(); |
| 535 | 535 |
| 536 // Set read head to zero as Initialize() will have parsed a bit of the file. | 536 // Set read head to zero as Initialize() will have parsed a bit of the file. |
| 537 int64 position = 0; | 537 int64 position = 0; |
| 538 EXPECT_TRUE(demuxer_->SetPosition(0)); | 538 EXPECT_TRUE(demuxer_->SetPosition(0)); |
| 539 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 539 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 540 EXPECT_EQ(0, position); | 540 EXPECT_EQ(0, position); |
| 541 | 541 |
| 542 // Read 32 bytes from offset zero and verify position. | 542 // Read 32 bytes from offset zero and verify position. |
| 543 uint8 buffer[32]; | 543 uint8 buffer[32]; |
| 544 EXPECT_EQ(32u, demuxer_->Read(32, buffer)); | 544 EXPECT_EQ(32, demuxer_->Read(32, buffer)); |
| 545 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 545 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 546 EXPECT_EQ(32, position); | 546 EXPECT_EQ(32, position); |
| 547 | 547 |
| 548 // Read an additional 32 bytes and verify position. | 548 // Read an additional 32 bytes and verify position. |
| 549 EXPECT_EQ(32u, demuxer_->Read(32, buffer)); | 549 EXPECT_EQ(32, demuxer_->Read(32, buffer)); |
| 550 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 550 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 551 EXPECT_EQ(64, position); | 551 EXPECT_EQ(64, position); |
| 552 | 552 |
| 553 // Seek to end and read until EOF. | 553 // Seek to end and read until EOF. |
| 554 int64 size = 0; | 554 int64 size = 0; |
| 555 EXPECT_TRUE(demuxer_->GetSize(&size)); | 555 EXPECT_TRUE(demuxer_->GetSize(&size)); |
| 556 EXPECT_TRUE(demuxer_->SetPosition(size - 48)); | 556 EXPECT_TRUE(demuxer_->SetPosition(size - 48)); |
| 557 EXPECT_EQ(32u, demuxer_->Read(32, buffer)); | 557 EXPECT_EQ(32, demuxer_->Read(32, buffer)); |
| 558 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 558 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 559 EXPECT_EQ(size - 16, position); | 559 EXPECT_EQ(size - 16, position); |
| 560 | 560 |
| 561 EXPECT_EQ(16u, demuxer_->Read(32, buffer)); | 561 EXPECT_EQ(16, demuxer_->Read(32, buffer)); |
| 562 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 562 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 563 EXPECT_EQ(size, position); | 563 EXPECT_EQ(size, position); |
| 564 | 564 |
| 565 EXPECT_EQ(0u, demuxer_->Read(32, buffer)); | 565 EXPECT_EQ(0, demuxer_->Read(32, buffer)); |
| 566 EXPECT_TRUE(demuxer_->GetPosition(&position)); | 566 EXPECT_TRUE(demuxer_->GetPosition(&position)); |
| 567 EXPECT_EQ(size, position); | 567 EXPECT_EQ(size, position); |
| 568 | 568 |
| 569 demuxer_->Stop(NewExpectedClosure()); | 569 demuxer_->Stop(NewExpectedClosure()); |
| 570 message_loop_.RunAllPending(); | 570 message_loop_.RunAllPending(); |
| 571 } | 571 } |
| 572 | 572 |
| 573 TEST_F(FFmpegDemuxerTest, ProtocolGetSetPosition) { | 573 TEST_F(FFmpegDemuxerTest, ProtocolGetSetPosition) { |
| 574 CreateDemuxer("bear-320x240.webm"); | 574 CreateDemuxer("bear-320x240.webm"); |
| 575 InitializeDemuxer(); | 575 InitializeDemuxer(); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 TEST_F(FFmpegDemuxerTest, UnsupportedVideoSupportedAudioDemux) { | 691 TEST_F(FFmpegDemuxerTest, UnsupportedVideoSupportedAudioDemux) { |
| 692 CreateDemuxer("vorbis_audio_wmv_video.mkv"); | 692 CreateDemuxer("vorbis_audio_wmv_video.mkv"); |
| 693 InitializeDemuxer(); | 693 InitializeDemuxer(); |
| 694 | 694 |
| 695 // Ensure the expected streams are present. | 695 // Ensure the expected streams are present. |
| 696 EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::VIDEO)); | 696 EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::VIDEO)); |
| 697 EXPECT_TRUE(demuxer_->GetStream(DemuxerStream::AUDIO)); | 697 EXPECT_TRUE(demuxer_->GetStream(DemuxerStream::AUDIO)); |
| 698 } | 698 } |
| 699 | 699 |
| 700 } // namespace media | 700 } // namespace media |
| OLD | NEW |