| 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 "media/base/fake_demuxer_stream.h" | 5 #include "media/base/fake_demuxer_stream.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| 11 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
| 12 #include "base/run_loop.h" |
| 12 #include "media/base/decoder_buffer.h" | 13 #include "media/base/decoder_buffer.h" |
| 13 #include "media/base/demuxer_stream.h" | 14 #include "media/base/demuxer_stream.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 16 |
| 16 namespace media { | 17 namespace media { |
| 17 | 18 |
| 18 const int kNumBuffersInOneConfig = 9; | 19 const int kNumBuffersInOneConfig = 9; |
| 19 const int kNumBuffersToReadFirst = 5; | 20 const int kNumBuffersToReadFirst = 5; |
| 20 const int kNumConfigs = 3; | 21 const int kNumConfigs = 3; |
| 21 static_assert(kNumBuffersToReadFirst < kNumBuffersInOneConfig, | 22 static_assert(kNumBuffersToReadFirst < kNumBuffersInOneConfig, |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 EXPECT_TRUE(read_pending_); | 98 EXPECT_TRUE(read_pending_); |
| 98 break; | 99 break; |
| 99 } | 100 } |
| 100 } | 101 } |
| 101 | 102 |
| 102 void ReadAndExpect(ReadResult result) { | 103 void ReadAndExpect(ReadResult result) { |
| 103 EXPECT_FALSE(read_pending_); | 104 EXPECT_FALSE(read_pending_); |
| 104 read_pending_ = true; | 105 read_pending_ = true; |
| 105 stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady, | 106 stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady, |
| 106 base::Unretained(this))); | 107 base::Unretained(this))); |
| 107 message_loop_.RunUntilIdle(); | 108 base::RunLoop().RunUntilIdle(); |
| 108 ExpectReadResult(result); | 109 ExpectReadResult(result); |
| 109 } | 110 } |
| 110 | 111 |
| 111 void ReadUntilPending() { | 112 void ReadUntilPending() { |
| 112 while (1) { | 113 while (1) { |
| 113 read_pending_ = true; | 114 read_pending_ = true; |
| 114 stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady, | 115 stream_->Read(base::Bind(&FakeDemuxerStreamTest::BufferReady, |
| 115 base::Unretained(this))); | 116 base::Unretained(this))); |
| 116 message_loop_.RunUntilIdle(); | 117 base::RunLoop().RunUntilIdle(); |
| 117 if (read_pending_) | 118 if (read_pending_) |
| 118 break; | 119 break; |
| 119 } | 120 } |
| 120 } | 121 } |
| 121 | 122 |
| 122 void SatisfyReadAndExpect(ReadResult result) { | 123 void SatisfyReadAndExpect(ReadResult result) { |
| 123 EXPECT_TRUE(read_pending_); | 124 EXPECT_TRUE(read_pending_); |
| 124 stream_->SatisfyRead(); | 125 stream_->SatisfyRead(); |
| 125 message_loop_.RunUntilIdle(); | 126 base::RunLoop().RunUntilIdle(); |
| 126 ExpectReadResult(result); | 127 ExpectReadResult(result); |
| 127 } | 128 } |
| 128 | 129 |
| 129 void Reset() { | 130 void Reset() { |
| 130 bool had_read_pending = read_pending_; | 131 bool had_read_pending = read_pending_; |
| 131 stream_->Reset(); | 132 stream_->Reset(); |
| 132 message_loop_.RunUntilIdle(); | 133 base::RunLoop().RunUntilIdle(); |
| 133 | 134 |
| 134 EXPECT_FALSE(read_pending_); | 135 EXPECT_FALSE(read_pending_); |
| 135 if (had_read_pending) | 136 if (had_read_pending) |
| 136 ExpectReadResult(ABORTED); | 137 ExpectReadResult(ABORTED); |
| 137 } | 138 } |
| 138 | 139 |
| 139 void ReadAllBuffers(int num_configs, int num_buffers_in_one_config) { | 140 void ReadAllBuffers(int num_configs, int num_buffers_in_one_config) { |
| 140 DCHECK_EQ(0, num_buffers_received_); | 141 DCHECK_EQ(0, num_buffers_received_); |
| 141 for (int i = 0; i < num_configs; ++i) { | 142 for (int i = 0; i < num_configs; ++i) { |
| 142 for (int j = 0; j < num_buffers_in_one_config; ++j) { | 143 for (int j = 0; j < num_buffers_in_one_config; ++j) { |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 } | 280 } |
| 280 | 281 |
| 281 TEST_F(FakeDemuxerStreamTest, SeekToStart_AfterEOS) { | 282 TEST_F(FakeDemuxerStreamTest, SeekToStart_AfterEOS) { |
| 282 TestRead(3, 5, false); | 283 TestRead(3, 5, false); |
| 283 stream_->SeekToStart(); | 284 stream_->SeekToStart(); |
| 284 num_buffers_received_ = 0; | 285 num_buffers_received_ = 0; |
| 285 ReadAllBuffers(3, 5); | 286 ReadAllBuffers(3, 5); |
| 286 } | 287 } |
| 287 | 288 |
| 288 } // namespace media | 289 } // namespace media |
| OLD | NEW |