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) { |
22 scoped_refptr<DecoderBuffer> buffer = new DecoderBuffer(0); | 22 scoped_refptr<DecoderBuffer> buffer = new DecoderBuffer(0); |
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 static scoped_refptr<DecoderBuffer> CreateBuffer(int timestamp, int size) { |
| 29 scoped_refptr<DecoderBuffer> buffer = new DecoderBuffer(size); |
| 30 buffer->set_timestamp(ToTimeDelta(timestamp)); |
| 31 buffer->set_duration(ToTimeDelta(0)); |
| 32 return buffer; |
| 33 } |
| 34 |
28 TEST(DecoderBufferQueueTest, IsEmpty) { | 35 TEST(DecoderBufferQueueTest, IsEmpty) { |
29 DecoderBufferQueue queue; | 36 DecoderBufferQueue queue; |
30 EXPECT_TRUE(queue.IsEmpty()); | 37 EXPECT_TRUE(queue.IsEmpty()); |
31 | 38 |
32 queue.Push(CreateBuffer(0)); | 39 queue.Push(CreateBuffer(0)); |
33 EXPECT_FALSE(queue.IsEmpty()); | 40 EXPECT_FALSE(queue.IsEmpty()); |
34 } | 41 } |
35 | 42 |
36 TEST(DecoderBufferQueueTest, Clear) { | 43 TEST(DecoderBufferQueueTest, Clear) { |
37 DecoderBufferQueue queue; | 44 DecoderBufferQueue queue; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 queue.Pop(); | 135 queue.Pop(); |
129 EXPECT_EQ(0, queue.Duration().InSeconds()); | 136 EXPECT_EQ(0, queue.Duration().InSeconds()); |
130 | 137 |
131 queue.Pop(); | 138 queue.Pop(); |
132 EXPECT_EQ(0, queue.Duration().InSeconds()); | 139 EXPECT_EQ(0, queue.Duration().InSeconds()); |
133 | 140 |
134 queue.Pop(); | 141 queue.Pop(); |
135 EXPECT_EQ(0, queue.Duration().InSeconds()); | 142 EXPECT_EQ(0, queue.Duration().InSeconds()); |
136 } | 143 } |
137 | 144 |
| 145 TEST(DecoderBufferQueueTest, DataSize) { |
| 146 DecoderBufferQueue queue; |
| 147 EXPECT_EQ(queue.data_size(), 0u); |
| 148 |
| 149 queue.Push(CreateBuffer(0, 1200u)); |
| 150 EXPECT_EQ(queue.data_size(), 1200u); |
| 151 |
| 152 queue.Push(CreateBuffer(1, 1000u)); |
| 153 EXPECT_EQ(queue.data_size(), 2200u); |
| 154 |
| 155 queue.Pop(); |
| 156 EXPECT_EQ(queue.data_size(), 1000u); |
| 157 |
| 158 queue.Push(CreateBuffer(2, 999u)); |
| 159 queue.Push(CreateBuffer(3, 999u)); |
| 160 EXPECT_EQ(queue.data_size(), 2998u); |
| 161 |
| 162 queue.Clear(); |
| 163 EXPECT_EQ(queue.data_size(), 0u); |
| 164 |
| 165 queue.Push(CreateBuffer(4, 1400u)); |
| 166 EXPECT_EQ(queue.data_size(), 1400u); |
| 167 } |
| 168 |
138 } // namespace media | 169 } // namespace media |
OLD | NEW |