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 3// found in the LICENSE file. 4 5#include "media/base/video_frame.h" 6#include "media/cast/test/utility/audio_utility.h" 7#include "testing/gtest/include/gtest/gtest.h" 8 9namespace media { 10namespace cast { 11namespace test { 12namespace { 13 14TEST(AudioTimestampTest, Small) { 15 std::vector<float> samples(480); 16 for (int32 in_timestamp = 0; in_timestamp < 65536; in_timestamp += 177) { 17 EncodeTimestamp(in_timestamp, 0, samples.size(), &samples.front()); 18 uint16 out_timestamp; 19 EXPECT_TRUE( 20 DecodeTimestamp(&samples.front(), samples.size(), &out_timestamp)); 21 ASSERT_EQ(in_timestamp, out_timestamp); 22 } 23} 24 25TEST(AudioTimestampTest, Negative) { 26 std::vector<float> samples(480); 27 uint16 out_timestamp; 28 EXPECT_FALSE( 29 DecodeTimestamp(&samples.front(), samples.size(), &out_timestamp)); 30} 31 32TEST(AudioTimestampTest, CheckPhase) { 33 std::vector<float> samples(4800); 34 EncodeTimestamp(4711, 0, samples.size(), &samples.front()); 35 while (samples.size() > 240) { 36 uint16 out_timestamp; 37 EXPECT_TRUE( 38 DecodeTimestamp(&samples.front(), samples.size(), &out_timestamp)); 39 ASSERT_EQ(4711, out_timestamp); 40 41 samples.erase(samples.begin(), samples.begin() + 73); 42 } 43} 44 45} // namespace 46} // namespace test 47} // namespace cast 48} // namespace media 49