module GI.GstVideo.Structs.VideoConverter
(
VideoConverter(..) ,
noVideoConverter ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
VideoConverterFrameMethodInfo ,
#endif
videoConverterFrame ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
VideoConverterFreeMethodInfo ,
#endif
videoConverterFree ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
VideoConverterGetConfigMethodInfo ,
#endif
videoConverterGetConfig ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
VideoConverterSetConfigMethodInfo ,
#endif
videoConverterSetConfig ,
) 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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.Gst.Structs.Structure as Gst.Structure
import qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame
newtype VideoConverter = VideoConverter (ManagedPtr VideoConverter)
instance WrappedPtr VideoConverter where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noVideoConverter :: Maybe VideoConverter
noVideoConverter = Nothing
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList VideoConverter
type instance O.AttributeList VideoConverter = VideoConverterAttributeList
type VideoConverterAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "gst_video_converter_frame" gst_video_converter_frame ::
Ptr VideoConverter ->
Ptr GstVideo.VideoFrame.VideoFrame ->
Ptr GstVideo.VideoFrame.VideoFrame ->
IO ()
videoConverterFrame ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> GstVideo.VideoFrame.VideoFrame
-> GstVideo.VideoFrame.VideoFrame
-> m ()
videoConverterFrame convert src dest = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
src' <- unsafeManagedPtrGetPtr src
dest' <- unsafeManagedPtrGetPtr dest
gst_video_converter_frame convert' src' dest'
touchManagedPtr convert
touchManagedPtr src
touchManagedPtr dest
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data VideoConverterFrameMethodInfo
instance (signature ~ (GstVideo.VideoFrame.VideoFrame -> GstVideo.VideoFrame.VideoFrame -> m ()), MonadIO m) => O.MethodInfo VideoConverterFrameMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterFrame
#endif
foreign import ccall "gst_video_converter_free" gst_video_converter_free ::
Ptr VideoConverter ->
IO ()
videoConverterFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> m ()
videoConverterFree convert = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
gst_video_converter_free convert'
touchManagedPtr convert
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data VideoConverterFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoConverterFreeMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterFree
#endif
foreign import ccall "gst_video_converter_get_config" gst_video_converter_get_config ::
Ptr VideoConverter ->
IO (Ptr Gst.Structure.Structure)
videoConverterGetConfig ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> m Gst.Structure.Structure
videoConverterGetConfig convert = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
result <- gst_video_converter_get_config convert'
checkUnexpectedReturnNULL "videoConverterGetConfig" result
result' <- (newBoxed Gst.Structure.Structure) result
touchManagedPtr convert
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data VideoConverterGetConfigMethodInfo
instance (signature ~ (m Gst.Structure.Structure), MonadIO m) => O.MethodInfo VideoConverterGetConfigMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterGetConfig
#endif
foreign import ccall "gst_video_converter_set_config" gst_video_converter_set_config ::
Ptr VideoConverter ->
Ptr Gst.Structure.Structure ->
IO CInt
videoConverterSetConfig ::
(B.CallStack.HasCallStack, MonadIO m) =>
VideoConverter
-> Gst.Structure.Structure
-> m Bool
videoConverterSetConfig convert config = liftIO $ do
convert' <- unsafeManagedPtrGetPtr convert
config' <- B.ManagedPtr.disownBoxed config
result <- gst_video_converter_set_config convert' config'
let result' = (/= 0) result
touchManagedPtr convert
touchManagedPtr config
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data VideoConverterSetConfigMethodInfo
instance (signature ~ (Gst.Structure.Structure -> m Bool), MonadIO m) => O.MethodInfo VideoConverterSetConfigMethodInfo VideoConverter signature where
overloadedMethod _ = videoConverterSetConfig
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveVideoConverterMethod (t :: Symbol) (o :: *) :: * where
ResolveVideoConverterMethod "frame" o = VideoConverterFrameMethodInfo
ResolveVideoConverterMethod "free" o = VideoConverterFreeMethodInfo
ResolveVideoConverterMethod "getConfig" o = VideoConverterGetConfigMethodInfo
ResolveVideoConverterMethod "setConfig" o = VideoConverterSetConfigMethodInfo
ResolveVideoConverterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveVideoConverterMethod t VideoConverter, O.MethodInfo info VideoConverter p) => O.IsLabelProxy t (VideoConverter -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveVideoConverterMethod t VideoConverter, O.MethodInfo info VideoConverter p) => O.IsLabel t (VideoConverter -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif