| 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 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 std::stringstream ss; | 483 std::stringstream ss; |
| 480 ss << "{ "; | 484 ss << "{ "; |
| 481 for (size_t i = 0; i < r.size(); ++i) { | 485 for (size_t i = 0; i < r.size(); ++i) { |
| 482 ss << "[" << r.start(i).InMilliseconds() << "," | 486 ss << "[" << r.start(i).InMilliseconds() << "," |
| 483 << r.end(i).InMilliseconds() << ") "; | 487 << r.end(i).InMilliseconds() << ") "; |
| 484 } | 488 } |
| 485 ss << "}"; | 489 ss << "}"; |
| 486 EXPECT_EQ(ss.str(), expected); | 490 EXPECT_EQ(ss.str(), expected); |
| 487 } | 491 } |
| 488 | 492 |
| 489 MOCK_METHOD1(ReadDone, void(const scoped_refptr<DecoderBuffer>&)); | 493 MOCK_METHOD2(ReadDone, void(DemuxerStream::Status status, |
| 494 const scoped_refptr<DecoderBuffer>&)); |
| 490 | 495 |
| 491 void ExpectRead(DemuxerStream* stream, int64 timestamp_in_ms) { | 496 void ExpectRead(DemuxerStream* stream, int64 timestamp_in_ms) { |
| 492 EXPECT_CALL(*this, ReadDone(HasTimestamp(timestamp_in_ms))); | 497 EXPECT_CALL(*this, ReadDone(DemuxerStream::kOk, |
| 498 HasTimestamp(timestamp_in_ms))); |
| 493 stream->Read(base::Bind(&ChunkDemuxerTest::ReadDone, | 499 stream->Read(base::Bind(&ChunkDemuxerTest::ReadDone, |
| 494 base::Unretained(this))); | 500 base::Unretained(this))); |
| 495 } | 501 } |
| 496 | 502 |
| 497 MOCK_METHOD1(Checkpoint, void(int id)); | 503 MOCK_METHOD1(Checkpoint, void(int id)); |
| 498 | 504 |
| 499 struct BufferTimestamps { | 505 struct BufferTimestamps { |
| 500 int video_time_ms; | 506 int video_time_ms; |
| 501 int audio_time_ms; | 507 int audio_time_ms; |
| 502 }; | 508 }; |
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 | 911 |
| 906 // Check to see if |audio_read_done_| and |video_read_done_| variables | 912 // Check to see if |audio_read_done_| and |video_read_done_| variables |
| 907 // match |expected|. | 913 // match |expected|. |
| 908 void CheckIfReadDonesWereCalled(bool expected) { | 914 void CheckIfReadDonesWereCalled(bool expected) { |
| 909 EXPECT_EQ(expected, audio_read_done_); | 915 EXPECT_EQ(expected, audio_read_done_); |
| 910 EXPECT_EQ(expected, video_read_done_); | 916 EXPECT_EQ(expected, video_read_done_); |
| 911 } | 917 } |
| 912 | 918 |
| 913 private: | 919 private: |
| 914 static void OnEndOfStreamReadDone( | 920 static void OnEndOfStreamReadDone( |
| 915 bool* called, const scoped_refptr<DecoderBuffer>& buffer) { | 921 bool* called, |
| 922 DemuxerStream::Status status, |
| 923 const scoped_refptr<DecoderBuffer>& buffer) { |
| 924 EXPECT_EQ(status, DemuxerStream::kOk); |
| 916 EXPECT_TRUE(buffer->IsEndOfStream()); | 925 EXPECT_TRUE(buffer->IsEndOfStream()); |
| 917 *called = true; | 926 *called = true; |
| 918 } | 927 } |
| 919 | 928 |
| 920 scoped_refptr<Demuxer> demuxer_; | 929 scoped_refptr<Demuxer> demuxer_; |
| 921 bool audio_read_done_; | 930 bool audio_read_done_; |
| 922 bool video_read_done_; | 931 bool video_read_done_; |
| 923 | 932 |
| 924 DISALLOW_COPY_AND_ASSIGN(EndOfStreamHelper); | 933 DISALLOW_COPY_AND_ASSIGN(EndOfStreamHelper); |
| 925 }; | 934 }; |
| (...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1679 EXPECT_CALL(*client_, DemuxerOpened(_)); | 1688 EXPECT_CALL(*client_, DemuxerOpened(_)); |
| 1680 demuxer_->Initialize(&host_, CreateInitDoneCB(PIPELINE_OK)); | 1689 demuxer_->Initialize(&host_, CreateInitDoneCB(PIPELINE_OK)); |
| 1681 ASSERT_EQ(AddId("audio", true, false), ChunkDemuxer::kOk); | 1690 ASSERT_EQ(AddId("audio", true, false), ChunkDemuxer::kOk); |
| 1682 ASSERT_EQ(AddId("video", false, true), ChunkDemuxer::kOk); | 1691 ASSERT_EQ(AddId("video", false, true), ChunkDemuxer::kOk); |
| 1683 | 1692 |
| 1684 CheckExpectedRanges("audio", "{ }"); | 1693 CheckExpectedRanges("audio", "{ }"); |
| 1685 CheckExpectedRanges("video", "{ }"); | 1694 CheckExpectedRanges("video", "{ }"); |
| 1686 } | 1695 } |
| 1687 | 1696 |
| 1688 } // namespace media | 1697 } // namespace media |
| OLD | NEW |