gi-gstvideo-0.1.6.13: GI/GstVideo/Structs/VideoCodecFrame.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
A #GstVideoCodecFrame represents a video frame both in raw and
encoded form.
-}
module GI.GstVideo.Structs.VideoCodecFrame
(
-- * Exported types
VideoCodecFrame(..) ,
newZeroVideoCodecFrame ,
noVideoCodecFrame ,
-- * Methods
-- ** videoCodecFrameGetUserData
VideoCodecFrameGetUserDataMethodInfo ,
videoCodecFrameGetUserData ,
-- ** videoCodecFrameRef
VideoCodecFrameRefMethodInfo ,
videoCodecFrameRef ,
-- ** videoCodecFrameSetUserData
VideoCodecFrameSetUserDataMethodInfo ,
videoCodecFrameSetUserData ,
-- ** videoCodecFrameUnref
VideoCodecFrameUnrefMethodInfo ,
videoCodecFrameUnref ,
-- * Properties
-- ** Deadline
videoCodecFrameReadDeadline ,
-- ** DecodeFrameNumber
videoCodecFrameReadDecodeFrameNumber ,
-- ** DistanceFromSync
videoCodecFrameReadDistanceFromSync ,
-- ** Dts
videoCodecFrameReadDts ,
-- ** Duration
videoCodecFrameReadDuration ,
-- ** InputBuffer
videoCodecFrameReadInputBuffer ,
-- ** OutputBuffer
videoCodecFrameReadOutputBuffer ,
-- ** PresentationFrameNumber
videoCodecFrameReadPresentationFrameNumber,
-- ** Pts
videoCodecFrameReadPts ,
-- ** SystemFrameNumber
videoCodecFrameReadSystemFrameNumber ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.GstVideo.Types
import GI.GstVideo.Callbacks
import qualified GI.GLib as GLib
import qualified GI.Gst as Gst
newtype VideoCodecFrame = VideoCodecFrame (ForeignPtr VideoCodecFrame)
foreign import ccall "gst_video_codec_frame_get_type" c_gst_video_codec_frame_get_type ::
IO GType
instance BoxedObject VideoCodecFrame where
boxedType _ = c_gst_video_codec_frame_get_type
-- | Construct a `VideoCodecFrame` struct initialized to zero.
newZeroVideoCodecFrame :: MonadIO m => m VideoCodecFrame
newZeroVideoCodecFrame = liftIO $ callocBoxedBytes 104 >>= wrapBoxed VideoCodecFrame
noVideoCodecFrame :: Maybe VideoCodecFrame
noVideoCodecFrame = Nothing
videoCodecFrameReadSystemFrameNumber :: VideoCodecFrame -> IO Word32
videoCodecFrameReadSystemFrameNumber s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word32
return val
videoCodecFrameReadDecodeFrameNumber :: VideoCodecFrame -> IO Word32
videoCodecFrameReadDecodeFrameNumber s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Word32
return val
videoCodecFrameReadPresentationFrameNumber :: VideoCodecFrame -> IO Word32
videoCodecFrameReadPresentationFrameNumber s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Word32
return val
videoCodecFrameReadDts :: VideoCodecFrame -> IO Word64
videoCodecFrameReadDts s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word64
return val
videoCodecFrameReadPts :: VideoCodecFrame -> IO Word64
videoCodecFrameReadPts s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO Word64
return val
videoCodecFrameReadDuration :: VideoCodecFrame -> IO Word64
videoCodecFrameReadDuration s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO Word64
return val
videoCodecFrameReadDistanceFromSync :: VideoCodecFrame -> IO Int32
videoCodecFrameReadDistanceFromSync s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 48) :: IO Int32
return val
videoCodecFrameReadInputBuffer :: VideoCodecFrame -> IO Gst.Buffer
videoCodecFrameReadInputBuffer s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 56) :: IO (Ptr Gst.Buffer)
val' <- (newBoxed Gst.Buffer) val
return val'
videoCodecFrameReadOutputBuffer :: VideoCodecFrame -> IO Gst.Buffer
videoCodecFrameReadOutputBuffer s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 64) :: IO (Ptr Gst.Buffer)
val' <- (newBoxed Gst.Buffer) val
return val'
videoCodecFrameReadDeadline :: VideoCodecFrame -> IO Word64
videoCodecFrameReadDeadline s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 72) :: IO Word64
return val
-- method VideoCodecFrame::get_user_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_video_codec_frame_get_user_data" gst_video_codec_frame_get_user_data ::
Ptr VideoCodecFrame -> -- _obj : TInterface "GstVideo" "VideoCodecFrame"
IO ()
videoCodecFrameGetUserData ::
(MonadIO m) =>
VideoCodecFrame -- _obj
-> m () -- result
videoCodecFrameGetUserData _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
gst_video_codec_frame_get_user_data _obj'
touchManagedPtr _obj
return ()
data VideoCodecFrameGetUserDataMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo VideoCodecFrameGetUserDataMethodInfo VideoCodecFrame signature where
overloadedMethod _ = videoCodecFrameGetUserData
-- method VideoCodecFrame::ref
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "GstVideo" "VideoCodecFrame"
-- throws : False
-- Skip return : False
foreign import ccall "gst_video_codec_frame_ref" gst_video_codec_frame_ref ::
Ptr VideoCodecFrame -> -- _obj : TInterface "GstVideo" "VideoCodecFrame"
IO (Ptr VideoCodecFrame)
videoCodecFrameRef ::
(MonadIO m) =>
VideoCodecFrame -- _obj
-> m VideoCodecFrame -- result
videoCodecFrameRef _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- gst_video_codec_frame_ref _obj'
checkUnexpectedReturnNULL "gst_video_codec_frame_ref" result
result' <- (wrapBoxed VideoCodecFrame) result
touchManagedPtr _obj
return result'
data VideoCodecFrameRefMethodInfo
instance (signature ~ (m VideoCodecFrame), MonadIO m) => MethodInfo VideoCodecFrameRefMethodInfo VideoCodecFrame signature where
overloadedMethod _ = videoCodecFrameRef
-- method VideoCodecFrame::set_user_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_video_codec_frame_set_user_data" gst_video_codec_frame_set_user_data ::
Ptr VideoCodecFrame -> -- _obj : TInterface "GstVideo" "VideoCodecFrame"
Ptr () -> -- user_data : TBasicType TVoid
FunPtr GLib.DestroyNotifyC -> -- notify : TInterface "GLib" "DestroyNotify"
IO ()
videoCodecFrameSetUserData ::
(MonadIO m) =>
VideoCodecFrame -- _obj
-> GLib.DestroyNotify -- notify
-> m () -- result
videoCodecFrameSetUserData _obj notify = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
ptrnotify <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
notify' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrnotify) notify)
poke ptrnotify notify'
let userData = nullPtr
gst_video_codec_frame_set_user_data _obj' userData notify'
touchManagedPtr _obj
return ()
data VideoCodecFrameSetUserDataMethodInfo
instance (signature ~ (GLib.DestroyNotify -> m ()), MonadIO m) => MethodInfo VideoCodecFrameSetUserDataMethodInfo VideoCodecFrame signature where
overloadedMethod _ = videoCodecFrameSetUserData
-- method VideoCodecFrame::unref
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "gst_video_codec_frame_unref" gst_video_codec_frame_unref ::
Ptr VideoCodecFrame -> -- _obj : TInterface "GstVideo" "VideoCodecFrame"
IO ()
videoCodecFrameUnref ::
(MonadIO m) =>
VideoCodecFrame -- _obj
-> m () -- result
videoCodecFrameUnref _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
gst_video_codec_frame_unref _obj'
touchManagedPtr _obj
return ()
data VideoCodecFrameUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo VideoCodecFrameUnrefMethodInfo VideoCodecFrame signature where
overloadedMethod _ = videoCodecFrameUnref
type family ResolveVideoCodecFrameMethod (t :: Symbol) (o :: *) :: * where
ResolveVideoCodecFrameMethod "ref" o = VideoCodecFrameRefMethodInfo
ResolveVideoCodecFrameMethod "unref" o = VideoCodecFrameUnrefMethodInfo
ResolveVideoCodecFrameMethod "getUserData" o = VideoCodecFrameGetUserDataMethodInfo
ResolveVideoCodecFrameMethod "setUserData" o = VideoCodecFrameSetUserDataMethodInfo
ResolveVideoCodecFrameMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveVideoCodecFrameMethod t VideoCodecFrame, MethodInfo info VideoCodecFrame p) => IsLabelProxy t (VideoCodecFrame -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveVideoCodecFrameMethod t VideoCodecFrame, MethodInfo info VideoCodecFrame p) => IsLabel t (VideoCodecFrame -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif