Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: media/base/decoder_buffer_queue_unittest.cc

Issue 164233005: Cap the memory usage in FFMpegDemuxer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use size_t instead of int. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698