1
2from PyObjCTools.TestSupport import *
3from Quartz import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10
11try:
12    long
13except NameError:
14    long = int
15class TestCVPixelBufferPool (TestCase):
16
17    def testTypes(self):
18        self.assertIsCFType(CVPixelBufferPoolRef)
19
20    def testContants(self):
21        self.assertIsInstance(kCVPixelBufferPoolMinimumBufferCountKey, unicode)
22        self.assertIsInstance(kCVPixelBufferPoolMaximumBufferAgeKey, unicode)
23
24    @min_os_level('10.7')
25    def testContants10_7(self):
26        self.assertIsInstance(kCVPixelBufferPoolAllocationThresholdKey, unicode)
27        self.assertIsInstance(kCVPixelBufferPoolFreeBufferNotification, unicode)
28
29    def testFunctions(self):
30        self.assertIsInstance(CVPixelBufferPoolGetTypeID(), (int, long))
31
32        self.assertArgIsCFRetained(CVPixelBufferPoolCreate, 3)
33        self.assertArgIsOut(CVPixelBufferPoolCreate, 3)
34        rv, pool = CVPixelBufferPoolCreate(None, {
35            kCVPixelBufferPoolMinimumBufferCountKey: 1,
36            kCVPixelBufferPoolMaximumBufferAgeKey: 300,
37            }, {
38                kCVPixelBufferWidthKey: 100,
39                kCVPixelBufferHeightKey: 100,
40                kCVPixelBufferPixelFormatTypeKey: kCVPixelFormatType_32ARGB,
41            }, None)
42        self.assertEqual(rv, 0)
43        self.assertIsInstance(pool, CVPixelBufferPoolRef)
44
45
46        v = CVPixelBufferPoolRetain(pool)
47        self.assertTrue(v is pool)
48        CVPixelBufferPoolRelease(pool)
49
50        v = CVPixelBufferPoolGetAttributes(pool)
51        self.assertIsInstance(v, CFDictionaryRef)
52
53        v = CVPixelBufferPoolGetPixelBufferAttributes(pool)
54        self.assertIsInstance(v, CFDictionaryRef)
55
56        self.assertArgIsOut(CVPixelBufferPoolCreatePixelBuffer, 2)
57        rv, image = CVPixelBufferPoolCreatePixelBuffer(None, pool, None)
58        self.assertEqual(rv, 0)
59        self.assertIsInstance(image, CVPixelBufferRef)
60
61    @min_os_level('10.7')
62    def testFunctions10_7(self):
63        self.assertArgIsOut(CVPixelBufferPoolCreatePixelBufferWithAuxAttributes, 3)
64        self.assertArgIsCFRetained(CVPixelBufferPoolCreatePixelBufferWithAuxAttributes, 3)
65
66
67if __name__ == "__main__":
68    main()
69