| Index: media/formats/mp4/aac_unittest.cc
|
| diff --git a/media/formats/mp4/aac_unittest.cc b/media/formats/mp4/aac_unittest.cc
|
| index df1b596873161533a10705458c7b8d6066f7ddc9..264727f38c3e7ab8f19ee999cf50d40eb0355568 100644
|
| --- a/media/formats/mp4/aac_unittest.cc
|
| +++ b/media/formats/mp4/aac_unittest.cc
|
| @@ -2,20 +2,33 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include <string>
|
| +
|
| +#include "media/base/mock_media_log.h"
|
| #include "media/formats/mp4/aac.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
|
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| +using ::testing::InSequence;
|
| +using ::testing::StrictMock;
|
|
|
| namespace media {
|
|
|
| namespace mp4 {
|
|
|
| +MATCHER_P(AudioCodecLog, codec_string, "") {
|
| + return CONTAINS_STRING(arg, "Audio codec: " + std::string(codec_string));
|
| +}
|
| +
|
| class AACTest : public testing::Test {
|
| public:
|
| + AACTest() : media_log_(new StrictMock<MockMediaLog>()) {}
|
| +
|
| bool Parse(const std::vector<uint8>& data) {
|
| - return aac_.Parse(data, new MediaLog());
|
| + return aac_.Parse(data, media_log_);
|
| }
|
|
|
| + scoped_refptr<StrictMock<MockMediaLog>> media_log_;
|
| AAC aac_;
|
| };
|
|
|
| @@ -24,6 +37,8 @@
|
| std::vector<uint8> data;
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
| +
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2"));
|
|
|
| EXPECT_TRUE(Parse(data));
|
| EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 44100);
|
| @@ -35,6 +50,8 @@
|
| std::vector<uint8> data;
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
| +
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2"));
|
|
|
| EXPECT_TRUE(Parse(data));
|
| EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 48000);
|
| @@ -51,6 +68,8 @@
|
| std::vector<uint8> data;
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
| +
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2"));
|
|
|
| EXPECT_TRUE(Parse(data));
|
|
|
| @@ -70,6 +89,8 @@
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
|
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2"));
|
| +
|
| EXPECT_TRUE(Parse(data));
|
|
|
| // Test w/o implict SBR.
|
| @@ -87,6 +108,8 @@
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
|
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2"));
|
| +
|
| EXPECT_TRUE(Parse(data));
|
| EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 48000);
|
| EXPECT_EQ(aac_.GetChannelLayout(false), CHANNEL_LAYOUT_5_1_BACK);
|
| @@ -102,17 +125,22 @@
|
| }
|
|
|
| TEST_F(AACTest, IncorrectProfileTest) {
|
| + InSequence s;
|
| uint8 buffer[] = {0x0, 0x08};
|
| std::vector<uint8> data;
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
|
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.0"));
|
| EXPECT_FALSE(Parse(data));
|
|
|
| data[0] = 0x08;
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1"));
|
| EXPECT_TRUE(Parse(data));
|
|
|
| data[0] = 0x28;
|
| + // No media log for this profile 5, since not enough bits are in |data| to
|
| + // first parse profile 5's extension frequency index.
|
| EXPECT_FALSE(Parse(data));
|
| }
|
|
|
| @@ -126,6 +154,7 @@
|
|
|
| data[0] = 0x0e;
|
| data[1] = 0x08;
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1"));
|
| EXPECT_TRUE(Parse(data));
|
| }
|
|
|
| @@ -134,6 +163,8 @@
|
| std::vector<uint8> data;
|
|
|
| data.assign(buffer, buffer + sizeof(buffer));
|
| +
|
| + EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1")).Times(2);
|
|
|
| EXPECT_FALSE(Parse(data));
|
|
|
|
|