{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.GstVideo.Structs.VideoFrame
(
VideoFrame(..) ,
newZeroVideoFrame ,
noVideoFrame ,
#if defined(ENABLE_OVERLOADING)
ResolveVideoFrameMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
VideoFrameCopyMethodInfo ,
#endif
videoFrameCopy ,
#if defined(ENABLE_OVERLOADING)
VideoFrameCopyPlaneMethodInfo ,
#endif
videoFrameCopyPlane ,
#if defined(ENABLE_OVERLOADING)
VideoFrameMapMethodInfo ,
#endif
videoFrameMap ,
#if defined(ENABLE_OVERLOADING)
VideoFrameMapIdMethodInfo ,
#endif
videoFrameMapId ,
#if defined(ENABLE_OVERLOADING)
VideoFrameUnmapMethodInfo ,
#endif
videoFrameUnmap ,
clearVideoFrameBuffer ,
getVideoFrameBuffer ,
setVideoFrameBuffer ,
#if defined(ENABLE_OVERLOADING)
videoFrame_buffer ,
#endif
getVideoFrameFlags ,
setVideoFrameFlags ,
#if defined(ENABLE_OVERLOADING)
videoFrame_flags ,
#endif
getVideoFrameId ,
setVideoFrameId ,
#if defined(ENABLE_OVERLOADING)
videoFrame_id ,
#endif
getVideoFrameInfo ,
#if defined(ENABLE_OVERLOADING)
videoFrame_info ,
#endif
clearVideoFrameMeta ,
getVideoFrameMeta ,
setVideoFrameMeta ,
#if defined(ENABLE_OVERLOADING)
videoFrame_meta ,
#endif
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.Gst.Flags as Gst.Flags
import qualified GI.Gst.Structs.Buffer as Gst.Buffer
import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags
import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoInfo as GstVideo.VideoInfo
newtype VideoFrame = VideoFrame (ManagedPtr VideoFrame)
deriving (VideoFrame -> VideoFrame -> Bool
(VideoFrame -> VideoFrame -> Bool)
-> (VideoFrame -> VideoFrame -> Bool) -> Eq VideoFrame
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VideoFrame -> VideoFrame -> Bool
$c/= :: VideoFrame -> VideoFrame -> Bool
== :: VideoFrame -> VideoFrame -> Bool
$c== :: VideoFrame -> VideoFrame -> Bool
Eq)
instance WrappedPtr VideoFrame where
wrappedPtrCalloc :: IO (Ptr VideoFrame)
wrappedPtrCalloc = Int -> IO (Ptr VideoFrame)
forall a. Int -> IO (Ptr a)
callocBytes 632
wrappedPtrCopy :: VideoFrame -> IO VideoFrame
wrappedPtrCopy = \p :: VideoFrame
p -> VideoFrame -> (Ptr VideoFrame -> IO VideoFrame) -> IO VideoFrame
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
p (Int -> Ptr VideoFrame -> IO (Ptr VideoFrame)
forall a. WrappedPtr a => Int -> Ptr a -> IO (Ptr a)
copyBytes 632 (Ptr VideoFrame -> IO (Ptr VideoFrame))
-> (Ptr VideoFrame -> IO VideoFrame)
-> Ptr VideoFrame
-> IO VideoFrame
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr VideoFrame -> VideoFrame)
-> Ptr VideoFrame -> IO VideoFrame
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr VideoFrame -> VideoFrame
VideoFrame)
wrappedPtrFree :: Maybe (GDestroyNotify VideoFrame)
wrappedPtrFree = GDestroyNotify VideoFrame -> Maybe (GDestroyNotify VideoFrame)
forall a. a -> Maybe a
Just GDestroyNotify VideoFrame
forall a. FunPtr (Ptr a -> IO ())
ptr_to_g_free
newZeroVideoFrame :: MonadIO m => m VideoFrame
newZeroVideoFrame :: m VideoFrame
newZeroVideoFrame = IO VideoFrame -> m VideoFrame
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoFrame -> m VideoFrame) -> IO VideoFrame -> m VideoFrame
forall a b. (a -> b) -> a -> b
$ IO (Ptr VideoFrame)
forall a. WrappedPtr a => IO (Ptr a)
wrappedPtrCalloc IO (Ptr VideoFrame)
-> (Ptr VideoFrame -> IO VideoFrame) -> IO VideoFrame
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr VideoFrame -> VideoFrame)
-> Ptr VideoFrame -> IO VideoFrame
forall a.
(HasCallStack, WrappedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr VideoFrame -> VideoFrame
VideoFrame
instance tag ~ 'AttrSet => Constructible VideoFrame tag where
new :: (ManagedPtr VideoFrame -> VideoFrame)
-> [AttrOp VideoFrame tag] -> m VideoFrame
new _ attrs :: [AttrOp VideoFrame tag]
attrs = do
VideoFrame
o <- m VideoFrame
forall (m :: * -> *). MonadIO m => m VideoFrame
newZeroVideoFrame
VideoFrame -> [AttrOp VideoFrame 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set VideoFrame
o [AttrOp VideoFrame tag]
[AttrOp VideoFrame 'AttrSet]
attrs
VideoFrame -> m VideoFrame
forall (m :: * -> *) a. Monad m => a -> m a
return VideoFrame
o
noVideoFrame :: Maybe VideoFrame
noVideoFrame :: Maybe VideoFrame
noVideoFrame = Maybe VideoFrame
forall a. Maybe a
Nothing
getVideoFrameInfo :: MonadIO m => VideoFrame -> m GstVideo.VideoInfo.VideoInfo
getVideoFrameInfo :: VideoFrame -> m VideoInfo
getVideoFrameInfo s :: VideoFrame
s = IO VideoInfo -> m VideoInfo
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoInfo -> m VideoInfo) -> IO VideoInfo -> m VideoInfo
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO VideoInfo) -> IO VideoInfo
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO VideoInfo) -> IO VideoInfo)
-> (Ptr VideoFrame -> IO VideoInfo) -> IO VideoInfo
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
let val :: Ptr VideoInfo
val = Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr VideoInfo
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: (Ptr GstVideo.VideoInfo.VideoInfo)
VideoInfo
val' <- ((ManagedPtr VideoInfo -> VideoInfo)
-> Ptr VideoInfo -> IO VideoInfo
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr VideoInfo -> VideoInfo
GstVideo.VideoInfo.VideoInfo) Ptr VideoInfo
val
VideoInfo -> IO VideoInfo
forall (m :: * -> *) a. Monad m => a -> m a
return VideoInfo
val'
#if defined(ENABLE_OVERLOADING)
data VideoFrameInfoFieldInfo
instance AttrInfo VideoFrameInfoFieldInfo where
type AttrBaseTypeConstraint VideoFrameInfoFieldInfo = (~) VideoFrame
type AttrAllowedOps VideoFrameInfoFieldInfo = '[ 'AttrGet]
type AttrSetTypeConstraint VideoFrameInfoFieldInfo = (~) (Ptr GstVideo.VideoInfo.VideoInfo)
type AttrTransferTypeConstraint VideoFrameInfoFieldInfo = (~)(Ptr GstVideo.VideoInfo.VideoInfo)
type AttrTransferType VideoFrameInfoFieldInfo = (Ptr GstVideo.VideoInfo.VideoInfo)
type AttrGetType VideoFrameInfoFieldInfo = GstVideo.VideoInfo.VideoInfo
type AttrLabel VideoFrameInfoFieldInfo = "info"
type AttrOrigin VideoFrameInfoFieldInfo = VideoFrame
attrGet = getVideoFrameInfo
attrSet = undefined
attrConstruct = undefined
attrClear = undefined
attrTransfer = undefined
videoFrame_info :: AttrLabelProxy "info"
videoFrame_info = AttrLabelProxy
#endif
getVideoFrameFlags :: MonadIO m => VideoFrame -> m [GstVideo.Flags.VideoFrameFlags]
getVideoFrameFlags :: VideoFrame -> m [VideoFrameFlags]
getVideoFrameFlags s :: VideoFrame
s = IO [VideoFrameFlags] -> m [VideoFrameFlags]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [VideoFrameFlags] -> m [VideoFrameFlags])
-> IO [VideoFrameFlags] -> m [VideoFrameFlags]
forall a b. (a -> b) -> a -> b
$ VideoFrame
-> (Ptr VideoFrame -> IO [VideoFrameFlags]) -> IO [VideoFrameFlags]
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO [VideoFrameFlags]) -> IO [VideoFrameFlags])
-> (Ptr VideoFrame -> IO [VideoFrameFlags]) -> IO [VideoFrameFlags]
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
CUInt
val <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 120) :: IO CUInt
let val' :: [VideoFrameFlags]
val' = CUInt -> [VideoFrameFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
val
[VideoFrameFlags] -> IO [VideoFrameFlags]
forall (m :: * -> *) a. Monad m => a -> m a
return [VideoFrameFlags]
val'
setVideoFrameFlags :: MonadIO m => VideoFrame -> [GstVideo.Flags.VideoFrameFlags] -> m ()
setVideoFrameFlags :: VideoFrame -> [VideoFrameFlags] -> m ()
setVideoFrameFlags s :: VideoFrame
s val :: [VideoFrameFlags]
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
let val' :: CUInt
val' = [VideoFrameFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [VideoFrameFlags]
val
Ptr CUInt -> CUInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr CUInt
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 120) (CUInt
val' :: CUInt)
#if defined(ENABLE_OVERLOADING)
data VideoFrameFlagsFieldInfo
instance AttrInfo VideoFrameFlagsFieldInfo where
type AttrBaseTypeConstraint VideoFrameFlagsFieldInfo = (~) VideoFrame
type AttrAllowedOps VideoFrameFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoFrameFlagsFieldInfo = (~) [GstVideo.Flags.VideoFrameFlags]
type AttrTransferTypeConstraint VideoFrameFlagsFieldInfo = (~)[GstVideo.Flags.VideoFrameFlags]
type AttrTransferType VideoFrameFlagsFieldInfo = [GstVideo.Flags.VideoFrameFlags]
type AttrGetType VideoFrameFlagsFieldInfo = [GstVideo.Flags.VideoFrameFlags]
type AttrLabel VideoFrameFlagsFieldInfo = "flags"
type AttrOrigin VideoFrameFlagsFieldInfo = VideoFrame
attrGet = getVideoFrameFlags
attrSet = setVideoFrameFlags
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
videoFrame_flags :: AttrLabelProxy "flags"
videoFrame_flags = AttrLabelProxy
#endif
getVideoFrameBuffer :: MonadIO m => VideoFrame -> m (Maybe Gst.Buffer.Buffer)
getVideoFrameBuffer :: VideoFrame -> m (Maybe Buffer)
getVideoFrameBuffer s :: VideoFrame
s = IO (Maybe Buffer) -> m (Maybe Buffer)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Buffer) -> m (Maybe Buffer))
-> IO (Maybe Buffer) -> m (Maybe Buffer)
forall a b. (a -> b) -> a -> b
$ VideoFrame
-> (Ptr VideoFrame -> IO (Maybe Buffer)) -> IO (Maybe Buffer)
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO (Maybe Buffer)) -> IO (Maybe Buffer))
-> (Ptr VideoFrame -> IO (Maybe Buffer)) -> IO (Maybe Buffer)
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr Buffer
val <- Ptr (Ptr Buffer) -> IO (Ptr Buffer)
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr Buffer)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) :: IO (Ptr Gst.Buffer.Buffer)
Maybe Buffer
result <- Ptr Buffer -> (Ptr Buffer -> IO Buffer) -> IO (Maybe Buffer)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr Buffer
val ((Ptr Buffer -> IO Buffer) -> IO (Maybe Buffer))
-> (Ptr Buffer -> IO Buffer) -> IO (Maybe Buffer)
forall a b. (a -> b) -> a -> b
$ \val' :: Ptr Buffer
val' -> do
Buffer
val'' <- ((ManagedPtr Buffer -> Buffer) -> Ptr Buffer -> IO Buffer
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Buffer -> Buffer
Gst.Buffer.Buffer) Ptr Buffer
val'
Buffer -> IO Buffer
forall (m :: * -> *) a. Monad m => a -> m a
return Buffer
val''
Maybe Buffer -> IO (Maybe Buffer)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Buffer
result
setVideoFrameBuffer :: MonadIO m => VideoFrame -> Ptr Gst.Buffer.Buffer -> m ()
setVideoFrameBuffer :: VideoFrame -> Ptr Buffer -> m ()
setVideoFrameBuffer s :: VideoFrame
s val :: Ptr Buffer
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr (Ptr Buffer) -> Ptr Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr Buffer)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) (Ptr Buffer
val :: Ptr Gst.Buffer.Buffer)
clearVideoFrameBuffer :: MonadIO m => VideoFrame -> m ()
clearVideoFrameBuffer :: VideoFrame -> m ()
clearVideoFrameBuffer s :: VideoFrame
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr (Ptr Buffer) -> Ptr Buffer -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr Buffer)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 128) (Ptr Buffer
forall a. Ptr a
FP.nullPtr :: Ptr Gst.Buffer.Buffer)
#if defined(ENABLE_OVERLOADING)
data VideoFrameBufferFieldInfo
instance AttrInfo VideoFrameBufferFieldInfo where
type AttrBaseTypeConstraint VideoFrameBufferFieldInfo = (~) VideoFrame
type AttrAllowedOps VideoFrameBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint VideoFrameBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)
type AttrTransferTypeConstraint VideoFrameBufferFieldInfo = (~)(Ptr Gst.Buffer.Buffer)
type AttrTransferType VideoFrameBufferFieldInfo = (Ptr Gst.Buffer.Buffer)
type AttrGetType VideoFrameBufferFieldInfo = Maybe Gst.Buffer.Buffer
type AttrLabel VideoFrameBufferFieldInfo = "buffer"
type AttrOrigin VideoFrameBufferFieldInfo = VideoFrame
attrGet = getVideoFrameBuffer
attrSet = setVideoFrameBuffer
attrConstruct = undefined
attrClear = clearVideoFrameBuffer
attrTransfer _ v = do
return v
videoFrame_buffer :: AttrLabelProxy "buffer"
videoFrame_buffer = AttrLabelProxy
#endif
getVideoFrameMeta :: MonadIO m => VideoFrame -> m (Ptr ())
getVideoFrameMeta :: VideoFrame -> m (Ptr ())
getVideoFrameMeta s :: VideoFrame
s = IO (Ptr ()) -> m (Ptr ())
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO (Ptr ())) -> IO (Ptr ())
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr VideoFrame -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr ()
val <- Ptr (Ptr ()) -> IO (Ptr ())
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) :: IO (Ptr ())
Ptr () -> IO (Ptr ())
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ()
val
setVideoFrameMeta :: MonadIO m => VideoFrame -> Ptr () -> m ()
setVideoFrameMeta :: VideoFrame -> Ptr () -> m ()
setVideoFrameMeta s :: VideoFrame
s val :: Ptr ()
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) (Ptr ()
val :: Ptr ())
clearVideoFrameMeta :: MonadIO m => VideoFrame -> m ()
clearVideoFrameMeta :: VideoFrame -> m ()
clearVideoFrameMeta s :: VideoFrame
s = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 136) (Ptr ()
forall a. Ptr a
FP.nullPtr :: Ptr ())
#if defined(ENABLE_OVERLOADING)
data VideoFrameMetaFieldInfo
instance AttrInfo VideoFrameMetaFieldInfo where
type AttrBaseTypeConstraint VideoFrameMetaFieldInfo = (~) VideoFrame
type AttrAllowedOps VideoFrameMetaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint VideoFrameMetaFieldInfo = (~) (Ptr ())
type AttrTransferTypeConstraint VideoFrameMetaFieldInfo = (~)(Ptr ())
type AttrTransferType VideoFrameMetaFieldInfo = (Ptr ())
type AttrGetType VideoFrameMetaFieldInfo = Ptr ()
type AttrLabel VideoFrameMetaFieldInfo = "meta"
type AttrOrigin VideoFrameMetaFieldInfo = VideoFrame
attrGet = getVideoFrameMeta
attrSet = setVideoFrameMeta
attrConstruct = undefined
attrClear = clearVideoFrameMeta
attrTransfer _ v = do
return v
videoFrame_meta :: AttrLabelProxy "meta"
videoFrame_meta = AttrLabelProxy
#endif
getVideoFrameId :: MonadIO m => VideoFrame -> m Int32
getVideoFrameId :: VideoFrame -> m Int32
getVideoFrameId s :: VideoFrame
s = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO Int32) -> IO Int32
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO Int32) -> IO Int32)
-> (Ptr VideoFrame -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Int32
val <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 144) :: IO Int32
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setVideoFrameId :: MonadIO m => VideoFrame -> Int32 -> m ()
setVideoFrameId :: VideoFrame -> Int32 -> m ()
setVideoFrameId s :: VideoFrame
s val :: Int32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoFrame -> (Ptr VideoFrame -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoFrame
s ((Ptr VideoFrame -> IO ()) -> IO ())
-> (Ptr VideoFrame -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \ptr :: Ptr VideoFrame
ptr -> do
Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoFrame
ptr Ptr VideoFrame -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 144) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data VideoFrameIdFieldInfo
instance AttrInfo VideoFrameIdFieldInfo where
type AttrBaseTypeConstraint VideoFrameIdFieldInfo = (~) VideoFrame
type AttrAllowedOps VideoFrameIdFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint VideoFrameIdFieldInfo = (~) Int32
type AttrTransferTypeConstraint VideoFrameIdFieldInfo = (~)Int32
type AttrTransferType VideoFrameIdFieldInfo = Int32
type AttrGetType VideoFrameIdFieldInfo = Int32
type AttrLabel VideoFrameIdFieldInfo = "id"
type AttrOrigin VideoFrameIdFieldInfo = VideoFrame
attrGet = getVideoFrameId
attrSet = setVideoFrameId
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
videoFrame_id :: AttrLabelProxy "id"
videoFrame_id = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoFrame
type instance O.AttributeList VideoFrame = VideoFrameAttributeList
type VideoFrameAttributeList = ('[ '("info", VideoFrameInfoFieldInfo), '("flags", VideoFrameFlagsFieldInfo), '("buffer", VideoFrameBufferFieldInfo), '("meta", VideoFrameMetaFieldInfo), '("id", VideoFrameIdFieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gst_video_frame_copy" gst_video_frame_copy ::
Ptr VideoFrame ->
Ptr VideoFrame ->
IO CInt
videoFrameCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoFrame
-> VideoFrame
-> m Bool
videoFrameCopy :: VideoFrame -> VideoFrame -> m Bool
videoFrameCopy dest :: VideoFrame
dest src :: VideoFrame
src = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoFrame
dest' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
dest
Ptr VideoFrame
src' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
src
CInt
result <- Ptr VideoFrame -> Ptr VideoFrame -> IO CInt
gst_video_frame_copy Ptr VideoFrame
dest' Ptr VideoFrame
src'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
dest
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
src
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data VideoFrameCopyMethodInfo
instance (signature ~ (VideoFrame -> m Bool), MonadIO m) => O.MethodInfo VideoFrameCopyMethodInfo VideoFrame signature where
overloadedMethod = videoFrameCopy
#endif
foreign import ccall "gst_video_frame_copy_plane" gst_video_frame_copy_plane ::
Ptr VideoFrame ->
Ptr VideoFrame ->
Word32 ->
IO CInt
videoFrameCopyPlane ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoFrame
-> VideoFrame
-> Word32
-> m Bool
videoFrameCopyPlane :: VideoFrame -> VideoFrame -> Word32 -> m Bool
videoFrameCopyPlane dest :: VideoFrame
dest src :: VideoFrame
src plane :: Word32
plane = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoFrame
dest' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
dest
Ptr VideoFrame
src' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
src
CInt
result <- Ptr VideoFrame -> Ptr VideoFrame -> Word32 -> IO CInt
gst_video_frame_copy_plane Ptr VideoFrame
dest' Ptr VideoFrame
src' Word32
plane
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
dest
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
src
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data VideoFrameCopyPlaneMethodInfo
instance (signature ~ (VideoFrame -> Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoFrameCopyPlaneMethodInfo VideoFrame signature where
overloadedMethod = videoFrameCopyPlane
#endif
foreign import ccall "gst_video_frame_map" gst_video_frame_map ::
Ptr VideoFrame ->
Ptr GstVideo.VideoInfo.VideoInfo ->
Ptr Gst.Buffer.Buffer ->
CUInt ->
IO CInt
videoFrameMap ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoFrame
-> GstVideo.VideoInfo.VideoInfo
-> Gst.Buffer.Buffer
-> [Gst.Flags.MapFlags]
-> m Bool
videoFrameMap :: VideoFrame -> VideoInfo -> Buffer -> [MapFlags] -> m Bool
videoFrameMap frame :: VideoFrame
frame info :: VideoInfo
info buffer :: Buffer
buffer flags :: [MapFlags]
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoFrame
frame' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
frame
Ptr VideoInfo
info' <- VideoInfo -> IO (Ptr VideoInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoInfo
info
Ptr Buffer
buffer' <- Buffer -> IO (Ptr Buffer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Buffer
buffer
let flags' :: CUInt
flags' = [MapFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [MapFlags]
flags
CInt
result <- Ptr VideoFrame -> Ptr VideoInfo -> Ptr Buffer -> CUInt -> IO CInt
gst_video_frame_map Ptr VideoFrame
frame' Ptr VideoInfo
info' Ptr Buffer
buffer' CUInt
flags'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
frame
VideoInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoInfo
info
Buffer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Buffer
buffer
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data VideoFrameMapMethodInfo
instance (signature ~ (GstVideo.VideoInfo.VideoInfo -> Gst.Buffer.Buffer -> [Gst.Flags.MapFlags] -> m Bool), MonadIO m) => O.MethodInfo VideoFrameMapMethodInfo VideoFrame signature where
overloadedMethod = videoFrameMap
#endif
foreign import ccall "gst_video_frame_map_id" gst_video_frame_map_id ::
Ptr VideoFrame ->
Ptr GstVideo.VideoInfo.VideoInfo ->
Ptr Gst.Buffer.Buffer ->
Int32 ->
CUInt ->
IO CInt
videoFrameMapId ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoFrame
-> GstVideo.VideoInfo.VideoInfo
-> Gst.Buffer.Buffer
-> Int32
-> [Gst.Flags.MapFlags]
-> m Bool
videoFrameMapId :: VideoFrame -> VideoInfo -> Buffer -> Int32 -> [MapFlags] -> m Bool
videoFrameMapId frame :: VideoFrame
frame info :: VideoInfo
info buffer :: Buffer
buffer id :: Int32
id flags :: [MapFlags]
flags = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoFrame
frame' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
frame
Ptr VideoInfo
info' <- VideoInfo -> IO (Ptr VideoInfo)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoInfo
info
Ptr Buffer
buffer' <- Buffer -> IO (Ptr Buffer)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Buffer
buffer
let flags' :: CUInt
flags' = [MapFlags] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [MapFlags]
flags
CInt
result <- Ptr VideoFrame
-> Ptr VideoInfo -> Ptr Buffer -> Int32 -> CUInt -> IO CInt
gst_video_frame_map_id Ptr VideoFrame
frame' Ptr VideoInfo
info' Ptr Buffer
buffer' Int32
id CUInt
flags'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
frame
VideoInfo -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoInfo
info
Buffer -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Buffer
buffer
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data VideoFrameMapIdMethodInfo
instance (signature ~ (GstVideo.VideoInfo.VideoInfo -> Gst.Buffer.Buffer -> Int32 -> [Gst.Flags.MapFlags] -> m Bool), MonadIO m) => O.MethodInfo VideoFrameMapIdMethodInfo VideoFrame signature where
overloadedMethod = videoFrameMapId
#endif
foreign import ccall "gst_video_frame_unmap" gst_video_frame_unmap ::
Ptr VideoFrame ->
IO ()
videoFrameUnmap ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoFrame
-> m ()
videoFrameUnmap :: VideoFrame -> m ()
videoFrameUnmap frame :: VideoFrame
frame = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr VideoFrame
frame' <- VideoFrame -> IO (Ptr VideoFrame)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr VideoFrame
frame
Ptr VideoFrame -> IO ()
gst_video_frame_unmap Ptr VideoFrame
frame'
VideoFrame -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr VideoFrame
frame
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data VideoFrameUnmapMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoFrameUnmapMethodInfo VideoFrame signature where
overloadedMethod = videoFrameUnmap
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveVideoFrameMethod (t :: Symbol) (o :: *) :: * where
ResolveVideoFrameMethod "copy" o = VideoFrameCopyMethodInfo
ResolveVideoFrameMethod "copyPlane" o = VideoFrameCopyPlaneMethodInfo
ResolveVideoFrameMethod "map" o = VideoFrameMapMethodInfo
ResolveVideoFrameMethod "mapId" o = VideoFrameMapIdMethodInfo
ResolveVideoFrameMethod "unmap" o = VideoFrameUnmapMethodInfo
ResolveVideoFrameMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveVideoFrameMethod t VideoFrame, O.MethodInfo info VideoFrame p) => OL.IsLabel t (VideoFrame -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif