{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- t'GI.GstPbutils.Objects.DiscovererStreamInfo.DiscovererStreamInfo' specific to video streams (this includes images).

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.GstPbutils.Objects.DiscovererVideoInfo
    ( 

-- * Exported types
    DiscovererVideoInfo(..)                 ,
    IsDiscovererVideoInfo                   ,
    toDiscovererVideoInfo                   ,
    noDiscovererVideoInfo                   ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveDiscovererVideoInfoMethod        ,
#endif


-- ** getBitrate #method:getBitrate#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetBitrateMethodInfo ,
#endif
    discovererVideoInfoGetBitrate           ,


-- ** getDepth #method:getDepth#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetDepthMethodInfo   ,
#endif
    discovererVideoInfoGetDepth             ,


-- ** getFramerateDenom #method:getFramerateDenom#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetFramerateDenomMethodInfo,
#endif
    discovererVideoInfoGetFramerateDenom    ,


-- ** getFramerateNum #method:getFramerateNum#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetFramerateNumMethodInfo,
#endif
    discovererVideoInfoGetFramerateNum      ,


-- ** getHeight #method:getHeight#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetHeightMethodInfo  ,
#endif
    discovererVideoInfoGetHeight            ,


-- ** getMaxBitrate #method:getMaxBitrate#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetMaxBitrateMethodInfo,
#endif
    discovererVideoInfoGetMaxBitrate        ,


-- ** getParDenom #method:getParDenom#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetParDenomMethodInfo,
#endif
    discovererVideoInfoGetParDenom          ,


-- ** getParNum #method:getParNum#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetParNumMethodInfo  ,
#endif
    discovererVideoInfoGetParNum            ,


-- ** getWidth #method:getWidth#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoGetWidthMethodInfo   ,
#endif
    discovererVideoInfoGetWidth             ,


-- ** isImage #method:isImage#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoIsImageMethodInfo    ,
#endif
    discovererVideoInfoIsImage              ,


-- ** isInterlaced #method:isInterlaced#

#if defined(ENABLE_OVERLOADING)
    DiscovererVideoInfoIsInterlacedMethodInfo,
#endif
    discovererVideoInfoIsInterlaced         ,




    ) 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.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.GstPbutils.Objects.DiscovererStreamInfo as GstPbutils.DiscovererStreamInfo

-- | Memory-managed wrapper type.
newtype DiscovererVideoInfo = DiscovererVideoInfo (ManagedPtr DiscovererVideoInfo)
    deriving (DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
(DiscovererVideoInfo -> DiscovererVideoInfo -> Bool)
-> (DiscovererVideoInfo -> DiscovererVideoInfo -> Bool)
-> Eq DiscovererVideoInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
$c/= :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
== :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
$c== :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
Eq)
foreign import ccall "gst_discoverer_video_info_get_type"
    c_gst_discoverer_video_info_get_type :: IO GType

instance GObject DiscovererVideoInfo where
    gobjectType :: IO GType
gobjectType = IO GType
c_gst_discoverer_video_info_get_type
    

-- | Convert 'DiscovererVideoInfo' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue DiscovererVideoInfo where
    toGValue :: DiscovererVideoInfo -> IO GValue
toGValue o :: DiscovererVideoInfo
o = do
        GType
gtype <- IO GType
c_gst_discoverer_video_info_get_type
        DiscovererVideoInfo
-> (Ptr DiscovererVideoInfo -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DiscovererVideoInfo
o (GType
-> (GValue -> Ptr DiscovererVideoInfo -> IO ())
-> Ptr DiscovererVideoInfo
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr DiscovererVideoInfo -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO DiscovererVideoInfo
fromGValue gv :: GValue
gv = do
        Ptr DiscovererVideoInfo
ptr <- GValue -> IO (Ptr DiscovererVideoInfo)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr DiscovererVideoInfo)
        (ManagedPtr DiscovererVideoInfo -> DiscovererVideoInfo)
-> Ptr DiscovererVideoInfo -> IO DiscovererVideoInfo
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DiscovererVideoInfo -> DiscovererVideoInfo
DiscovererVideoInfo Ptr DiscovererVideoInfo
ptr
        
    

-- | Type class for types which can be safely cast to `DiscovererVideoInfo`, for instance with `toDiscovererVideoInfo`.
class (GObject o, O.IsDescendantOf DiscovererVideoInfo o) => IsDiscovererVideoInfo o
instance (GObject o, O.IsDescendantOf DiscovererVideoInfo o) => IsDiscovererVideoInfo o

instance O.HasParentTypes DiscovererVideoInfo
type instance O.ParentTypes DiscovererVideoInfo = '[GstPbutils.DiscovererStreamInfo.DiscovererStreamInfo, GObject.Object.Object]

-- | Cast to `DiscovererVideoInfo`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDiscovererVideoInfo :: (MonadIO m, IsDiscovererVideoInfo o) => o -> m DiscovererVideoInfo
toDiscovererVideoInfo :: o -> m DiscovererVideoInfo
toDiscovererVideoInfo = IO DiscovererVideoInfo -> m DiscovererVideoInfo
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DiscovererVideoInfo -> m DiscovererVideoInfo)
-> (o -> IO DiscovererVideoInfo) -> o -> m DiscovererVideoInfo
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DiscovererVideoInfo -> DiscovererVideoInfo)
-> o -> IO DiscovererVideoInfo
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr DiscovererVideoInfo -> DiscovererVideoInfo
DiscovererVideoInfo

-- | A convenience alias for `Nothing` :: `Maybe` `DiscovererVideoInfo`.
noDiscovererVideoInfo :: Maybe DiscovererVideoInfo
noDiscovererVideoInfo :: Maybe DiscovererVideoInfo
noDiscovererVideoInfo = Maybe DiscovererVideoInfo
forall a. Maybe a
Nothing

#if defined(ENABLE_OVERLOADING)
type family ResolveDiscovererVideoInfoMethod (t :: Symbol) (o :: *) :: * where
    ResolveDiscovererVideoInfoMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDiscovererVideoInfoMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDiscovererVideoInfoMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDiscovererVideoInfoMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDiscovererVideoInfoMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDiscovererVideoInfoMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDiscovererVideoInfoMethod "isImage" o = DiscovererVideoInfoIsImageMethodInfo
    ResolveDiscovererVideoInfoMethod "isInterlaced" o = DiscovererVideoInfoIsInterlacedMethodInfo
    ResolveDiscovererVideoInfoMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDiscovererVideoInfoMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDiscovererVideoInfoMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDiscovererVideoInfoMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDiscovererVideoInfoMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDiscovererVideoInfoMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDiscovererVideoInfoMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDiscovererVideoInfoMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDiscovererVideoInfoMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDiscovererVideoInfoMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDiscovererVideoInfoMethod "getBitrate" o = DiscovererVideoInfoGetBitrateMethodInfo
    ResolveDiscovererVideoInfoMethod "getCaps" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetCapsMethodInfo
    ResolveDiscovererVideoInfoMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDiscovererVideoInfoMethod "getDepth" o = DiscovererVideoInfoGetDepthMethodInfo
    ResolveDiscovererVideoInfoMethod "getFramerateDenom" o = DiscovererVideoInfoGetFramerateDenomMethodInfo
    ResolveDiscovererVideoInfoMethod "getFramerateNum" o = DiscovererVideoInfoGetFramerateNumMethodInfo
    ResolveDiscovererVideoInfoMethod "getHeight" o = DiscovererVideoInfoGetHeightMethodInfo
    ResolveDiscovererVideoInfoMethod "getMaxBitrate" o = DiscovererVideoInfoGetMaxBitrateMethodInfo
    ResolveDiscovererVideoInfoMethod "getMisc" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetMiscMethodInfo
    ResolveDiscovererVideoInfoMethod "getNext" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetNextMethodInfo
    ResolveDiscovererVideoInfoMethod "getParDenom" o = DiscovererVideoInfoGetParDenomMethodInfo
    ResolveDiscovererVideoInfoMethod "getParNum" o = DiscovererVideoInfoGetParNumMethodInfo
    ResolveDiscovererVideoInfoMethod "getPrevious" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetPreviousMethodInfo
    ResolveDiscovererVideoInfoMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDiscovererVideoInfoMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDiscovererVideoInfoMethod "getStreamId" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetStreamIdMethodInfo
    ResolveDiscovererVideoInfoMethod "getStreamTypeNick" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetStreamTypeNickMethodInfo
    ResolveDiscovererVideoInfoMethod "getTags" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetTagsMethodInfo
    ResolveDiscovererVideoInfoMethod "getToc" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetTocMethodInfo
    ResolveDiscovererVideoInfoMethod "getWidth" o = DiscovererVideoInfoGetWidthMethodInfo
    ResolveDiscovererVideoInfoMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDiscovererVideoInfoMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDiscovererVideoInfoMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDiscovererVideoInfoMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDiscovererVideoInfoMethod t DiscovererVideoInfo, O.MethodInfo info DiscovererVideoInfo p) => OL.IsLabel t (DiscovererVideoInfo -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DiscovererVideoInfo
type instance O.AttributeList DiscovererVideoInfo = DiscovererVideoInfoAttributeList
type DiscovererVideoInfoAttributeList = ('[ ] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DiscovererVideoInfo = DiscovererVideoInfoSignalList
type DiscovererVideoInfoSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method DiscovererVideoInfo::get_bitrate
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_bitrate" gst_discoverer_video_info_get_bitrate :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetBitrate ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the average or nominal bitrate of the video stream in bits\/second.
discovererVideoInfoGetBitrate :: a -> m Word32
discovererVideoInfoGetBitrate info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_bitrate Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetBitrateMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetBitrateMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetBitrate

#endif

-- method DiscovererVideoInfo::get_depth
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_depth" gst_discoverer_video_info_get_depth :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetDepth ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the depth in bits of the video stream.
discovererVideoInfoGetDepth :: a -> m Word32
discovererVideoInfoGetDepth info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_depth Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetDepthMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetDepthMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetDepth

#endif

-- method DiscovererVideoInfo::get_framerate_denom
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_framerate_denom" gst_discoverer_video_info_get_framerate_denom :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetFramerateDenom ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the framerate of the video stream (denominator).
discovererVideoInfoGetFramerateDenom :: a -> m Word32
discovererVideoInfoGetFramerateDenom info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_framerate_denom Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetFramerateDenomMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetFramerateDenomMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetFramerateDenom

#endif

-- method DiscovererVideoInfo::get_framerate_num
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_framerate_num" gst_discoverer_video_info_get_framerate_num :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetFramerateNum ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the framerate of the video stream (numerator).
discovererVideoInfoGetFramerateNum :: a -> m Word32
discovererVideoInfoGetFramerateNum info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_framerate_num Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetFramerateNumMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetFramerateNumMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetFramerateNum

#endif

-- method DiscovererVideoInfo::get_height
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_height" gst_discoverer_video_info_get_height :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetHeight ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the height of the video stream in pixels.
discovererVideoInfoGetHeight :: a -> m Word32
discovererVideoInfoGetHeight info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_height Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetHeightMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetHeightMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetHeight

#endif

-- method DiscovererVideoInfo::get_max_bitrate
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_max_bitrate" gst_discoverer_video_info_get_max_bitrate :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetMaxBitrate ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the maximum bitrate of the video stream in bits\/second.
discovererVideoInfoGetMaxBitrate :: a -> m Word32
discovererVideoInfoGetMaxBitrate info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_max_bitrate Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetMaxBitrateMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetMaxBitrateMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetMaxBitrate

#endif

-- method DiscovererVideoInfo::get_par_denom
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_par_denom" gst_discoverer_video_info_get_par_denom :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetParDenom ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the Pixel Aspect Ratio (PAR) of the video stream (denominator).
discovererVideoInfoGetParDenom :: a -> m Word32
discovererVideoInfoGetParDenom info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_par_denom Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetParDenomMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetParDenomMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetParDenom

#endif

-- method DiscovererVideoInfo::get_par_num
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_par_num" gst_discoverer_video_info_get_par_num :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetParNum ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the Pixel Aspect Ratio (PAR) of the video stream (numerator).
discovererVideoInfoGetParNum :: a -> m Word32
discovererVideoInfoGetParNum info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_par_num Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetParNumMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetParNumMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetParNum

#endif

-- method DiscovererVideoInfo::get_width
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_get_width" gst_discoverer_video_info_get_width :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO Word32

-- | /No description available in the introspection data./
discovererVideoInfoGetWidth ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Word32
    -- ^ __Returns:__ the width of the video stream in pixels.
discovererVideoInfoGetWidth :: a -> m Word32
discovererVideoInfoGetWidth info :: a
info = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    Word32
result <- Ptr DiscovererVideoInfo -> IO Word32
gst_discoverer_video_info_get_width Ptr DiscovererVideoInfo
info'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoGetWidthMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoGetWidthMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetWidth

#endif

-- method DiscovererVideoInfo::is_image
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_is_image" gst_discoverer_video_info_is_image :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO CInt

-- | /No description available in the introspection data./
discovererVideoInfoIsImage ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the video stream corresponds to an image (i.e. only contains
    -- one frame).
discovererVideoInfoIsImage :: a -> m Bool
discovererVideoInfoIsImage info :: a
info = 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 DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    CInt
result <- Ptr DiscovererVideoInfo -> IO CInt
gst_discoverer_video_info_is_image Ptr DiscovererVideoInfo
info'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoIsImageMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoIsImageMethodInfo a signature where
    overloadedMethod = discovererVideoInfoIsImage

#endif

-- method DiscovererVideoInfo::is_interlaced
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "info"
--           , argType =
--               TInterface
--                 Name { namespace = "GstPbutils" , name = "DiscovererVideoInfo" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GstDiscovererVideoInfo"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gst_discoverer_video_info_is_interlaced" gst_discoverer_video_info_is_interlaced :: 
    Ptr DiscovererVideoInfo ->              -- info : TInterface (Name {namespace = "GstPbutils", name = "DiscovererVideoInfo"})
    IO CInt

-- | /No description available in the introspection data./
discovererVideoInfoIsInterlaced ::
    (B.CallStack.HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
    a
    -- ^ /@info@/: a t'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the stream is interlaced, else 'P.False'.
discovererVideoInfoIsInterlaced :: a -> m Bool
discovererVideoInfoIsInterlaced info :: a
info = 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 DiscovererVideoInfo
info' <- a -> IO (Ptr DiscovererVideoInfo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
info
    CInt
result <- Ptr DiscovererVideoInfo -> IO CInt
gst_discoverer_video_info_is_interlaced Ptr DiscovererVideoInfo
info'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data DiscovererVideoInfoIsInterlacedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDiscovererVideoInfo a) => O.MethodInfo DiscovererVideoInfoIsInterlacedMethodInfo a signature where
    overloadedMethod = discovererVideoInfoIsInterlaced

#endif