summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/test/TestBitstreamStats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/utils/test/TestBitstreamStats.cpp')
-rw-r--r--xbmc/utils/test/TestBitstreamStats.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/xbmc/utils/test/TestBitstreamStats.cpp b/xbmc/utils/test/TestBitstreamStats.cpp
new file mode 100644
index 0000000..69e4c88
--- /dev/null
+++ b/xbmc/utils/test/TestBitstreamStats.cpp
@@ -0,0 +1,58 @@
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 "threads/Thread.h"
10#include "utils/BitstreamStats.h"
11
12#include <gtest/gtest.h>
13
14#define BITS (256 * 8)
15#define BYTES (256)
16
17class CTestBitstreamStatsThread : public CThread
18{
19public:
20 CTestBitstreamStatsThread() :
21 CThread("TestBitstreamStats"){}
22
23};
24
25TEST(TestBitstreamStats, General)
26{
27 int i;
28 BitstreamStats a;
29 CTestBitstreamStatsThread t;
30
31 i = 0;
32 a.Start();
33 EXPECT_EQ(0.0, a.GetBitrate());
34 EXPECT_EQ(0.0, a.GetMaxBitrate());
35 EXPECT_EQ(-1.0, a.GetMinBitrate());
36 while (i <= BITS)
37 {
38 a.AddSampleBits(1);
39 i++;
40 t.Sleep(1);
41 }
42 a.CalculateBitrate();
43 EXPECT_GT(a.GetBitrate(), 0.0);
44 EXPECT_GT(a.GetMaxBitrate(), 0.0);
45 EXPECT_GT(a.GetMinBitrate(), 0.0);
46
47 i = 0;
48 while (i <= BYTES)
49 {
50 a.AddSampleBytes(1);
51 t.Sleep(2);
52 i++;
53 }
54 a.CalculateBitrate();
55 EXPECT_GT(a.GetBitrate(), 0.0);
56 EXPECT_GT(a.GetMaxBitrate(), 0.0);
57 EXPECT_LE(a.GetMinBitrate(), a.GetMaxBitrate());
58}