1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
media / base / android / media_codec_util_unittest.cc [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "media/base/android/media_codec_util.h"
#include "base/android/build_info.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace media {
// These will come from mockable BuildInfo, once it exists.
using base::android::SDK_VERSION_NOUGAT;
using base::android::SDK_VERSION_NOUGAT_MR1;
class MediaCodecUtilTest : public testing::Test {
public:
MediaCodecUtilTest() {}
MediaCodecUtilTest(const MediaCodecUtilTest&) = delete;
MediaCodecUtilTest& operator=(const MediaCodecUtilTest&) = delete;
~MediaCodecUtilTest() override {}
public:
};
TEST_F(MediaCodecUtilTest, GuessCodedSizeAlignment) {
EXPECT_EQ(std::nullopt,
MediaCodecUtil::LookupCodedSizeAlignment("c2.fake.h264.decoder"));
// Software AVC and HEVC decoders have a weird width-only alignment. This also
// serves to test versioning of the alignment list.
const gfx::Size kWeirdSoftwareAlignmentSv2(128, 2);
EXPECT_EQ(kWeirdSoftwareAlignmentSv2,
MediaCodecUtil::LookupCodedSizeAlignment(
"c2.android.avc.decoder", base::android::SDK_VERSION_Sv2));
EXPECT_EQ(kWeirdSoftwareAlignmentSv2,
MediaCodecUtil::LookupCodedSizeAlignment(
"c2.android.hevc.decoder", base::android::SDK_VERSION_Sv2));
const gfx::Size kWeirdSoftwareAlignmentNougat(64, 2);
EXPECT_EQ(kWeirdSoftwareAlignmentNougat,
MediaCodecUtil::LookupCodedSizeAlignment(
"c2.android.avc.decoder", base::android::SDK_VERSION_NOUGAT));
EXPECT_EQ(kWeirdSoftwareAlignmentNougat,
MediaCodecUtil::LookupCodedSizeAlignment(
"c2.android.hevc.decoder", base::android::SDK_VERSION_NOUGAT));
}
} // namespace media