module AI.CV.OpenCV.Video
where
import Foreign
import Foreign.C
import AI.CV.OpenCV.CxCore
data Priv_CvVideoWriter
type CvVideoWriter = Ptr Priv_CvVideoWriter
foreign import ccall unsafe "HOpenCV_wrap.h wrap_cvCreateVideoWriter"
wrap_cvCreateVideoWriter :: CString -> CInt -> CDouble -> CInt -> CInt -> IO (Ptr Priv_CvVideoWriter)
type FourCC = String
createVideoWriter :: String -> FourCC -> Double -> CvSize -> IO CvVideoWriter
createVideoWriter file fourCC fps size
= withCString file $ \f ->
wrap_cvCreateVideoWriter f (toCInt fourCC) (realToFrac fps) (sizeWidth size) (sizeHeight size)
where
toCInt = fromIntegral . sum . map fromEnum
foreign import ccall unsafe "highgui.h cvReleaseVideoWriter"
releaseVideoWriter :: CvVideoWriter -> IO ()
foreign import ccall unsafe "highgui.h cvWriteFrame"
cvWriteFrame :: CvVideoWriter -> Ptr IplImage -> IO CInt
writeFrame :: CvVideoWriter -> Ptr IplImage -> IO Int
writeFrame vw im
= do i <- cvWriteFrame vw im
return $ fromIntegral i