{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

'GI.GstPbutils.Objects.DiscovererStreamInfo.DiscovererStreamInfo' specific to video streams (this includes images).
-}

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

module GI.GstPbutils.Objects.DiscovererVideoInfo
    (

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


 -- * Methods
-- ** getBitrate #method:getBitrate#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetBitrateMethodInfo ,
#endif
    discovererVideoInfoGetBitrate           ,


-- ** getDepth #method:getDepth#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetDepthMethodInfo   ,
#endif
    discovererVideoInfoGetDepth             ,


-- ** getFramerateDenom #method:getFramerateDenom#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetFramerateDenomMethodInfo,
#endif
    discovererVideoInfoGetFramerateDenom    ,


-- ** getFramerateNum #method:getFramerateNum#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetFramerateNumMethodInfo,
#endif
    discovererVideoInfoGetFramerateNum      ,


-- ** getHeight #method:getHeight#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetHeightMethodInfo  ,
#endif
    discovererVideoInfoGetHeight            ,


-- ** getMaxBitrate #method:getMaxBitrate#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetMaxBitrateMethodInfo,
#endif
    discovererVideoInfoGetMaxBitrate        ,


-- ** getParDenom #method:getParDenom#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetParDenomMethodInfo,
#endif
    discovererVideoInfoGetParDenom          ,


-- ** getParNum #method:getParNum#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetParNumMethodInfo  ,
#endif
    discovererVideoInfoGetParNum            ,


-- ** getWidth #method:getWidth#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoGetWidthMethodInfo   ,
#endif
    discovererVideoInfoGetWidth             ,


-- ** isImage #method:isImage#

#if ENABLE_OVERLOADING
    DiscovererVideoInfoIsImageMethodInfo    ,
#endif
    discovererVideoInfoIsImage              ,


-- ** isInterlaced #method:isInterlaced#

#if 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.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)
foreign import ccall "gst_discoverer_video_info_get_type"
    c_gst_discoverer_video_info_get_type :: IO GType

instance GObject DiscovererVideoInfo where
    gobjectType = c_gst_discoverer_video_info_get_type


-- | 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 = liftIO . unsafeCastTo DiscovererVideoInfo

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

#if 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 "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 (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

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

#if ENABLE_OVERLOADING
#endif

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the average or nominal bitrate of the video stream in bits\/second. -}
discovererVideoInfoGetBitrate info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_bitrate info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the depth in bits of the video stream. -}
discovererVideoInfoGetDepth info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_depth info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the framerate of the video stream (denominator). -}
discovererVideoInfoGetFramerateDenom info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_framerate_denom info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the framerate of the video stream (numerator). -}
discovererVideoInfoGetFramerateNum info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_framerate_num info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the height of the video stream in pixels. -}
discovererVideoInfoGetHeight info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_height info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the maximum bitrate of the video stream in bits\/second. -}
discovererVideoInfoGetMaxBitrate info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_max_bitrate info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the Pixel Aspect Ratio (PAR) of the video stream (denominator). -}
discovererVideoInfoGetParDenom info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_par_denom info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the Pixel Aspect Ratio (PAR) of the video stream (numerator). -}
discovererVideoInfoGetParNum info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_par_num info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Word32
    {- ^ __Returns:__ the width of the video stream in pixels. -}
discovererVideoInfoGetWidth info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_get_width info'
    touchManagedPtr info
    return result

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the video stream corresponds to an image (i.e. only contains
one frame). -}
discovererVideoInfoIsImage info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_is_image info'
    let result' = (/= 0) result
    touchManagedPtr info
    return result'

#if 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 'GI.GstPbutils.Objects.DiscovererVideoInfo.DiscovererVideoInfo' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the stream is interlaced, else 'False'. -}
discovererVideoInfoIsInterlaced info = liftIO $ do
    info' <- unsafeManagedPtrCastPtr info
    result <- gst_discoverer_video_info_is_interlaced info'
    let result' = (/= 0) result
    touchManagedPtr info
    return result'

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

#endif