/* * 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 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()); }