summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/test/TestStreamDetails.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/utils/test/TestStreamDetails.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "utils/StreamDetails.h"
+
+#include <gtest/gtest.h>
+
+TEST(TestStreamDetails, General)
+{
+ CStreamDetails a;
+ CStreamDetailVideo *video = new CStreamDetailVideo();
+ CStreamDetailAudio *audio = new CStreamDetailAudio();
+ CStreamDetailSubtitle *subtitle = new CStreamDetailSubtitle();
+
+ video->m_iWidth = 1920;
+ video->m_iHeight = 1080;
+ video->m_fAspect = 2.39f;
+ video->m_iDuration = 30;
+ video->m_strCodec = "h264";
+ video->m_strStereoMode = "left_right";
+ video->m_strLanguage = "eng";
+
+ audio->m_iChannels = 2;
+ audio->m_strCodec = "aac";
+ audio->m_strLanguage = "eng";
+
+ subtitle->m_strLanguage = "eng";
+
+ a.AddStream(video);
+ a.AddStream(audio);
+
+ EXPECT_TRUE(a.HasItems());
+
+ EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::VIDEO));
+ EXPECT_EQ(1, a.GetVideoStreamCount());
+ EXPECT_STREQ("", a.GetVideoCodec().c_str());
+ EXPECT_EQ(0.0f, a.GetVideoAspect());
+ EXPECT_EQ(0, a.GetVideoWidth());
+ EXPECT_EQ(0, a.GetVideoHeight());
+ EXPECT_EQ(0, a.GetVideoDuration());
+ EXPECT_STREQ("", a.GetStereoMode().c_str());
+
+ EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::AUDIO));
+ EXPECT_EQ(1, a.GetAudioStreamCount());
+
+ EXPECT_EQ(0, a.GetStreamCount(CStreamDetail::SUBTITLE));
+ EXPECT_EQ(0, a.GetSubtitleStreamCount());
+
+ a.AddStream(subtitle);
+ EXPECT_EQ(1, a.GetStreamCount(CStreamDetail::SUBTITLE));
+ EXPECT_EQ(1, a.GetSubtitleStreamCount());
+
+ a.DetermineBestStreams();
+ EXPECT_STREQ("h264", a.GetVideoCodec().c_str());
+ EXPECT_EQ(2.39f, a.GetVideoAspect());
+ EXPECT_EQ(1920, a.GetVideoWidth());
+ EXPECT_EQ(1080, a.GetVideoHeight());
+ EXPECT_EQ(30, a.GetVideoDuration());
+ EXPECT_STREQ("left_right", a.GetStereoMode().c_str());
+}
+
+TEST(TestStreamDetails, VideoDimsToResolutionDescription)
+{
+ EXPECT_STREQ("1080",
+ CStreamDetails::VideoDimsToResolutionDescription(1920, 1080).c_str());
+}
+
+TEST(TestStreamDetails, VideoAspectToAspectDescription)
+{
+ EXPECT_STREQ("2.40", CStreamDetails::VideoAspectToAspectDescription(2.39f).c_str());
+}