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

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

Issue 2158923004: Convert media constants to constexpr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/audio_discard_helper.h" 5 #include "media/base/audio_discard_helper.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 12 matching lines...) Expand all
23 static scoped_refptr<DecoderBuffer> CreateEncodedBuffer( 23 static scoped_refptr<DecoderBuffer> CreateEncodedBuffer(
24 base::TimeDelta timestamp, 24 base::TimeDelta timestamp,
25 base::TimeDelta duration) { 25 base::TimeDelta duration) {
26 scoped_refptr<DecoderBuffer> result(new DecoderBuffer(1)); 26 scoped_refptr<DecoderBuffer> result(new DecoderBuffer(1));
27 result->set_timestamp(timestamp); 27 result->set_timestamp(timestamp);
28 result->set_duration(duration); 28 result->set_duration(duration);
29 return result; 29 return result;
30 } 30 }
31 31
32 static scoped_refptr<AudioBuffer> CreateDecodedBuffer(int frames) { 32 static scoped_refptr<AudioBuffer> CreateDecodedBuffer(int frames) {
33 return MakeAudioBuffer(kSampleFormatPlanarF32, 33 return MakeAudioBuffer(kSampleFormatPlanarF32, CHANNEL_LAYOUT_MONO, 1,
34 CHANNEL_LAYOUT_MONO, 34 kSampleRate, 0.0f, kDataStep, frames, kNoTimestamp);
35 1,
36 kSampleRate,
37 0.0f,
38 kDataStep,
39 frames,
40 kNoTimestamp());
41 } 35 }
42 36
43 static float ExtractDecodedData(const scoped_refptr<AudioBuffer>& buffer, 37 static float ExtractDecodedData(const scoped_refptr<AudioBuffer>& buffer,
44 int index) { 38 int index) {
45 // This is really inefficient, but we can't access the raw AudioBuffer if any 39 // This is really inefficient, but we can't access the raw AudioBuffer if any
46 // start trimming has been applied. 40 // start trimming has been applied.
47 std::unique_ptr<AudioBus> temp_bus = 41 std::unique_ptr<AudioBus> temp_bus =
48 AudioBus::Create(buffer->channel_count(), 1); 42 AudioBus::Create(buffer->channel_count(), 1);
49 buffer->ReadFrames(1, index, 0, temp_bus.get()); 43 buffer->ReadFrames(1, index, 0, temp_bus.get());
50 return temp_bus->channel(0)[0]; 44 return temp_bus->channel(0)[0];
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 ASSERT_FALSE(discard_helper.initialized()); 455 ASSERT_FALSE(discard_helper.initialized());
462 456
463 const base::TimeDelta kTimestamp = base::TimeDelta(); 457 const base::TimeDelta kTimestamp = base::TimeDelta();
464 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10); 458 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
465 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration); 459 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
466 discard_helper.Reset(0); 460 discard_helper.Reset(0);
467 461
468 scoped_refptr<DecoderBuffer> encoded_buffer = 462 scoped_refptr<DecoderBuffer> encoded_buffer =
469 CreateEncodedBuffer(kTimestamp, kDuration); 463 CreateEncodedBuffer(kTimestamp, kDuration);
470 encoded_buffer->set_discard_padding( 464 encoded_buffer->set_discard_padding(
471 std::make_pair(kInfiniteDuration(), base::TimeDelta())); 465 std::make_pair(kInfiniteDuration, base::TimeDelta()));
472 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames); 466 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames);
473 467
474 // Verify all of the first buffer is discarded. 468 // Verify all of the first buffer is discarded.
475 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer)); 469 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer));
476 ASSERT_TRUE(discard_helper.initialized()); 470 ASSERT_TRUE(discard_helper.initialized());
477 encoded_buffer->set_timestamp(kTimestamp + kDuration); 471 encoded_buffer->set_timestamp(kTimestamp + kDuration);
478 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding()); 472 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding());
479 473
480 // Verify a second buffer goes through untouched. 474 // Verify a second buffer goes through untouched.
481 decoded_buffer = CreateDecodedBuffer(kTestFrames / 2); 475 decoded_buffer = CreateDecodedBuffer(kTestFrames / 2);
482 ASSERT_TRUE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer)); 476 ASSERT_TRUE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer));
483 EXPECT_EQ(kTimestamp, decoded_buffer->timestamp()); 477 EXPECT_EQ(kTimestamp, decoded_buffer->timestamp());
484 EXPECT_EQ(kDuration / 2, decoded_buffer->duration()); 478 EXPECT_EQ(kDuration / 2, decoded_buffer->duration());
485 EXPECT_EQ(kTestFrames / 2, decoded_buffer->frame_count()); 479 EXPECT_EQ(kTestFrames / 2, decoded_buffer->frame_count());
486 ASSERT_FLOAT_EQ(0.0f, ExtractDecodedData(decoded_buffer, 0)); 480 ASSERT_FLOAT_EQ(0.0f, ExtractDecodedData(decoded_buffer, 0));
487 } 481 }
488 482
489 TEST(AudioDiscardHelperTest, CompleteDiscardWithDelayedDiscard) { 483 TEST(AudioDiscardHelperTest, CompleteDiscardWithDelayedDiscard) {
490 AudioDiscardHelper discard_helper(kSampleRate, 0); 484 AudioDiscardHelper discard_helper(kSampleRate, 0);
491 ASSERT_FALSE(discard_helper.initialized()); 485 ASSERT_FALSE(discard_helper.initialized());
492 486
493 const base::TimeDelta kTimestamp = base::TimeDelta(); 487 const base::TimeDelta kTimestamp = base::TimeDelta();
494 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10); 488 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
495 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration); 489 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
496 discard_helper.Reset(0); 490 discard_helper.Reset(0);
497 491
498 scoped_refptr<DecoderBuffer> encoded_buffer = 492 scoped_refptr<DecoderBuffer> encoded_buffer =
499 CreateEncodedBuffer(kTimestamp, kDuration); 493 CreateEncodedBuffer(kTimestamp, kDuration);
500 encoded_buffer->set_discard_padding( 494 encoded_buffer->set_discard_padding(
501 std::make_pair(kInfiniteDuration(), base::TimeDelta())); 495 std::make_pair(kInfiniteDuration, base::TimeDelta()));
502 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames); 496 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames);
503 497
504 // Setup a delayed discard. 498 // Setup a delayed discard.
505 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, NULL)); 499 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, NULL));
506 ASSERT_TRUE(discard_helper.initialized()); 500 ASSERT_TRUE(discard_helper.initialized());
507 501
508 // Verify the first output buffer is dropped. 502 // Verify the first output buffer is dropped.
509 encoded_buffer->set_timestamp(kTimestamp + kDuration); 503 encoded_buffer->set_timestamp(kTimestamp + kDuration);
510 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding()); 504 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding());
511 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer)); 505 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer));
(...skipping 15 matching lines...) Expand all
527 ASSERT_FALSE(discard_helper.initialized()); 521 ASSERT_FALSE(discard_helper.initialized());
528 discard_helper.Reset(kDecoderDelay); 522 discard_helper.Reset(kDecoderDelay);
529 523
530 const base::TimeDelta kTimestamp = base::TimeDelta(); 524 const base::TimeDelta kTimestamp = base::TimeDelta();
531 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10); 525 const base::TimeDelta kDuration = base::TimeDelta::FromMilliseconds(10);
532 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration); 526 const int kTestFrames = discard_helper.TimeDeltaToFrames(kDuration);
533 527
534 scoped_refptr<DecoderBuffer> encoded_buffer = 528 scoped_refptr<DecoderBuffer> encoded_buffer =
535 CreateEncodedBuffer(kTimestamp, kDuration); 529 CreateEncodedBuffer(kTimestamp, kDuration);
536 encoded_buffer->set_discard_padding( 530 encoded_buffer->set_discard_padding(
537 std::make_pair(kInfiniteDuration(), base::TimeDelta())); 531 std::make_pair(kInfiniteDuration, base::TimeDelta()));
538 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames); 532 scoped_refptr<AudioBuffer> decoded_buffer = CreateDecodedBuffer(kTestFrames);
539 533
540 // Verify all of the first buffer is discarded. 534 // Verify all of the first buffer is discarded.
541 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer)); 535 ASSERT_FALSE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer));
542 ASSERT_TRUE(discard_helper.initialized()); 536 ASSERT_TRUE(discard_helper.initialized());
543 encoded_buffer->set_timestamp(kTimestamp + kDuration); 537 encoded_buffer->set_timestamp(kTimestamp + kDuration);
544 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding()); 538 encoded_buffer->set_discard_padding(DecoderBuffer::DiscardPadding());
545 539
546 // Verify 5ms off the front of the second buffer is discarded. 540 // Verify 5ms off the front of the second buffer is discarded.
547 decoded_buffer = CreateDecodedBuffer(kTestFrames * 2); 541 decoded_buffer = CreateDecodedBuffer(kTestFrames * 2);
548 ASSERT_TRUE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer)); 542 ASSERT_TRUE(discard_helper.ProcessBuffers(encoded_buffer, decoded_buffer));
549 EXPECT_EQ(kTimestamp, decoded_buffer->timestamp()); 543 EXPECT_EQ(kTimestamp, decoded_buffer->timestamp());
550 EXPECT_EQ(kDuration * 2 - kDuration / 2, decoded_buffer->duration()); 544 EXPECT_EQ(kDuration * 2 - kDuration / 2, decoded_buffer->duration());
551 EXPECT_EQ(kTestFrames * 2 - kDecoderDelay, decoded_buffer->frame_count()); 545 EXPECT_EQ(kTestFrames * 2 - kDecoderDelay, decoded_buffer->frame_count());
552 ASSERT_FLOAT_EQ(kDecoderDelay * kDataStep, 546 ASSERT_FLOAT_EQ(kDecoderDelay * kDataStep,
553 ExtractDecodedData(decoded_buffer, 0)); 547 ExtractDecodedData(decoded_buffer, 0));
554 } 548 }
555 549
556 } // namespace media 550 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698