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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "media/base/audio_decoder_config.h" | 6 #include "media/base/audio_decoder_config.h" |
7 #include "media/base/decoder_buffer.h" | 7 #include "media/base/decoder_buffer.h" |
8 #include "media/base/mock_callback.h" | 8 #include "media/base/mock_callback.h" |
9 #include "media/base/mock_demuxer_host.h" | 9 #include "media/base/mock_demuxer_host.h" |
10 #include "media/base/test_data_util.h" | 10 #include "media/base/test_data_util.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 } | 65 } |
66 } | 66 } |
67 | 67 |
68 MATCHER_P(HasTimestamp, timestamp_in_ms, "") { | 68 MATCHER_P(HasTimestamp, timestamp_in_ms, "") { |
69 return arg && !arg->IsEndOfStream() && | 69 return arg && !arg->IsEndOfStream() && |
70 arg->GetTimestamp().InMilliseconds() == timestamp_in_ms; | 70 arg->GetTimestamp().InMilliseconds() == timestamp_in_ms; |
71 } | 71 } |
72 | 72 |
73 static void OnReadDone(const base::TimeDelta& expected_time, | 73 static void OnReadDone(const base::TimeDelta& expected_time, |
74 bool* called, | 74 bool* called, |
| 75 DemuxerStream::Status status, |
75 const scoped_refptr<DecoderBuffer>& buffer) { | 76 const scoped_refptr<DecoderBuffer>& buffer) { |
| 77 EXPECT_EQ(status, DemuxerStream::kOk); |
76 EXPECT_EQ(expected_time, buffer->GetTimestamp()); | 78 EXPECT_EQ(expected_time, buffer->GetTimestamp()); |
77 *called = true; | 79 *called = true; |
78 } | 80 } |
79 | 81 |
80 static void OnReadDone_EOSExpected(bool* called, | 82 static void OnReadDone_EOSExpected(bool* called, |
| 83 DemuxerStream::Status status, |
81 const scoped_refptr<DecoderBuffer>& buffer) { | 84 const scoped_refptr<DecoderBuffer>& buffer) { |
| 85 EXPECT_EQ(status, DemuxerStream::kOk); |
82 EXPECT_TRUE(buffer->IsEndOfStream()); | 86 EXPECT_TRUE(buffer->IsEndOfStream()); |
83 *called = true; | 87 *called = true; |
84 } | 88 } |
85 | 89 |
86 class MockChunkDemuxerClient : public ChunkDemuxerClient { | 90 class MockChunkDemuxerClient : public ChunkDemuxerClient { |
87 public: | 91 public: |
88 MockChunkDemuxerClient() {} | 92 MockChunkDemuxerClient() {} |
89 virtual ~MockChunkDemuxerClient() {} | 93 virtual ~MockChunkDemuxerClient() {} |
90 | 94 |
91 MOCK_METHOD1(DemuxerOpened, void(ChunkDemuxer* demuxer)); | 95 MOCK_METHOD1(DemuxerOpened, void(ChunkDemuxer* demuxer)); |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 std::stringstream ss; | 481 std::stringstream ss; |
478 ss << "{ "; | 482 ss << "{ "; |
479 for (size_t i = 0; i < r.size(); ++i) { | 483 for (size_t i = 0; i < r.size(); ++i) { |
480 ss << "[" << r.start(i).InMilliseconds() << "," | 484 ss << "[" << r.start(i).InMilliseconds() << "," |
481 << r.end(i).InMilliseconds() << ") "; | 485 << r.end(i).InMilliseconds() << ") "; |
482 } | 486 } |
483 ss << "}"; | 487 ss << "}"; |
484 EXPECT_EQ(ss.str(), expected); | 488 EXPECT_EQ(ss.str(), expected); |
485 } | 489 } |
486 | 490 |
487 MOCK_METHOD1(ReadDone, void(const scoped_refptr<DecoderBuffer>&)); | 491 MOCK_METHOD2(ReadDone, void(DemuxerStream::Status status, |
| 492 const scoped_refptr<DecoderBuffer>&)); |
488 | 493 |
489 void ExpectRead(DemuxerStream* stream, int64 timestamp_in_ms) { | 494 void ExpectRead(DemuxerStream* stream, int64 timestamp_in_ms) { |
490 EXPECT_CALL(*this, ReadDone(HasTimestamp(timestamp_in_ms))); | 495 EXPECT_CALL(*this, ReadDone(DemuxerStream::kOk, |
| 496 HasTimestamp(timestamp_in_ms))); |
491 stream->Read(base::Bind(&ChunkDemuxerTest::ReadDone, | 497 stream->Read(base::Bind(&ChunkDemuxerTest::ReadDone, |
492 base::Unretained(this))); | 498 base::Unretained(this))); |
493 } | 499 } |
494 | 500 |
495 MOCK_METHOD1(Checkpoint, void(int id)); | 501 MOCK_METHOD1(Checkpoint, void(int id)); |
496 | 502 |
497 struct BufferTimestamps { | 503 struct BufferTimestamps { |
498 int video_time_ms; | 504 int video_time_ms; |
499 int audio_time_ms; | 505 int audio_time_ms; |
500 }; | 506 }; |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 | 938 |
933 // Check to see if |audio_read_done_| and |video_read_done_| variables | 939 // Check to see if |audio_read_done_| and |video_read_done_| variables |
934 // match |expected|. | 940 // match |expected|. |
935 void CheckIfReadDonesWereCalled(bool expected) { | 941 void CheckIfReadDonesWereCalled(bool expected) { |
936 EXPECT_EQ(expected, audio_read_done_); | 942 EXPECT_EQ(expected, audio_read_done_); |
937 EXPECT_EQ(expected, video_read_done_); | 943 EXPECT_EQ(expected, video_read_done_); |
938 } | 944 } |
939 | 945 |
940 private: | 946 private: |
941 static void OnEndOfStreamReadDone( | 947 static void OnEndOfStreamReadDone( |
942 bool* called, const scoped_refptr<DecoderBuffer>& buffer) { | 948 bool* called, |
| 949 DemuxerStream::Status status, |
| 950 const scoped_refptr<DecoderBuffer>& buffer) { |
| 951 EXPECT_EQ(status, DemuxerStream::kOk); |
943 EXPECT_TRUE(buffer->IsEndOfStream()); | 952 EXPECT_TRUE(buffer->IsEndOfStream()); |
944 *called = true; | 953 *called = true; |
945 } | 954 } |
946 | 955 |
947 scoped_refptr<Demuxer> demuxer_; | 956 scoped_refptr<Demuxer> demuxer_; |
948 bool audio_read_done_; | 957 bool audio_read_done_; |
949 bool video_read_done_; | 958 bool video_read_done_; |
950 | 959 |
951 DISALLOW_COPY_AND_ASSIGN(EndOfStreamHelper); | 960 DISALLOW_COPY_AND_ASSIGN(EndOfStreamHelper); |
952 }; | 961 }; |
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1686 EXPECT_CALL(*client_, DemuxerOpened(_)); | 1695 EXPECT_CALL(*client_, DemuxerOpened(_)); |
1687 demuxer_->Initialize(&host_, CreateInitDoneCB(PIPELINE_OK)); | 1696 demuxer_->Initialize(&host_, CreateInitDoneCB(PIPELINE_OK)); |
1688 ASSERT_EQ(AddId("audio", true, false), ChunkDemuxer::kOk); | 1697 ASSERT_EQ(AddId("audio", true, false), ChunkDemuxer::kOk); |
1689 ASSERT_EQ(AddId("video", false, true), ChunkDemuxer::kOk); | 1698 ASSERT_EQ(AddId("video", false, true), ChunkDemuxer::kOk); |
1690 | 1699 |
1691 CheckExpectedRanges("audio", "{ }"); | 1700 CheckExpectedRanges("audio", "{ }"); |
1692 CheckExpectedRanges("video", "{ }"); | 1701 CheckExpectedRanges("video", "{ }"); |
1693 } | 1702 } |
1694 | 1703 |
1695 } // namespace media | 1704 } // namespace media |
OLD | NEW |