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

Side by Side Diff: media/filters/chunk_demuxer_unittest.cc

Issue 1171263004: Allow setting memory limits on media::DemuxerStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merged CL that adds get/set buffer size on WMP Created 5 years, 6 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/filters/chunk_demuxer.cc ('k') | media/filters/decrypting_demuxer_stream.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 <algorithm> 5 #include <algorithm>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_split.h" 10 #include "base/strings/string_split.h"
(...skipping 3315 matching lines...) Expand 10 before | Expand all | Expand 10 after
3326 Seek(seek_time); 3326 Seek(seek_time);
3327 3327
3328 // Append data to satisfy the seek. 3328 // Append data to satisfy the seek.
3329 AppendCluster(seek_time.InMilliseconds(), 10); 3329 AppendCluster(seek_time.InMilliseconds(), 10);
3330 } 3330 }
3331 3331
3332 TEST_F(ChunkDemuxerTest, SetMemoryLimitType) { 3332 TEST_F(ChunkDemuxerTest, SetMemoryLimitType) {
3333 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); 3333 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
3334 3334
3335 // Set different memory limits for audio and video. 3335 // Set different memory limits for audio and video.
3336 demuxer_->SetMemoryLimits(DemuxerStream::AUDIO, 10 * kBlockSize); 3336 DemuxerStream* audio_stream = demuxer_->GetStream(DemuxerStream::AUDIO);
3337 demuxer_->SetMemoryLimits(DemuxerStream::VIDEO, 5 * kBlockSize); 3337 audio_stream->SetMemoryLimit(10 * kBlockSize);
3338 DemuxerStream* video_stream = demuxer_->GetStream(DemuxerStream::VIDEO);
3339 video_stream->SetMemoryLimit(5 * kBlockSize);
3338 3340
3339 base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(1000); 3341 base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(1000);
3340 3342
3341 // Append data at the start that can be garbage collected: 3343 // Append data at the start that can be garbage collected:
3342 AppendSingleStreamCluster(kSourceId, kAudioTrackNum, 0, 10); 3344 AppendSingleStreamCluster(kSourceId, kAudioTrackNum, 0, 10);
3343 AppendSingleStreamCluster(kSourceId, kVideoTrackNum, 0, 5); 3345 AppendSingleStreamCluster(kSourceId, kVideoTrackNum, 0, 5);
3344 3346
3345 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,230) }"); 3347 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,230) }");
3346 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,165) }"); 3348 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,165) }");
3347 3349
3348 // Seek so we can garbage collect the data appended above. 3350 // Seek so we can garbage collect the data appended above.
3349 Seek(seek_time); 3351 Seek(seek_time);
3350 3352
3351 // Append data at seek_time. 3353 // Append data at seek_time.
3352 AppendSingleStreamCluster(kSourceId, kAudioTrackNum, 3354 AppendSingleStreamCluster(kSourceId, kAudioTrackNum,
3353 seek_time.InMilliseconds(), 10); 3355 seek_time.InMilliseconds(), 10);
3354 AppendSingleStreamCluster(kSourceId, kVideoTrackNum, 3356 AppendSingleStreamCluster(kSourceId, kVideoTrackNum,
3355 seek_time.InMilliseconds(), 5); 3357 seek_time.InMilliseconds(), 5);
3356 3358
3357 // Verify that the old data, and nothing more, has been garbage collected. 3359 // Verify that the old data, and nothing more, has been garbage collected.
3358 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [1000,1230) }"); 3360 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [1000,1230) }");
3359 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [1000,1165) }"); 3361 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [1000,1165) }");
3360 } 3362 }
3361 3363
3362 TEST_F(ChunkDemuxerTest, GCDuringSeek) { 3364 TEST_F(ChunkDemuxerTest, GCDuringSeek) {
3363 ASSERT_TRUE(InitDemuxer(HAS_AUDIO)); 3365 ASSERT_TRUE(InitDemuxer(HAS_AUDIO));
3364 3366
3365 demuxer_->SetMemoryLimits(DemuxerStream::AUDIO, 5 * kBlockSize); 3367 DemuxerStream* audio_stream = demuxer_->GetStream(DemuxerStream::AUDIO);
3368 audio_stream->SetMemoryLimit(5 * kBlockSize);
3366 3369
3367 base::TimeDelta seek_time1 = base::TimeDelta::FromMilliseconds(1000); 3370 base::TimeDelta seek_time1 = base::TimeDelta::FromMilliseconds(1000);
3368 base::TimeDelta seek_time2 = base::TimeDelta::FromMilliseconds(500); 3371 base::TimeDelta seek_time2 = base::TimeDelta::FromMilliseconds(500);
3369 3372
3370 // Initiate a seek to |seek_time1|. 3373 // Initiate a seek to |seek_time1|.
3371 Seek(seek_time1); 3374 Seek(seek_time1);
3372 3375
3373 // Append data to satisfy the first seek request. 3376 // Append data to satisfy the first seek request.
3374 AppendSingleStreamCluster(kSourceId, kAudioTrackNum, 3377 AppendSingleStreamCluster(kSourceId, kAudioTrackNum,
3375 seek_time1.InMilliseconds(), 5); 3378 seek_time1.InMilliseconds(), 5);
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
3748 TEST_F(ChunkDemuxerTest, CuesBetweenClusters) { 3751 TEST_F(ChunkDemuxerTest, CuesBetweenClusters) {
3749 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); 3752 ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
3750 3753
3751 AppendCluster(GenerateCluster(0, 0, 4)); 3754 AppendCluster(GenerateCluster(0, 0, 4));
3752 AppendData(kCuesHeader, sizeof(kCuesHeader)); 3755 AppendData(kCuesHeader, sizeof(kCuesHeader));
3753 AppendCluster(GenerateCluster(46, 66, 5)); 3756 AppendCluster(GenerateCluster(46, 66, 5));
3754 CheckExpectedRanges(kSourceId, "{ [0,115) }"); 3757 CheckExpectedRanges(kSourceId, "{ [0,115) }");
3755 } 3758 }
3756 3759
3757 } // namespace media 3760 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/chunk_demuxer.cc ('k') | media/filters/decrypting_demuxer_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698