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

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

module GI.GstPbutils.Objects.DiscovererVideoInfo
    ( 

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


 -- * Methods
-- ** getBitrate #method:getBitrate#
    DiscovererVideoInfoGetBitrateMethodInfo ,
    discovererVideoInfoGetBitrate           ,


-- ** getDepth #method:getDepth#
    DiscovererVideoInfoGetDepthMethodInfo   ,
    discovererVideoInfoGetDepth             ,


-- ** getFramerateDenom #method:getFramerateDenom#
    DiscovererVideoInfoGetFramerateDenomMethodInfo,
    discovererVideoInfoGetFramerateDenom    ,


-- ** getFramerateNum #method:getFramerateNum#
    DiscovererVideoInfoGetFramerateNumMethodInfo,
    discovererVideoInfoGetFramerateNum      ,


-- ** getHeight #method:getHeight#
    DiscovererVideoInfoGetHeightMethodInfo  ,
    discovererVideoInfoGetHeight            ,


-- ** getMaxBitrate #method:getMaxBitrate#
    DiscovererVideoInfoGetMaxBitrateMethodInfo,
    discovererVideoInfoGetMaxBitrate        ,


-- ** getParDenom #method:getParDenom#
    DiscovererVideoInfoGetParDenomMethodInfo,
    discovererVideoInfoGetParDenom          ,


-- ** getParNum #method:getParNum#
    DiscovererVideoInfoGetParNumMethodInfo  ,
    discovererVideoInfoGetParNum            ,


-- ** getWidth #method:getWidth#
    DiscovererVideoInfoGetWidthMethodInfo   ,
    discovererVideoInfoGetWidth             ,


-- ** isImage #method:isImage#
    DiscovererVideoInfoIsImageMethodInfo    ,
    discovererVideoInfoIsImage              ,


-- ** isInterlaced #method:isInterlaced#
    DiscovererVideoInfoIsInterlacedMethodInfo,
    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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.GstPbutils.Objects.DiscovererStreamInfo as GstPbutils.DiscovererStreamInfo

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
    

class GObject o => IsDiscovererVideoInfo o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DiscovererVideoInfo a) =>
    IsDiscovererVideoInfo a
#endif
instance IsDiscovererVideoInfo DiscovererVideoInfo
instance GstPbutils.DiscovererStreamInfo.IsDiscovererStreamInfo DiscovererVideoInfo
instance GObject.Object.IsObject DiscovererVideoInfo

toDiscovererVideoInfo :: IsDiscovererVideoInfo o => o -> IO DiscovererVideoInfo
toDiscovererVideoInfo = unsafeCastTo DiscovererVideoInfo

noDiscovererVideoInfo :: Maybe DiscovererVideoInfo
noDiscovererVideoInfo = Nothing

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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDiscovererVideoInfoMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    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) => O.IsLabelProxy t (DiscovererVideoInfo -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDiscovererVideoInfoMethod t DiscovererVideoInfo, O.MethodInfo info DiscovererVideoInfo p) => O.IsLabel t (DiscovererVideoInfo -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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

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

-- 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'

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

-- 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'

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