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

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

Issue 10912080: Switch to AVIO instead of a custom FFmpeg URLProtocol handler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: AVIO! Created 8 years, 2 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
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 <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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698