summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/test/TestStreamDetails.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/utils/test/TestStreamDetails.cpp')
-rw-r--r--xbmc/utils/test/TestStreamDetails.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/xbmc/utils/test/TestStreamDetails.cpp b/xbmc/utils/test/TestStreamDetails.cpp
new file mode 100644
index 0000000..7842eee
--- /dev/null
+++ b/xbmc/utils/test/TestStreamDetails.cpp
@@ -0,0 +1,76 @@
1/*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#include "utils/StreamDetails.h"
10
11#include <gtest/gtest.h>
12
13TEST(TestStreamDetails, General)
14{
15 CStreamDetails a;
16 CStreamDetailVideo *video = new CStreamDetailVideo();
17 CStreamDetailAudio *audio = new CStreamDetailAudio();
18 CStreamDetailSubtitle *subtitle = new CStreamDetailSubtitle();
19
20 video->m_iWidth = 1920;
21 video->m_iHeight = 1080;
22 video->m_fAspect = 2.39f;
23 video->m_iDuration = 30;
24 video->m_strCodec = "h264";
25 video->m_strStereoMode = "left_right";
26 video->m_strLanguage = "eng";
27
28 audio->m_iChannels = 2;
29 audio->m_strCodec = "aac";
30 audio->m_strLanguage = "eng";
31
32 subtitle->m_strLanguage = "eng";
33
34 a.AddStream(video);
35 a.AddStream(audio);
36
37 EXPECT_TRUE(a.HasItems());
38
39 EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::VIDEO));
40 EXPECT_EQ(1, a.GetVideoStreamCount());
41 EXPECT_STREQ("", a.GetVideoCodec().c_str());
42 EXPECT_EQ(0.0f, a.GetVideoAspect());
43 EXPECT_EQ(0, a.GetVideoWidth());
44 EXPECT_EQ(0, a.GetVideoHeight());
45 EXPECT_EQ(0, a.GetVideoDuration());
46 EXPECT_STREQ("", a.GetStereoMode().c_str());
47
48 EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::AUDIO));
49 EXPECT_EQ(1, a.GetAudioStreamCount());
50
51 EXPECT_EQ(0, a.GetStreamCount(CStreamDetail::SUBTITLE));
52 EXPECT_EQ(0, a.GetSubtitleStreamCount());
53
54 a.AddStream(subtitle);
55 EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::SUBTITLE));
56 EXPECT_EQ(1, a.GetSubtitleStreamCount());
57
58 a.DetermineBestStreams();
59 EXPECT_STREQ("h264", a.GetVideoCodec().c_str());
60 EXPECT_EQ(2.39f, a.GetVideoAspect());
61 EXPECT_EQ(1920, a.GetVideoWidth());
62 EXPECT_EQ(1080, a.GetVideoHeight());
63 EXPECT_EQ(30, a.GetVideoDuration());
64 EXPECT_STREQ("left_right", a.GetStereoMode().c_str());
65}
66
67TEST(TestStreamDetails, VideoDimsToResolutionDescription)
68{
69 EXPECT_STREQ("1080",
70 CStreamDetails::VideoDimsToResolutionDescription(1920, 1080).c_str());
71}
72
73TEST(TestStreamDetails, VideoAspectToAspectDescription)
74{
75 EXPECT_STREQ("2.40", CStreamDetails::VideoAspectToAspectDescription(2.39f).c_str());
76}