-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathvideo-io.lisp
36 lines (25 loc) · 907 Bytes
/
video-io.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(in-package #:cv)
(define-cfun ("cvCreateFileCapture" create-file-capture) :pointer
(filename :string))
(define-cfun ("cvCreateCameraCapture" create-camera-capture) :pointer
(index :int))
(define-cfun ("cvGrabFrame" grab-frame) :int
(capture :int))
(define-cfun ("cvRetrieveFrame" retrieve-frame) :pointer
(capture :pointer)
(stream-idx :int 0))
(define-cfun ("cvQueryFrame" query-frame) :pointer
(capture :pointer))
(cffi:defcfun ("cvReleaseCapture" %release-capture) :void
(capture :pointer))
(defun release-capture (capture)
(cffi:with-foreign-object (ptr :pointer)
(setf (cffi:mem-ref ptr :pointer) capture)
(%release-capture ptr)))
(define-cfun ("cvGetCaptureProperty" get-capture-property) :double
(capture :pointer)
(property-id :int))
(define-cfun ("cvSetCaptureProperty" set-capture-property) :int
(capture :pointer)
(property-id :int)
(value :double))