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/buffers.h" | 5 #include "media/base/buffers.h" |
6 #include "media/base/decoder_buffer.h" | 6 #include "media/base/decoder_buffer.h" |
7 #include "media/base/decoder_buffer_queue.h" | 7 #include "media/base/decoder_buffer_queue.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
11 | 11 |
12 static base::TimeDelta ToTimeDelta(int seconds) { | 12 static base::TimeDelta ToTimeDelta(int seconds) { |
13 if (seconds < 0) | 13 if (seconds < 0) |
14 return kNoTimestamp(); | 14 return kNoTimestamp(); |
15 return base::TimeDelta::FromSeconds(seconds); | 15 return base::TimeDelta::FromSeconds(seconds); |
16 } | 16 } |
17 | 17 |
18 // Helper to create buffers with specified timestamp in seconds. | 18 // Helper to create buffers with specified timestamp in seconds. |
19 // | 19 // |
20 // Negative numbers will be converted to kNoTimestamp(); | 20 // Negative numbers will be converted to kNoTimestamp(); |
21 static scoped_refptr<DecoderBuffer> CreateBuffer(int timestamp) { | 21 static scoped_refptr<DecoderBuffer> CreateBuffer(int timestamp, int size = 0) { |
22 scoped_refptr<DecoderBuffer> buffer = new DecoderBuffer(0); | 22 scoped_refptr<DecoderBuffer> buffer = new DecoderBuffer(size); |
23 buffer->set_timestamp(ToTimeDelta(timestamp)); | 23 buffer->set_timestamp(ToTimeDelta(timestamp)); |
24 buffer->set_duration(ToTimeDelta(0)); | 24 buffer->set_duration(ToTimeDelta(0)); |
25 return buffer; | 25 return buffer; |
26 } | 26 } |
27 | 27 |
28 TEST(DecoderBufferQueueTest, IsEmpty) { | 28 TEST(DecoderBufferQueueTest, IsEmpty) { |
29 DecoderBufferQueue queue; | 29 DecoderBufferQueue queue; |
30 EXPECT_TRUE(queue.IsEmpty()); | 30 EXPECT_TRUE(queue.IsEmpty()); |
31 | 31 |
32 queue.Push(CreateBuffer(0)); | 32 queue.Push(CreateBuffer(0)); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 queue.Pop(); | 128 queue.Pop(); |
129 EXPECT_EQ(0, queue.Duration().InSeconds()); | 129 EXPECT_EQ(0, queue.Duration().InSeconds()); |
130 | 130 |
131 queue.Pop(); | 131 queue.Pop(); |
132 EXPECT_EQ(0, queue.Duration().InSeconds()); | 132 EXPECT_EQ(0, queue.Duration().InSeconds()); |
133 | 133 |
134 queue.Pop(); | 134 queue.Pop(); |
135 EXPECT_EQ(0, queue.Duration().InSeconds()); | 135 EXPECT_EQ(0, queue.Duration().InSeconds()); |
136 } | 136 } |
137 | 137 |
| 138 TEST(DecoderBufferQueueTest, Size) { |
| 139 DecoderBufferQueue queue; |
| 140 EXPECT_EQ(queue.data_size(), 0); |
| 141 |
| 142 queue.Push(CreateBuffer(0, 1200)); |
| 143 EXPECT_EQ(queue.data_size(), 1200); |
| 144 |
| 145 queue.Push(CreateBuffer(1, 1000)); |
| 146 EXPECT_EQ(queue.data_size(), 2200); |
| 147 |
| 148 queue.Pop(); |
| 149 EXPECT_EQ(queue.data_size(), 1000); |
| 150 |
| 151 queue.Push(CreateBuffer(2, 999)); |
| 152 queue.Push(CreateBuffer(3, 999)); |
| 153 EXPECT_EQ(queue.data_size(), 2998); |
| 154 |
| 155 queue.Clear(); |
| 156 EXPECT_EQ(queue.data_size(), 0); |
| 157 |
| 158 queue.Push(CreateBuffer(4, 1400)); |
| 159 EXPECT_EQ(queue.data_size(), 1400); |
| 160 } |
| 161 |
138 } // namespace media | 162 } // namespace media |
OLD | NEW |