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

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: Address comments from patch set #2. 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
« no previous file with comments | « media/base/decoder_buffer_queue.cc ('k') | media/filters/ffmpeg_demuxer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, 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
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) {
acolwell GONE FROM CHROMIUM 2014/02/18 23:57:48 nit: s/Size/DataSize/
damienv1 2014/02/19 00:33:58 Done.
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
OLDNEW
« no previous file with comments | « media/base/decoder_buffer_queue.cc ('k') | media/filters/ffmpeg_demuxer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698