1
2from PyObjCTools.TestSupport import *
3from Quartz import *
4
5class TestCVPixelBufferPool (TestCase):
6
7    def testTypes(self):
8        self.assertIsCFType(CVPixelBufferPoolRef)
9
10    def testContants(self):
11        self.assertIsInstance(kCVPixelBufferPoolMinimumBufferCountKey, unicode)
12        self.assertIsInstance(kCVPixelBufferPoolMaximumBufferAgeKey, unicode)
13
14    def testFunctions(self):
15        self.assertIsInstance(CVPixelBufferPoolGetTypeID(), (int, long))
16
17        self.assertArgIsCFRetained(CVPixelBufferPoolCreate, 3)
18        self.assertArgIsOut(CVPixelBufferPoolCreate, 3)
19        rv, pool = CVPixelBufferPoolCreate(None, {
20            kCVPixelBufferPoolMinimumBufferCountKey: 1,
21            kCVPixelBufferPoolMaximumBufferAgeKey: 300,
22            }, {
23                kCVPixelBufferWidthKey: 100,
24                kCVPixelBufferHeightKey: 100,
25                kCVPixelBufferPixelFormatTypeKey: kCVPixelFormatType_32ARGB,
26            }, None)
27        self.assertEqual(rv, 0)
28        self.assertIsInstance(pool, CVPixelBufferPoolRef)
29
30
31        v = CVPixelBufferPoolRetain(pool)
32        self.assertTrue(v is pool)
33        CVPixelBufferPoolRelease(pool)
34
35        v = CVPixelBufferPoolGetAttributes(pool)
36        self.assertIsInstance(v, CFDictionaryRef)
37
38        v = CVPixelBufferPoolGetPixelBufferAttributes(pool)
39        self.assertIsInstance(v, CFDictionaryRef)
40
41        self.assertArgIsOut(CVPixelBufferPoolCreatePixelBuffer, 2)
42        rv, image = CVPixelBufferPoolCreatePixelBuffer(None, pool, None)
43        self.assertEqual(rv, 0)
44        self.assertIsInstance(image, CVPixelBufferRef)
45
46
47
48if __name__ == "__main__":
49    main()
50