{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- 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                   ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isImage]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:isImage"), [isInterlaced]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:isInterlaced"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBitrate]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getBitrate"), [getCaps]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getCaps"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDepth]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getDepth"), [getFramerateDenom]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getFramerateDenom"), [getFramerateNum]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getFramerateNum"), [getHeight]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getHeight"), [getMaxBitrate]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getMaxBitrate"), [getMisc]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getMisc"), [getNext]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getNext"), [getParDenom]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getParDenom"), [getParNum]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getParNum"), [getPrevious]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getPrevious"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getStreamId]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getStreamId"), [getStreamNumber]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getStreamNumber"), [getStreamTypeNick]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getStreamTypeNick"), [getTags]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getTags"), [getToc]("GI.GstPbutils.Objects.DiscovererStreamInfo#g:method:getToc"), [getWidth]("GI.GstPbutils.Objects.DiscovererVideoInfo#g:method:getWidth").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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 Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R

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 (SP.ManagedPtr DiscovererVideoInfo)
    deriving (DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
(DiscovererVideoInfo -> DiscovererVideoInfo -> Bool)
-> (DiscovererVideoInfo -> DiscovererVideoInfo -> Bool)
-> Eq DiscovererVideoInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
== :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
$c/= :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
/= :: DiscovererVideoInfo -> DiscovererVideoInfo -> Bool
Eq)

instance SP.ManagedPtrNewtype DiscovererVideoInfo where
    toManagedPtr :: DiscovererVideoInfo -> ManagedPtr DiscovererVideoInfo
toManagedPtr (DiscovererVideoInfo ManagedPtr DiscovererVideoInfo
p) = ManagedPtr DiscovererVideoInfo
p

foreign import ccall "gst_discoverer_video_info_get_type"
    c_gst_discoverer_video_info_get_type :: IO B.Types.GType

instance B.Types.TypedObject DiscovererVideoInfo where
    glibType :: IO GType
glibType = IO GType
c_gst_discoverer_video_info_get_type

instance B.Types.GObject DiscovererVideoInfo

-- | Type class for types which can be safely cast to `DiscovererVideoInfo`, for instance with `toDiscovererVideoInfo`.
class (SP.GObject o, O.IsDescendantOf DiscovererVideoInfo o) => IsDiscovererVideoInfo o
instance (SP.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 :: (MIO.MonadIO m, IsDiscovererVideoInfo o) => o -> m DiscovererVideoInfo
toDiscovererVideoInfo :: forall (m :: * -> *) o.
(MonadIO m, IsDiscovererVideoInfo o) =>
o -> m DiscovererVideoInfo
toDiscovererVideoInfo = IO DiscovererVideoInfo -> m DiscovererVideoInfo
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.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, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DiscovererVideoInfo -> DiscovererVideoInfo
DiscovererVideoInfo

-- | Convert 'DiscovererVideoInfo' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe DiscovererVideoInfo) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gst_discoverer_video_info_get_type
    gvalueSet_ :: Ptr GValue -> Maybe DiscovererVideoInfo -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DiscovererVideoInfo
P.Nothing = Ptr GValue -> Ptr DiscovererVideoInfo -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DiscovererVideoInfo
forall a. Ptr a
FP.nullPtr :: FP.Ptr DiscovererVideoInfo)
    gvalueSet_ Ptr GValue
gv (P.Just DiscovererVideoInfo
obj) = DiscovererVideoInfo -> (Ptr DiscovererVideoInfo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DiscovererVideoInfo
obj (Ptr GValue -> Ptr DiscovererVideoInfo -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe DiscovererVideoInfo)
gvalueGet_ Ptr GValue
gv = do
        Ptr DiscovererVideoInfo
ptr <- Ptr GValue -> IO (Ptr DiscovererVideoInfo)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DiscovererVideoInfo)
        if Ptr DiscovererVideoInfo
ptr Ptr DiscovererVideoInfo -> Ptr DiscovererVideoInfo -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DiscovererVideoInfo
forall a. Ptr a
FP.nullPtr
        then DiscovererVideoInfo -> Maybe DiscovererVideoInfo
forall a. a -> Maybe a
P.Just (DiscovererVideoInfo -> Maybe DiscovererVideoInfo)
-> IO DiscovererVideoInfo -> IO (Maybe DiscovererVideoInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (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
        else Maybe DiscovererVideoInfo -> IO (Maybe DiscovererVideoInfo)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DiscovererVideoInfo
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveDiscovererVideoInfoMethod (t :: Symbol) (o :: DK.Type) :: DK.Type 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 "getStreamNumber" o = GstPbutils.DiscovererStreamInfo.DiscovererStreamInfoGetStreamNumberMethodInfo
    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.OverloadedMethod 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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDiscovererVideoInfoMethod t DiscovererVideoInfo, O.OverloadedMethod info DiscovererVideoInfo p, R.HasField t DiscovererVideoInfo p) => R.HasField t DiscovererVideoInfo p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveDiscovererVideoInfoMethod t DiscovererVideoInfo, O.OverloadedMethodInfo info DiscovererVideoInfo) => OL.IsLabel t (O.MethodProxy info DiscovererVideoInfo) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

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

#if defined(ENABLE_OVERLOADING)
#endif

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

#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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetBitrate a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetBitrateMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetBitrate

instance O.OverloadedMethodInfo DiscovererVideoInfoGetBitrateMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetBitrate",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetDepth a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetDepthMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetDepth

instance O.OverloadedMethodInfo DiscovererVideoInfoGetDepthMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetDepth",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetFramerateDenom a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetFramerateDenomMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetFramerateDenom

instance O.OverloadedMethodInfo DiscovererVideoInfoGetFramerateDenomMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetFramerateDenom",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetFramerateNum a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetFramerateNumMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetFramerateNum

instance O.OverloadedMethodInfo DiscovererVideoInfoGetFramerateNumMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetFramerateNum",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetHeight a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetHeightMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetHeight

instance O.OverloadedMethodInfo DiscovererVideoInfoGetHeightMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetHeight",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetMaxBitrate a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetMaxBitrateMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetMaxBitrate

instance O.OverloadedMethodInfo DiscovererVideoInfoGetMaxBitrateMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetMaxBitrate",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetParDenom a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetParDenomMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetParDenom

instance O.OverloadedMethodInfo DiscovererVideoInfoGetParDenomMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetParDenom",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetParNum a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetParNumMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetParNum

instance O.OverloadedMethodInfo DiscovererVideoInfoGetParNumMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetParNum",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Word32
discovererVideoInfoGetWidth a
info = IO Word32 -> m Word32
forall a. IO a -> m a
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 a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoGetWidthMethodInfo a signature where
    overloadedMethod = discovererVideoInfoGetWidth

instance O.OverloadedMethodInfo DiscovererVideoInfoGetWidthMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoGetWidth",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Bool
discovererVideoInfoIsImage a
info = IO Bool -> m Bool
forall a. IO a -> m a
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
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Bool -> IO Bool
forall a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoIsImageMethodInfo a signature where
    overloadedMethod = discovererVideoInfoIsImage

instance O.OverloadedMethodInfo DiscovererVideoInfoIsImageMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoIsImage",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v: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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDiscovererVideoInfo a) =>
a -> m Bool
discovererVideoInfoIsInterlaced a
info = IO Bool -> m Bool
forall a. IO a -> m a
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
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
info
    Bool -> IO Bool
forall a. a -> IO a
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.OverloadedMethod DiscovererVideoInfoIsInterlacedMethodInfo a signature where
    overloadedMethod = discovererVideoInfoIsInterlaced

instance O.OverloadedMethodInfo DiscovererVideoInfoIsInterlacedMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstPbutils.Objects.DiscovererVideoInfo.discovererVideoInfoIsInterlaced",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstpbutils-1.0.27/docs/GI-GstPbutils-Objects-DiscovererVideoInfo.html#v:discovererVideoInfoIsInterlaced"
        })


#endif