1from PyObjCTools.TestSupport import *
2from Quartz import *
3
4try:
5    long
6except NameError:
7    long = int
8
9class TestCVBase (TestCase):
10    def testStructs(self):
11        v = CVSMPTETime()
12        self.assertIsInstance(v.subframes, (int, long))
13        self.assertIsInstance(v.subframeDivisor, (int, long))
14        self.assertIsInstance(v.counter, (int, long))
15        self.assertIsInstance(v.type, (int, long))
16        self.assertIsInstance(v.flags, (int, long))
17        self.assertIsInstance(v.hours, (int, long))
18        self.assertIsInstance(v.minutes, (int, long))
19        self.assertIsInstance(v.seconds, (int, long))
20        self.assertIsInstance(v.frames, (int, long))
21
22        v = CVTime()
23        self.assertIsInstance(v.timeValue, (int, long))
24        self.assertIsInstance(v.timeScale, (int, long))
25        self.assertIsInstance(v.flags, (int, long))
26
27        v = CVTimeStamp()
28        self.assertIsInstance(v.version, (int, long))
29        self.assertIsInstance(v.videoTimeScale, (int, long))
30        self.assertIsInstance(v.videoTime, (int, long))
31        self.assertIsInstance(v.hostTime, (int, long))
32        self.assertIsInstance(v.rateScalar, float)
33        self.assertIsInstance(v.videoRefreshPeriod, (int, long))
34        self.assertIsInstance(v.smpteTime, CVSMPTETime)
35        self.assertIsInstance(v.flags, (int, long))
36        self.assertIsInstance(v.reserved, (int, long))
37
38
39    def testConstants(self):
40        self.assertEqual(kCVSMPTETimeType24, 0)
41        self.assertEqual(kCVSMPTETimeType25, 1)
42        self.assertEqual(kCVSMPTETimeType30Drop, 2)
43        self.assertEqual(kCVSMPTETimeType30, 3)
44        self.assertEqual(kCVSMPTETimeType2997, 4)
45        self.assertEqual(kCVSMPTETimeType2997Drop, 5)
46        self.assertEqual(kCVSMPTETimeType60, 6)
47        self.assertEqual(kCVSMPTETimeType5994, 7)
48
49        self.assertEqual(kCVSMPTETimeValid, 1)
50        self.assertEqual(kCVSMPTETimeRunning, 2)
51
52        self.assertEqual(kCVTimeIsIndefinite, 1)
53
54        self.assertEqual(kCVTimeStampVideoTimeValid, 1)
55        self.assertEqual(kCVTimeStampHostTimeValid, 2)
56        self.assertEqual(kCVTimeStampSMPTETimeValid, 4)
57        self.assertEqual(kCVTimeStampVideoRefreshPeriodValid, 8)
58        self.assertEqual(kCVTimeStampRateScalarValid, 16)
59        self.assertEqual(kCVTimeStampTopField, 1<<16)
60        self.assertEqual(kCVTimeStampBottomField, 1<<17)
61
62        self.assertEqual(kCVTimeStampVideoHostTimeValid, (kCVTimeStampVideoTimeValid | kCVTimeStampHostTimeValid))
63        self.assertEqual(kCVTimeStampIsInterlaced, (kCVTimeStampTopField | kCVTimeStampBottomField))
64
65        self.assertIsInstance(kCVZeroTime, CVTime)
66        self.assertIsInstance(kCVIndefiniteTime, CVTime)
67
68
69
70if __name__ == "__main__":
71    main()
72