packages feed

gi-gstvideo 1.0.16 → 1.0.18

raw patch · 107 files changed

+33971/−9 lines, 107 filesdep ~haskell-gidep ~haskell-gi-basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: haskell-gi, haskell-gi-base

API changes (from Hackage documentation)

- GI.GstVideo.Enums: AnotherVideoOverlayFormatFlags :: Int -> VideoOverlayFormatFlags
- GI.GstVideo.Enums: VideoOverlayFormatFlagsGlobalAlpha :: VideoOverlayFormatFlags
- GI.GstVideo.Enums: VideoOverlayFormatFlagsNone :: VideoOverlayFormatFlags
- GI.GstVideo.Enums: VideoOverlayFormatFlagsPremultipliedAlpha :: VideoOverlayFormatFlags
- GI.GstVideo.Enums: data VideoOverlayFormatFlags
- GI.GstVideo.Enums: instance GHC.Classes.Eq GI.GstVideo.Enums.VideoOverlayFormatFlags
- GI.GstVideo.Enums: instance GHC.Classes.Ord GI.GstVideo.Enums.VideoOverlayFormatFlags
- GI.GstVideo.Enums: instance GHC.Enum.Enum GI.GstVideo.Enums.VideoOverlayFormatFlags
- GI.GstVideo.Enums: instance GHC.Show.Show GI.GstVideo.Enums.VideoOverlayFormatFlags
- GI.GstVideo.Interfaces.ColorBalance: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Interfaces.ColorBalance.ColorBalance a) => GI.GstVideo.Interfaces.ColorBalance.IsColorBalance a
- GI.GstVideo.Interfaces.ColorBalance: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Interfaces.ColorBalance.ColorBalance
- GI.GstVideo.Interfaces.ColorBalance: instance GI.GstVideo.Interfaces.ColorBalance.IsColorBalance GI.GstVideo.Interfaces.ColorBalance.ColorBalance
- GI.GstVideo.Interfaces.VideoDirection: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Interfaces.VideoDirection.VideoDirection a) => GI.GstVideo.Interfaces.VideoDirection.IsVideoDirection a
- GI.GstVideo.Interfaces.VideoDirection: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Interfaces.VideoDirection.VideoDirection
- GI.GstVideo.Interfaces.VideoDirection: instance GI.GstVideo.Interfaces.VideoDirection.IsVideoDirection GI.GstVideo.Interfaces.VideoDirection.VideoDirection
- GI.GstVideo.Objects.ColorBalanceChannel: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel a) => GI.GstVideo.Objects.ColorBalanceChannel.IsColorBalanceChannel a
- GI.GstVideo.Objects.ColorBalanceChannel: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel
- GI.GstVideo.Objects.ColorBalanceChannel: instance GI.GstVideo.Objects.ColorBalanceChannel.IsColorBalanceChannel GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel
- GI.GstVideo.Objects.VideoBufferPool: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool a) => GI.GstVideo.Objects.VideoBufferPool.IsVideoBufferPool a
- GI.GstVideo.Objects.VideoBufferPool: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool
- GI.GstVideo.Objects.VideoBufferPool: instance GI.Gst.Objects.BufferPool.IsBufferPool GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool
- GI.GstVideo.Objects.VideoBufferPool: instance GI.Gst.Objects.Object.IsObject GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool
- GI.GstVideo.Objects.VideoBufferPool: instance GI.GstVideo.Objects.VideoBufferPool.IsVideoBufferPool GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool
- GI.GstVideo.Objects.VideoDecoder: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.VideoDecoder.VideoDecoder a) => GI.GstVideo.Objects.VideoDecoder.IsVideoDecoder a
- GI.GstVideo.Objects.VideoDecoder: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.VideoDecoder.VideoDecoder
- GI.GstVideo.Objects.VideoDecoder: instance GI.Gst.Objects.Element.IsElement GI.GstVideo.Objects.VideoDecoder.VideoDecoder
- GI.GstVideo.Objects.VideoDecoder: instance GI.Gst.Objects.Object.IsObject GI.GstVideo.Objects.VideoDecoder.VideoDecoder
- GI.GstVideo.Objects.VideoDecoder: instance GI.GstVideo.Objects.VideoDecoder.IsVideoDecoder GI.GstVideo.Objects.VideoDecoder.VideoDecoder
- GI.GstVideo.Objects.VideoEncoder: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.VideoEncoder.VideoEncoder a) => GI.GstVideo.Objects.VideoEncoder.IsVideoEncoder a
- GI.GstVideo.Objects.VideoEncoder: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.VideoEncoder.VideoEncoder
- GI.GstVideo.Objects.VideoEncoder: instance GI.Gst.Interfaces.Preset.IsPreset GI.GstVideo.Objects.VideoEncoder.VideoEncoder
- GI.GstVideo.Objects.VideoEncoder: instance GI.Gst.Objects.Element.IsElement GI.GstVideo.Objects.VideoEncoder.VideoEncoder
- GI.GstVideo.Objects.VideoEncoder: instance GI.Gst.Objects.Object.IsObject GI.GstVideo.Objects.VideoEncoder.VideoEncoder
- GI.GstVideo.Objects.VideoEncoder: instance GI.GstVideo.Objects.VideoEncoder.IsVideoEncoder GI.GstVideo.Objects.VideoEncoder.VideoEncoder
- GI.GstVideo.Objects.VideoFilter: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.VideoFilter.VideoFilter a) => GI.GstVideo.Objects.VideoFilter.IsVideoFilter a
- GI.GstVideo.Objects.VideoFilter: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.VideoFilter.VideoFilter
- GI.GstVideo.Objects.VideoFilter: instance GI.Gst.Objects.Element.IsElement GI.GstVideo.Objects.VideoFilter.VideoFilter
- GI.GstVideo.Objects.VideoFilter: instance GI.Gst.Objects.Object.IsObject GI.GstVideo.Objects.VideoFilter.VideoFilter
- GI.GstVideo.Objects.VideoFilter: instance GI.GstBase.Objects.BaseTransform.IsBaseTransform GI.GstVideo.Objects.VideoFilter.VideoFilter
- GI.GstVideo.Objects.VideoFilter: instance GI.GstVideo.Objects.VideoFilter.IsVideoFilter GI.GstVideo.Objects.VideoFilter.VideoFilter
- GI.GstVideo.Objects.VideoSink: instance (Data.GI.Base.BasicTypes.GObject a, Data.GI.Base.Overloading.UnknownAncestorError GI.GstVideo.Objects.VideoSink.VideoSink a) => GI.GstVideo.Objects.VideoSink.IsVideoSink a
- GI.GstVideo.Objects.VideoSink: instance GI.GObject.Objects.Object.IsObject GI.GstVideo.Objects.VideoSink.VideoSink
- GI.GstVideo.Objects.VideoSink: instance GI.Gst.Objects.Element.IsElement GI.GstVideo.Objects.VideoSink.VideoSink
- GI.GstVideo.Objects.VideoSink: instance GI.Gst.Objects.Object.IsObject GI.GstVideo.Objects.VideoSink.VideoSink
- GI.GstVideo.Objects.VideoSink: instance GI.GstBase.Objects.BaseSink.IsBaseSink GI.GstVideo.Objects.VideoSink.VideoSink
- GI.GstVideo.Objects.VideoSink: instance GI.GstVideo.Objects.VideoSink.IsVideoSink GI.GstVideo.Objects.VideoSink.VideoSink
- GI.GstVideo.Structs.VideoAffineTransformationMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoAffineTransformationMeta.VideoAffineTransformationMeta tag
- GI.GstVideo.Structs.VideoAlignment: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoAlignment.VideoAlignment tag
- GI.GstVideo.Structs.VideoCodecFrame: getVideoCodecFrameDecodeFrameNumber :: MonadIO m => VideoCodecFrame -> m Word32
- GI.GstVideo.Structs.VideoCodecFrame: getVideoCodecFramePresentationFrameNumber :: MonadIO m => VideoCodecFrame -> m Word32
- GI.GstVideo.Structs.VideoCodecFrame: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame tag
- GI.GstVideo.Structs.VideoCodecFrame: setVideoCodecFrameDecodeFrameNumber :: MonadIO m => VideoCodecFrame -> Word32 -> m ()
- GI.GstVideo.Structs.VideoCodecFrame: setVideoCodecFramePresentationFrameNumber :: MonadIO m => VideoCodecFrame -> Word32 -> m ()
- GI.GstVideo.Structs.VideoCodecState: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCodecState.VideoCodecState tag
- GI.GstVideo.Structs.VideoColorPrimariesInfo: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoColorPrimariesInfo.VideoColorPrimariesInfo tag
- GI.GstVideo.Structs.VideoColorimetry: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry tag
- GI.GstVideo.Structs.VideoCropMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCropMeta.VideoCropMeta tag
- GI.GstVideo.Structs.VideoFormatInfo: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo tag
- GI.GstVideo.Structs.VideoFrame: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoFrame.VideoFrame tag
- GI.GstVideo.Structs.VideoGLTextureUploadMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta tag
- GI.GstVideo.Structs.VideoInfo: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoInfo.VideoInfo tag
- GI.GstVideo.Structs.VideoMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoMeta.VideoMeta tag
- GI.GstVideo.Structs.VideoMetaTransform: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoMetaTransform.VideoMetaTransform tag
- GI.GstVideo.Structs.VideoOverlayCompositionMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta tag
- GI.GstVideo.Structs.VideoOverlayProperties: VideoOverlayProperties :: (ManagedPtr VideoOverlayProperties) -> VideoOverlayProperties
- GI.GstVideo.Structs.VideoOverlayProperties: instance Data.GI.Base.BasicTypes.WrappedPtr GI.GstVideo.Structs.VideoOverlayProperties.VideoOverlayProperties
- GI.GstVideo.Structs.VideoOverlayProperties: newtype VideoOverlayProperties
- GI.GstVideo.Structs.VideoOverlayProperties: noVideoOverlayProperties :: Maybe VideoOverlayProperties
- GI.GstVideo.Structs.VideoRectangle: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoRectangle.VideoRectangle tag
- GI.GstVideo.Structs.VideoRegionOfInterestMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta tag
- GI.GstVideo.Structs.VideoResampler: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoResampler.VideoResampler tag
- GI.GstVideo.Structs.VideoTimeCode: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode tag
- GI.GstVideo.Structs.VideoTimeCodeConfig: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeConfig.VideoTimeCodeConfig tag
- GI.GstVideo.Structs.VideoTimeCodeInterval: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval tag
- GI.GstVideo.Structs.VideoTimeCodeMeta: instance (tag ~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta tag
+ GI.GstVideo.Enums: AnotherVideoAncillaryDID :: Int -> VideoAncillaryDID
+ GI.GstVideo.Enums: AnotherVideoAncillaryDID16 :: Int -> VideoAncillaryDID16
+ GI.GstVideo.Enums: AnotherVideoCaptionType :: Int -> VideoCaptionType
+ GI.GstVideo.Enums: AnotherVideoVBIParserResult :: Int -> VideoVBIParserResult
+ GI.GstVideo.Enums: VideoAncillaryDID16608 :: VideoAncillaryDID16
+ GI.GstVideo.Enums: VideoAncillaryDID16708 :: VideoAncillaryDID16
+ GI.GstVideo.Enums: VideoAncillaryDIDCameraPosition :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDDeletion :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHanc3gAudioDataFirst :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHanc3gAudioDataLast :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancErrorDetection :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancHdtvAudioDataFirst :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancHdtvAudioDataLast :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancSdtvAudioData1First :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancSdtvAudioData1Last :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancSdtvAudioData2First :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDHancSdtvAudioData2Last :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoAncillaryDIDUndefined :: VideoAncillaryDID
+ GI.GstVideo.Enums: VideoCaptionTypeCea608Raw :: VideoCaptionType
+ GI.GstVideo.Enums: VideoCaptionTypeCea608S3341a :: VideoCaptionType
+ GI.GstVideo.Enums: VideoCaptionTypeCea708Cdp :: VideoCaptionType
+ GI.GstVideo.Enums: VideoCaptionTypeCea708Raw :: VideoCaptionType
+ GI.GstVideo.Enums: VideoCaptionTypeUnknown :: VideoCaptionType
+ GI.GstVideo.Enums: VideoColorPrimariesEbu3213 :: VideoColorPrimaries
+ GI.GstVideo.Enums: VideoColorPrimariesSmpteeg432 :: VideoColorPrimaries
+ GI.GstVideo.Enums: VideoColorPrimariesSmpterp431 :: VideoColorPrimaries
+ GI.GstVideo.Enums: VideoColorPrimariesSmptest428 :: VideoColorPrimaries
+ GI.GstVideo.Enums: VideoFormatBgr10a2Le :: VideoFormat
+ GI.GstVideo.Enums: VideoFormatNv1210le40 :: VideoFormat
+ GI.GstVideo.Enums: VideoFormatVuya :: VideoFormat
+ GI.GstVideo.Enums: VideoFormatY210 :: VideoFormat
+ GI.GstVideo.Enums: VideoFormatY410 :: VideoFormat
+ GI.GstVideo.Enums: VideoInterlaceModeAlternate :: VideoInterlaceMode
+ GI.GstVideo.Enums: VideoVBIParserResultDone :: VideoVBIParserResult
+ GI.GstVideo.Enums: VideoVBIParserResultError :: VideoVBIParserResult
+ GI.GstVideo.Enums: VideoVBIParserResultOk :: VideoVBIParserResult
+ GI.GstVideo.Enums: data VideoAncillaryDID
+ GI.GstVideo.Enums: data VideoAncillaryDID16
+ GI.GstVideo.Enums: data VideoCaptionType
+ GI.GstVideo.Enums: data VideoVBIParserResult
+ GI.GstVideo.Enums: instance Data.GI.Base.BasicTypes.BoxedEnum GI.GstVideo.Enums.VideoAncillaryDID
+ GI.GstVideo.Enums: instance Data.GI.Base.BasicTypes.BoxedEnum GI.GstVideo.Enums.VideoAncillaryDID16
+ GI.GstVideo.Enums: instance Data.GI.Base.BasicTypes.BoxedEnum GI.GstVideo.Enums.VideoCaptionType
+ GI.GstVideo.Enums: instance Data.GI.Base.BasicTypes.BoxedEnum GI.GstVideo.Enums.VideoVBIParserResult
+ GI.GstVideo.Enums: instance GHC.Classes.Eq GI.GstVideo.Enums.VideoAncillaryDID
+ GI.GstVideo.Enums: instance GHC.Classes.Eq GI.GstVideo.Enums.VideoAncillaryDID16
+ GI.GstVideo.Enums: instance GHC.Classes.Eq GI.GstVideo.Enums.VideoCaptionType
+ GI.GstVideo.Enums: instance GHC.Classes.Eq GI.GstVideo.Enums.VideoVBIParserResult
+ GI.GstVideo.Enums: instance GHC.Classes.Ord GI.GstVideo.Enums.VideoAncillaryDID
+ GI.GstVideo.Enums: instance GHC.Classes.Ord GI.GstVideo.Enums.VideoAncillaryDID16
+ GI.GstVideo.Enums: instance GHC.Classes.Ord GI.GstVideo.Enums.VideoCaptionType
+ GI.GstVideo.Enums: instance GHC.Classes.Ord GI.GstVideo.Enums.VideoVBIParserResult
+ GI.GstVideo.Enums: instance GHC.Enum.Enum GI.GstVideo.Enums.VideoAncillaryDID
+ GI.GstVideo.Enums: instance GHC.Enum.Enum GI.GstVideo.Enums.VideoAncillaryDID16
+ GI.GstVideo.Enums: instance GHC.Enum.Enum GI.GstVideo.Enums.VideoCaptionType
+ GI.GstVideo.Enums: instance GHC.Enum.Enum GI.GstVideo.Enums.VideoVBIParserResult
+ GI.GstVideo.Enums: instance GHC.Show.Show GI.GstVideo.Enums.VideoAncillaryDID
+ GI.GstVideo.Enums: instance GHC.Show.Show GI.GstVideo.Enums.VideoAncillaryDID16
+ GI.GstVideo.Enums: instance GHC.Show.Show GI.GstVideo.Enums.VideoCaptionType
+ GI.GstVideo.Enums: instance GHC.Show.Show GI.GstVideo.Enums.VideoVBIParserResult
+ GI.GstVideo.Flags: AnotherVideoOverlayFormatFlags :: Int -> VideoOverlayFormatFlags
+ GI.GstVideo.Flags: VideoBufferFlagsBottomField :: VideoBufferFlags
+ GI.GstVideo.Flags: VideoBufferFlagsTopField :: VideoBufferFlags
+ GI.GstVideo.Flags: VideoFrameFlagsBottomField :: VideoFrameFlags
+ GI.GstVideo.Flags: VideoFrameFlagsTopField :: VideoFrameFlags
+ GI.GstVideo.Flags: VideoOverlayFormatFlagsGlobalAlpha :: VideoOverlayFormatFlags
+ GI.GstVideo.Flags: VideoOverlayFormatFlagsNone :: VideoOverlayFormatFlags
+ GI.GstVideo.Flags: VideoOverlayFormatFlagsPremultipliedAlpha :: VideoOverlayFormatFlags
+ GI.GstVideo.Flags: data VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance Data.GI.Base.BasicTypes.BoxedFlags GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance Data.GI.Base.BasicTypes.IsGFlag GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance GHC.Classes.Eq GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance GHC.Classes.Ord GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance GHC.Enum.Enum GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Flags: instance GHC.Show.Show GI.GstVideo.Flags.VideoOverlayFormatFlags
+ GI.GstVideo.Functions: bufferAddVideoCaptionMeta :: (HasCallStack, MonadIO m) => Buffer -> VideoCaptionType -> ByteString -> m VideoCaptionMeta
+ GI.GstVideo.Functions: videoCaptionMetaApiGetType :: (HasCallStack, MonadIO m) => m GType
+ GI.GstVideo.Interfaces.ColorBalance: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Interfaces.ColorBalance.ColorBalance o) => GI.GstVideo.Interfaces.ColorBalance.IsColorBalance o
+ GI.GstVideo.Interfaces.ColorBalance: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Interfaces.ColorBalance.ColorBalance
+ GI.GstVideo.Interfaces.VideoDirection: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Interfaces.VideoDirection.VideoDirection o) => GI.GstVideo.Interfaces.VideoDirection.IsVideoDirection o
+ GI.GstVideo.Interfaces.VideoDirection: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Interfaces.VideoDirection.VideoDirection
+ GI.GstVideo.Objects.ColorBalanceChannel: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel o) => GI.GstVideo.Objects.ColorBalanceChannel.IsColorBalanceChannel o
+ GI.GstVideo.Objects.ColorBalanceChannel: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel
+ GI.GstVideo.Objects.VideoAggregator: VideoAggregator :: ManagedPtr VideoAggregator -> VideoAggregator
+ GI.GstVideo.Objects.VideoAggregator: class (GObject o, IsDescendantOf VideoAggregator o) => IsVideoAggregator o
+ GI.GstVideo.Objects.VideoAggregator: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoAggregator.VideoAggregator o) => GI.GstVideo.Objects.VideoAggregator.IsVideoAggregator o
+ GI.GstVideo.Objects.VideoAggregator: instance Data.GI.Base.BasicTypes.GObject GI.GstVideo.Objects.VideoAggregator.VideoAggregator
+ GI.GstVideo.Objects.VideoAggregator: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoAggregator.VideoAggregator
+ GI.GstVideo.Objects.VideoAggregator: newtype VideoAggregator
+ GI.GstVideo.Objects.VideoAggregator: noVideoAggregator :: Maybe VideoAggregator
+ GI.GstVideo.Objects.VideoAggregator: toVideoAggregator :: (MonadIO m, IsVideoAggregator o) => o -> m VideoAggregator
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: VideoAggregatorConvertPad :: ManagedPtr VideoAggregatorConvertPad -> VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: class (GObject o, IsDescendantOf VideoAggregatorConvertPad o) => IsVideoAggregatorConvertPad o
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: clearVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m ()
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: constructVideoAggregatorConvertPadConverterConfig :: IsVideoAggregatorConvertPad o => Structure -> IO (GValueConstruct o)
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: getVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m (Maybe Structure)
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoAggregatorConvertPad.VideoAggregatorConvertPad o) => GI.GstVideo.Objects.VideoAggregatorConvertPad.IsVideoAggregatorConvertPad o
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: instance Data.GI.Base.BasicTypes.GObject GI.GstVideo.Objects.VideoAggregatorConvertPad.VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoAggregatorConvertPad.VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: newtype VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: noVideoAggregatorConvertPad :: Maybe VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: setVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> Structure -> m ()
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: toVideoAggregatorConvertPad :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m VideoAggregatorConvertPad
+ GI.GstVideo.Objects.VideoAggregatorConvertPad: videoAggregatorConvertPadUpdateConversionInfo :: (HasCallStack, MonadIO m, IsVideoAggregatorConvertPad a) => a -> m ()
+ GI.GstVideo.Objects.VideoAggregatorPad: VideoAggregatorPad :: ManagedPtr VideoAggregatorPad -> VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: class (GObject o, IsDescendantOf VideoAggregatorPad o) => IsVideoAggregatorPad o
+ GI.GstVideo.Objects.VideoAggregatorPad: constructVideoAggregatorPadRepeatAfterEos :: IsVideoAggregatorPad o => Bool -> IO (GValueConstruct o)
+ GI.GstVideo.Objects.VideoAggregatorPad: constructVideoAggregatorPadZorder :: IsVideoAggregatorPad o => Word32 -> IO (GValueConstruct o)
+ GI.GstVideo.Objects.VideoAggregatorPad: getVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Bool
+ GI.GstVideo.Objects.VideoAggregatorPad: getVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Word32
+ GI.GstVideo.Objects.VideoAggregatorPad: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad o) => GI.GstVideo.Objects.VideoAggregatorPad.IsVideoAggregatorPad o
+ GI.GstVideo.Objects.VideoAggregatorPad: instance Data.GI.Base.BasicTypes.GObject GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: newtype VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: noVideoAggregatorPad :: Maybe VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: setVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> Bool -> m ()
+ GI.GstVideo.Objects.VideoAggregatorPad: setVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> Word32 -> m ()
+ GI.GstVideo.Objects.VideoAggregatorPad: toVideoAggregatorPad :: (MonadIO m, IsVideoAggregatorPad o) => o -> m VideoAggregatorPad
+ GI.GstVideo.Objects.VideoAggregatorPad: videoAggregatorPadGetCurrentBuffer :: (HasCallStack, MonadIO m, IsVideoAggregatorPad a) => a -> m Buffer
+ GI.GstVideo.Objects.VideoAggregatorPad: videoAggregatorPadGetPreparedFrame :: (HasCallStack, MonadIO m, IsVideoAggregatorPad a) => a -> m VideoFrame
+ GI.GstVideo.Objects.VideoAggregatorPad: videoAggregatorPadHasCurrentBuffer :: (HasCallStack, MonadIO m, IsVideoAggregatorPad a) => a -> m Bool
+ GI.GstVideo.Objects.VideoAggregatorPad: videoAggregatorPadSetNeedsAlpha :: (HasCallStack, MonadIO m, IsVideoAggregatorPad a) => a -> Bool -> m ()
+ GI.GstVideo.Objects.VideoBufferPool: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool o) => GI.GstVideo.Objects.VideoBufferPool.IsVideoBufferPool o
+ GI.GstVideo.Objects.VideoBufferPool: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoBufferPool.VideoBufferPool
+ GI.GstVideo.Objects.VideoDecoder: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoDecoder.VideoDecoder o) => GI.GstVideo.Objects.VideoDecoder.IsVideoDecoder o
+ GI.GstVideo.Objects.VideoDecoder: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoDecoder.VideoDecoder
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderSetInterlacedOutputState :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> VideoFormat -> VideoInterlaceMode -> Word32 -> Word32 -> Maybe VideoCodecState -> m VideoCodecState
+ GI.GstVideo.Objects.VideoEncoder: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoEncoder.VideoEncoder o) => GI.GstVideo.Objects.VideoEncoder.IsVideoEncoder o
+ GI.GstVideo.Objects.VideoEncoder: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoEncoder.VideoEncoder
+ GI.GstVideo.Objects.VideoFilter: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoFilter.VideoFilter o) => GI.GstVideo.Objects.VideoFilter.IsVideoFilter o
+ GI.GstVideo.Objects.VideoFilter: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoFilter.VideoFilter
+ GI.GstVideo.Objects.VideoSink: instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.GstVideo.Objects.VideoSink.VideoSink o) => GI.GstVideo.Objects.VideoSink.IsVideoSink o
+ GI.GstVideo.Objects.VideoSink: instance Data.GI.Base.Overloading.HasParentTypes GI.GstVideo.Objects.VideoSink.VideoSink
+ GI.GstVideo.Structs.VideoAffineTransformationMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoAffineTransformationMeta.VideoAffineTransformationMeta tag
+ GI.GstVideo.Structs.VideoAlignment: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoAlignment.VideoAlignment tag
+ GI.GstVideo.Structs.VideoAncillary: VideoAncillary :: ManagedPtr VideoAncillary -> VideoAncillary
+ GI.GstVideo.Structs.VideoAncillary: getVideoAncillaryDID :: MonadIO m => VideoAncillary -> m Word8
+ GI.GstVideo.Structs.VideoAncillary: getVideoAncillaryDataCount :: MonadIO m => VideoAncillary -> m Word8
+ GI.GstVideo.Structs.VideoAncillary: getVideoAncillarySDIDBlockNumber :: MonadIO m => VideoAncillary -> m Word8
+ GI.GstVideo.Structs.VideoAncillary: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoAncillary.VideoAncillary tag
+ GI.GstVideo.Structs.VideoAncillary: instance Data.GI.Base.BasicTypes.WrappedPtr GI.GstVideo.Structs.VideoAncillary.VideoAncillary
+ GI.GstVideo.Structs.VideoAncillary: newZeroVideoAncillary :: MonadIO m => m VideoAncillary
+ GI.GstVideo.Structs.VideoAncillary: newtype VideoAncillary
+ GI.GstVideo.Structs.VideoAncillary: noVideoAncillary :: Maybe VideoAncillary
+ GI.GstVideo.Structs.VideoAncillary: setVideoAncillaryDID :: MonadIO m => VideoAncillary -> Word8 -> m ()
+ GI.GstVideo.Structs.VideoAncillary: setVideoAncillaryDataCount :: MonadIO m => VideoAncillary -> Word8 -> m ()
+ GI.GstVideo.Structs.VideoAncillary: setVideoAncillarySDIDBlockNumber :: MonadIO m => VideoAncillary -> Word8 -> m ()
+ GI.GstVideo.Structs.VideoCaptionMeta: VideoCaptionMeta :: ManagedPtr VideoCaptionMeta -> VideoCaptionMeta
+ GI.GstVideo.Structs.VideoCaptionMeta: getVideoCaptionMetaCaptionType :: MonadIO m => VideoCaptionMeta -> m VideoCaptionType
+ GI.GstVideo.Structs.VideoCaptionMeta: getVideoCaptionMetaMeta :: MonadIO m => VideoCaptionMeta -> m Meta
+ GI.GstVideo.Structs.VideoCaptionMeta: getVideoCaptionMetaSize :: MonadIO m => VideoCaptionMeta -> m Word64
+ GI.GstVideo.Structs.VideoCaptionMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCaptionMeta.VideoCaptionMeta tag
+ GI.GstVideo.Structs.VideoCaptionMeta: instance Data.GI.Base.BasicTypes.WrappedPtr GI.GstVideo.Structs.VideoCaptionMeta.VideoCaptionMeta
+ GI.GstVideo.Structs.VideoCaptionMeta: newZeroVideoCaptionMeta :: MonadIO m => m VideoCaptionMeta
+ GI.GstVideo.Structs.VideoCaptionMeta: newtype VideoCaptionMeta
+ GI.GstVideo.Structs.VideoCaptionMeta: noVideoCaptionMeta :: Maybe VideoCaptionMeta
+ GI.GstVideo.Structs.VideoCaptionMeta: setVideoCaptionMetaCaptionType :: MonadIO m => VideoCaptionMeta -> VideoCaptionType -> m ()
+ GI.GstVideo.Structs.VideoCaptionMeta: setVideoCaptionMetaSize :: MonadIO m => VideoCaptionMeta -> Word64 -> m ()
+ GI.GstVideo.Structs.VideoCaptionMeta: videoCaptionMetaGetInfo :: (HasCallStack, MonadIO m) => m MetaInfo
+ GI.GstVideo.Structs.VideoCodecFrame: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame tag
+ GI.GstVideo.Structs.VideoCodecState: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCodecState.VideoCodecState tag
+ GI.GstVideo.Structs.VideoColorPrimariesInfo: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoColorPrimariesInfo.VideoColorPrimariesInfo tag
+ GI.GstVideo.Structs.VideoColorimetry: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry tag
+ GI.GstVideo.Structs.VideoCropMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoCropMeta.VideoCropMeta tag
+ GI.GstVideo.Structs.VideoFormatInfo: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo tag
+ GI.GstVideo.Structs.VideoFrame: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoFrame.VideoFrame tag
+ GI.GstVideo.Structs.VideoGLTextureUploadMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta tag
+ GI.GstVideo.Structs.VideoInfo: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoInfo.VideoInfo tag
+ GI.GstVideo.Structs.VideoInfo: videoInfoSetInterlacedFormat :: (HasCallStack, MonadIO m) => VideoInfo -> VideoFormat -> VideoInterlaceMode -> Word32 -> Word32 -> m Bool
+ GI.GstVideo.Structs.VideoMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoMeta.VideoMeta tag
+ GI.GstVideo.Structs.VideoMetaTransform: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoMetaTransform.VideoMetaTransform tag
+ GI.GstVideo.Structs.VideoOverlayCompositionMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta tag
+ GI.GstVideo.Structs.VideoRectangle: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoRectangle.VideoRectangle tag
+ GI.GstVideo.Structs.VideoRegionOfInterestMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta tag
+ GI.GstVideo.Structs.VideoResampler: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoResampler.VideoResampler tag
+ GI.GstVideo.Structs.VideoTimeCode: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode tag
+ GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeInitFromDateTimeFull :: (HasCallStack, MonadIO m) => VideoTimeCode -> Word32 -> Word32 -> DateTime -> [VideoTimeCodeFlags] -> Word32 -> m Bool
+ GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeNewFromDateTimeFull :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> DateTime -> [VideoTimeCodeFlags] -> Word32 -> m VideoTimeCode
+ GI.GstVideo.Structs.VideoTimeCodeConfig: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeConfig.VideoTimeCodeConfig tag
+ GI.GstVideo.Structs.VideoTimeCodeInterval: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval tag
+ GI.GstVideo.Structs.VideoTimeCodeMeta: instance (tag Data.Type.Equality.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta tag
+ GI.GstVideo.Structs.VideoVBIEncoder: VideoVBIEncoder :: ManagedPtr VideoVBIEncoder -> VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: instance Data.GI.Base.BasicTypes.BoxedObject GI.GstVideo.Structs.VideoVBIEncoder.VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: newtype VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: noVideoVBIEncoder :: Maybe VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: videoVBIEncoderAddAncillary :: (HasCallStack, MonadIO m) => VideoVBIEncoder -> Bool -> Word8 -> Word8 -> ByteString -> m Bool
+ GI.GstVideo.Structs.VideoVBIEncoder: videoVBIEncoderCopy :: (HasCallStack, MonadIO m) => VideoVBIEncoder -> m VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: videoVBIEncoderFree :: (HasCallStack, MonadIO m) => VideoVBIEncoder -> m ()
+ GI.GstVideo.Structs.VideoVBIEncoder: videoVBIEncoderNew :: (HasCallStack, MonadIO m) => VideoFormat -> Word32 -> m VideoVBIEncoder
+ GI.GstVideo.Structs.VideoVBIEncoder: videoVBIEncoderWriteLine :: (HasCallStack, MonadIO m) => VideoVBIEncoder -> Word8 -> m ()
+ GI.GstVideo.Structs.VideoVBIParser: VideoVBIParser :: ManagedPtr VideoVBIParser -> VideoVBIParser
+ GI.GstVideo.Structs.VideoVBIParser: instance Data.GI.Base.BasicTypes.BoxedObject GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser
+ GI.GstVideo.Structs.VideoVBIParser: newtype VideoVBIParser
+ GI.GstVideo.Structs.VideoVBIParser: noVideoVBIParser :: Maybe VideoVBIParser
+ GI.GstVideo.Structs.VideoVBIParser: videoVBIParserAddLine :: (HasCallStack, MonadIO m) => VideoVBIParser -> Ptr Word8 -> m ()
+ GI.GstVideo.Structs.VideoVBIParser: videoVBIParserCopy :: (HasCallStack, MonadIO m) => VideoVBIParser -> m VideoVBIParser
+ GI.GstVideo.Structs.VideoVBIParser: videoVBIParserFree :: (HasCallStack, MonadIO m) => VideoVBIParser -> m ()
+ GI.GstVideo.Structs.VideoVBIParser: videoVBIParserGetAncillary :: (HasCallStack, MonadIO m) => VideoVBIParser -> m (VideoVBIParserResult, VideoAncillary)
+ GI.GstVideo.Structs.VideoVBIParser: videoVBIParserNew :: (HasCallStack, MonadIO m) => VideoFormat -> Word32 -> m VideoVBIParser
- GI.GstVideo.Callbacks: genClosure_VideoAffineTransformationGetMatrix :: VideoAffineTransformationGetMatrix -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoAffineTransformationGetMatrix :: MonadIO m => VideoAffineTransformationGetMatrix -> m (GClosure C_VideoAffineTransformationGetMatrix)
- GI.GstVideo.Callbacks: genClosure_VideoConvertSampleCallback :: VideoConvertSampleCallback -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoConvertSampleCallback :: MonadIO m => VideoConvertSampleCallback -> m (GClosure C_VideoConvertSampleCallback)
- GI.GstVideo.Callbacks: genClosure_VideoFormatPack :: VideoFormatPack -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoFormatPack :: MonadIO m => VideoFormatPack -> m (GClosure C_VideoFormatPack)
- GI.GstVideo.Callbacks: genClosure_VideoFormatUnpack :: VideoFormatUnpack -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoFormatUnpack :: MonadIO m => VideoFormatUnpack -> m (GClosure C_VideoFormatUnpack)
- GI.GstVideo.Callbacks: genClosure_VideoGLTextureUpload :: VideoGLTextureUpload -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoGLTextureUpload :: MonadIO m => VideoGLTextureUpload -> m (GClosure C_VideoGLTextureUpload)
- GI.GstVideo.Callbacks: genClosure_VideoMetaMapFieldCallback :: VideoMetaMapFieldCallback -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoMetaMapFieldCallback :: MonadIO m => VideoMetaMapFieldCallback -> m (GClosure C_VideoMetaMapFieldCallback)
- GI.GstVideo.Callbacks: genClosure_VideoMetaUnmapFieldCallback :: VideoMetaUnmapFieldCallback -> IO Closure
+ GI.GstVideo.Callbacks: genClosure_VideoMetaUnmapFieldCallback :: MonadIO m => VideoMetaUnmapFieldCallback -> m (GClosure C_VideoMetaUnmapFieldCallback)
- GI.GstVideo.Callbacks: type VideoFormatPack = VideoFormatInfo /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -> [VideoPackFlags] /@flags@/: flags to control the packing -> Ptr () /@src@/: a source array -> Int32 /@sstride@/: the source array stride -> Ptr () /@data@/: pointers to the destination data planes -> Int32 /@stride@/: strides of the destination planes -> [VideoChromaSite] /@chromaSite@/: the chroma siting of the target when subsampled (not used) -> Int32 /@y@/: the y position in the image to pack to -> Int32 /@width@/: the amount of pixels to pack. -> IO ()
+ GI.GstVideo.Callbacks: type VideoFormatPack = VideoFormatInfo " /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' " -> [VideoPackFlags] " /@flags@/: flags to control the packing " -> Ptr () " /@src@/: a source array " -> Int32 " /@sstride@/: the source array stride " -> Ptr () " /@data@/: pointers to the destination data planes " -> Int32 " /@stride@/: strides of the destination planes " -> [VideoChromaSite] " /@chromaSite@/: the chroma siting of the target when subsampled (not used) " -> Int32 " /@y@/: the y position in the image to pack to " -> Int32 " /@width@/: the amount of pixels to pack. " -> IO ()
- GI.GstVideo.Callbacks: type VideoFormatUnpack = VideoFormatInfo /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -> [VideoPackFlags] /@flags@/: flags to control the unpacking -> Ptr () /@dest@/: a destination array -> Ptr () /@data@/: pointers to the data planes -> Int32 /@stride@/: strides of the planes -> Int32 /@x@/: the x position in the image to start from -> Int32 /@y@/: the y position in the image to start from -> Int32 /@width@/: the amount of pixels to unpack. -> IO ()
+ GI.GstVideo.Callbacks: type VideoFormatUnpack = VideoFormatInfo " /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' " -> [VideoPackFlags] " /@flags@/: flags to control the unpacking " -> Ptr () " /@dest@/: a destination array " -> Ptr () " /@data@/: pointers to the data planes " -> Int32 " /@stride@/: strides of the planes " -> Int32 " /@x@/: the x position in the image to start from " -> Int32 " /@y@/: the y position in the image to start from " -> Int32 " /@width@/: the amount of pixels to unpack. " -> IO ()
- GI.GstVideo.Functions: bufferAddVideoMetaFull :: (HasCallStack, MonadIO m) => Buffer -> [VideoFrameFlags] -> VideoFormat -> Word32 -> Word32 -> Word32 -> Word64 -> Int32 -> m VideoMeta
+ GI.GstVideo.Functions: bufferAddVideoMetaFull :: (HasCallStack, MonadIO m) => Buffer -> [VideoFrameFlags] -> VideoFormat -> Word32 -> Word32 -> Word32 -> [Word64] -> [Int32] -> m VideoMeta
- GI.GstVideo.Functions: bufferAddVideoOverlayCompositionMeta :: (HasCallStack, MonadIO m) => Buffer -> Maybe (VideoOverlayComposition) -> m VideoOverlayCompositionMeta
+ GI.GstVideo.Functions: bufferAddVideoOverlayCompositionMeta :: (HasCallStack, MonadIO m) => Buffer -> Maybe VideoOverlayComposition -> m VideoOverlayCompositionMeta
- GI.GstVideo.Functions: bufferAddVideoTimeCodeMeta :: (HasCallStack, MonadIO m) => Buffer -> VideoTimeCode -> m VideoTimeCodeMeta
+ GI.GstVideo.Functions: bufferAddVideoTimeCodeMeta :: (HasCallStack, MonadIO m) => Buffer -> VideoTimeCode -> m (Maybe VideoTimeCodeMeta)
- GI.GstVideo.Functions: videoBlendScaleLinearRGBA :: (HasCallStack, MonadIO m) => VideoInfo -> Buffer -> Int32 -> Int32 -> m ((VideoInfo, Buffer))
+ GI.GstVideo.Functions: videoBlendScaleLinearRGBA :: (HasCallStack, MonadIO m) => VideoInfo -> Buffer -> Int32 -> Int32 -> m (VideoInfo, Buffer)
- GI.GstVideo.Functions: videoCalculateDisplayRatio :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m ((Bool, Word32, Word32))
+ GI.GstVideo.Functions: videoCalculateDisplayRatio :: (HasCallStack, MonadIO m) => Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m (Bool, Word32, Word32)
- GI.GstVideo.Functions: videoEventParseDownstreamForceKeyUnit :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Word64, Word64, Word64, Bool, Word32))
+ GI.GstVideo.Functions: videoEventParseDownstreamForceKeyUnit :: (HasCallStack, MonadIO m) => Event -> m (Bool, Word64, Word64, Word64, Bool, Word32)
- GI.GstVideo.Functions: videoEventParseStillFrame :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Bool))
+ GI.GstVideo.Functions: videoEventParseStillFrame :: (HasCallStack, MonadIO m) => Event -> m (Bool, Bool)
- GI.GstVideo.Functions: videoEventParseUpstreamForceKeyUnit :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Word64, Bool, Word32))
+ GI.GstVideo.Functions: videoEventParseUpstreamForceKeyUnit :: (HasCallStack, MonadIO m) => Event -> m (Bool, Word64, Bool, Word32)
- GI.GstVideo.Functions: videoGuessFramerate :: (HasCallStack, MonadIO m) => Word64 -> m ((Bool, Int32, Int32))
+ GI.GstVideo.Functions: videoGuessFramerate :: (HasCallStack, MonadIO m) => Word64 -> m (Bool, Int32, Int32)
- GI.GstVideo.Interfaces.ColorBalance: ColorBalance :: (ManagedPtr ColorBalance) -> ColorBalance
+ GI.GstVideo.Interfaces.ColorBalance: ColorBalance :: ManagedPtr ColorBalance -> ColorBalance
- GI.GstVideo.Interfaces.ColorBalance: class GObject o => IsColorBalance o
+ GI.GstVideo.Interfaces.ColorBalance: class (GObject o, IsDescendantOf ColorBalance o) => IsColorBalance o
- GI.GstVideo.Interfaces.ColorBalance: genClosure_ColorBalanceValueChanged :: ColorBalanceValueChangedCallback -> IO Closure
+ GI.GstVideo.Interfaces.ColorBalance: genClosure_ColorBalanceValueChanged :: MonadIO m => ColorBalanceValueChangedCallback -> m (GClosure C_ColorBalanceValueChangedCallback)
- GI.GstVideo.Interfaces.ColorBalance: type ColorBalanceValueChangedCallback = ColorBalanceChannel /@channel@/: The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' -> Int32 /@value@/: The new value -> IO ()
+ GI.GstVideo.Interfaces.ColorBalance: type ColorBalanceValueChangedCallback = ColorBalanceChannel " /@channel@/: The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' " -> Int32 " /@value@/: The new value " -> IO ()
- GI.GstVideo.Interfaces.Navigation: Navigation :: (ManagedPtr Navigation) -> Navigation
+ GI.GstVideo.Interfaces.Navigation: Navigation :: ManagedPtr Navigation -> Navigation
- GI.GstVideo.Interfaces.Navigation: navigationEventParseCommand :: (HasCallStack, MonadIO m) => Event -> m ((Bool, NavigationCommand))
+ GI.GstVideo.Interfaces.Navigation: navigationEventParseCommand :: (HasCallStack, MonadIO m) => Event -> m (Bool, NavigationCommand)
- GI.GstVideo.Interfaces.Navigation: navigationEventParseKeyEvent :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Text))
+ GI.GstVideo.Interfaces.Navigation: navigationEventParseKeyEvent :: (HasCallStack, MonadIO m) => Event -> m (Bool, Text)
- GI.GstVideo.Interfaces.Navigation: navigationEventParseMouseButtonEvent :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Int32, Double, Double))
+ GI.GstVideo.Interfaces.Navigation: navigationEventParseMouseButtonEvent :: (HasCallStack, MonadIO m) => Event -> m (Bool, Int32, Double, Double)
- GI.GstVideo.Interfaces.Navigation: navigationEventParseMouseMoveEvent :: (HasCallStack, MonadIO m) => Event -> m ((Bool, Double, Double))
+ GI.GstVideo.Interfaces.Navigation: navigationEventParseMouseMoveEvent :: (HasCallStack, MonadIO m) => Event -> m (Bool, Double, Double)
- GI.GstVideo.Interfaces.Navigation: navigationMessageParseAnglesChanged :: (HasCallStack, MonadIO m) => Message -> m ((Bool, Word32, Word32))
+ GI.GstVideo.Interfaces.Navigation: navigationMessageParseAnglesChanged :: (HasCallStack, MonadIO m) => Message -> m (Bool, Word32, Word32)
- GI.GstVideo.Interfaces.Navigation: navigationMessageParseEvent :: (HasCallStack, MonadIO m) => Message -> m ((Bool, Event))
+ GI.GstVideo.Interfaces.Navigation: navigationMessageParseEvent :: (HasCallStack, MonadIO m) => Message -> m (Bool, Event)
- GI.GstVideo.Interfaces.Navigation: navigationMessageParseMouseOver :: (HasCallStack, MonadIO m) => Message -> m ((Bool, Bool))
+ GI.GstVideo.Interfaces.Navigation: navigationMessageParseMouseOver :: (HasCallStack, MonadIO m) => Message -> m (Bool, Bool)
- GI.GstVideo.Interfaces.Navigation: navigationQueryParseAngles :: (HasCallStack, MonadIO m) => Query -> m ((Bool, Word32, Word32))
+ GI.GstVideo.Interfaces.Navigation: navigationQueryParseAngles :: (HasCallStack, MonadIO m) => Query -> m (Bool, Word32, Word32)
- GI.GstVideo.Interfaces.Navigation: navigationQueryParseCommandsLength :: (HasCallStack, MonadIO m) => Query -> m ((Bool, Word32))
+ GI.GstVideo.Interfaces.Navigation: navigationQueryParseCommandsLength :: (HasCallStack, MonadIO m) => Query -> m (Bool, Word32)
- GI.GstVideo.Interfaces.Navigation: navigationQueryParseCommandsNth :: (HasCallStack, MonadIO m) => Query -> Word32 -> m ((Bool, NavigationCommand))
+ GI.GstVideo.Interfaces.Navigation: navigationQueryParseCommandsNth :: (HasCallStack, MonadIO m) => Query -> Word32 -> m (Bool, NavigationCommand)
- GI.GstVideo.Interfaces.VideoDirection: VideoDirection :: (ManagedPtr VideoDirection) -> VideoDirection
+ GI.GstVideo.Interfaces.VideoDirection: VideoDirection :: ManagedPtr VideoDirection -> VideoDirection
- GI.GstVideo.Interfaces.VideoDirection: class GObject o => IsVideoDirection o
+ GI.GstVideo.Interfaces.VideoDirection: class (GObject o, IsDescendantOf VideoDirection o) => IsVideoDirection o
- GI.GstVideo.Interfaces.VideoDirection: constructVideoDirectionVideoDirection :: (IsVideoDirection o) => VideoOrientationMethod -> IO (GValueConstruct o)
+ GI.GstVideo.Interfaces.VideoDirection: constructVideoDirectionVideoDirection :: IsVideoDirection o => VideoOrientationMethod -> IO (GValueConstruct o)
- GI.GstVideo.Interfaces.VideoOrientation: VideoOrientation :: (ManagedPtr VideoOrientation) -> VideoOrientation
+ GI.GstVideo.Interfaces.VideoOrientation: VideoOrientation :: ManagedPtr VideoOrientation -> VideoOrientation
- GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetHcenter :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m ((Bool, Int32))
+ GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetHcenter :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m (Bool, Int32)
- GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetHflip :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m ((Bool, Bool))
+ GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetHflip :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m (Bool, Bool)
- GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetVcenter :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m ((Bool, Int32))
+ GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetVcenter :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m (Bool, Int32)
- GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetVflip :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m ((Bool, Bool))
+ GI.GstVideo.Interfaces.VideoOrientation: videoOrientationGetVflip :: (HasCallStack, MonadIO m, IsVideoOrientation a) => a -> m (Bool, Bool)
- GI.GstVideo.Interfaces.VideoOverlay: VideoOverlay :: (ManagedPtr VideoOverlay) -> VideoOverlay
+ GI.GstVideo.Interfaces.VideoOverlay: VideoOverlay :: ManagedPtr VideoOverlay -> VideoOverlay
- GI.GstVideo.Objects.ColorBalanceChannel: ColorBalanceChannel :: (ManagedPtr ColorBalanceChannel) -> ColorBalanceChannel
+ GI.GstVideo.Objects.ColorBalanceChannel: ColorBalanceChannel :: ManagedPtr ColorBalanceChannel -> ColorBalanceChannel
- GI.GstVideo.Objects.ColorBalanceChannel: class GObject o => IsColorBalanceChannel o
+ GI.GstVideo.Objects.ColorBalanceChannel: class (GObject o, IsDescendantOf ColorBalanceChannel o) => IsColorBalanceChannel o
- GI.GstVideo.Objects.ColorBalanceChannel: genClosure_ColorBalanceChannelValueChanged :: ColorBalanceChannelValueChangedCallback -> IO Closure
+ GI.GstVideo.Objects.ColorBalanceChannel: genClosure_ColorBalanceChannelValueChanged :: MonadIO m => ColorBalanceChannelValueChangedCallback -> m (GClosure C_ColorBalanceChannelValueChangedCallback)
- GI.GstVideo.Objects.ColorBalanceChannel: type ColorBalanceChannelValueChangedCallback = Int32 /@value@/: The new value -> IO ()
+ GI.GstVideo.Objects.ColorBalanceChannel: type ColorBalanceChannelValueChangedCallback = Int32 " /@value@/: The new value " -> IO ()
- GI.GstVideo.Objects.VideoBufferPool: VideoBufferPool :: (ManagedPtr VideoBufferPool) -> VideoBufferPool
+ GI.GstVideo.Objects.VideoBufferPool: VideoBufferPool :: ManagedPtr VideoBufferPool -> VideoBufferPool
- GI.GstVideo.Objects.VideoBufferPool: class GObject o => IsVideoBufferPool o
+ GI.GstVideo.Objects.VideoBufferPool: class (GObject o, IsDescendantOf VideoBufferPool o) => IsVideoBufferPool o
- GI.GstVideo.Objects.VideoDecoder: VideoDecoder :: (ManagedPtr VideoDecoder) -> VideoDecoder
+ GI.GstVideo.Objects.VideoDecoder: VideoDecoder :: ManagedPtr VideoDecoder -> VideoDecoder
- GI.GstVideo.Objects.VideoDecoder: class GObject o => IsVideoDecoder o
+ GI.GstVideo.Objects.VideoDecoder: class (GObject o, IsDescendantOf VideoDecoder o) => IsVideoDecoder o
- GI.GstVideo.Objects.VideoDecoder: videoDecoderGetAllocator :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> m ((Allocator, AllocationParams))
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderGetAllocator :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> m (Allocator, AllocationParams)
- GI.GstVideo.Objects.VideoDecoder: videoDecoderGetLatency :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> m ((Word64, Word64))
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderGetLatency :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> m (Word64, Word64)
- GI.GstVideo.Objects.VideoDecoder: videoDecoderMergeTags :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> Maybe (TagList) -> TagMergeMode -> m ()
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderMergeTags :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> Maybe TagList -> TagMergeMode -> m ()
- GI.GstVideo.Objects.VideoDecoder: videoDecoderProxyGetcaps :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> Maybe (Caps) -> Maybe (Caps) -> m Caps
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderProxyGetcaps :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> Maybe Caps -> Maybe Caps -> m Caps
- GI.GstVideo.Objects.VideoDecoder: videoDecoderSetOutputState :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> VideoFormat -> Word32 -> Word32 -> Maybe (VideoCodecState) -> m VideoCodecState
+ GI.GstVideo.Objects.VideoDecoder: videoDecoderSetOutputState :: (HasCallStack, MonadIO m, IsVideoDecoder a) => a -> VideoFormat -> Word32 -> Word32 -> Maybe VideoCodecState -> m VideoCodecState
- GI.GstVideo.Objects.VideoEncoder: VideoEncoder :: (ManagedPtr VideoEncoder) -> VideoEncoder
+ GI.GstVideo.Objects.VideoEncoder: VideoEncoder :: ManagedPtr VideoEncoder -> VideoEncoder
- GI.GstVideo.Objects.VideoEncoder: class GObject o => IsVideoEncoder o
+ GI.GstVideo.Objects.VideoEncoder: class (GObject o, IsDescendantOf VideoEncoder o) => IsVideoEncoder o
- GI.GstVideo.Objects.VideoEncoder: constructVideoEncoderQos :: (IsVideoEncoder o) => Bool -> IO (GValueConstruct o)
+ GI.GstVideo.Objects.VideoEncoder: constructVideoEncoderQos :: IsVideoEncoder o => Bool -> IO (GValueConstruct o)
- GI.GstVideo.Objects.VideoEncoder: videoEncoderGetAllocator :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> m ((Allocator, AllocationParams))
+ GI.GstVideo.Objects.VideoEncoder: videoEncoderGetAllocator :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> m (Allocator, AllocationParams)
- GI.GstVideo.Objects.VideoEncoder: videoEncoderGetLatency :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> m ((Word64, Word64))
+ GI.GstVideo.Objects.VideoEncoder: videoEncoderGetLatency :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> m (Word64, Word64)
- GI.GstVideo.Objects.VideoEncoder: videoEncoderMergeTags :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Maybe (TagList) -> TagMergeMode -> m ()
+ GI.GstVideo.Objects.VideoEncoder: videoEncoderMergeTags :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Maybe TagList -> TagMergeMode -> m ()
- GI.GstVideo.Objects.VideoEncoder: videoEncoderProxyGetcaps :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Maybe (Caps) -> Maybe (Caps) -> m Caps
+ GI.GstVideo.Objects.VideoEncoder: videoEncoderProxyGetcaps :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Maybe Caps -> Maybe Caps -> m Caps
- GI.GstVideo.Objects.VideoEncoder: videoEncoderSetOutputState :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Caps -> Maybe (VideoCodecState) -> m VideoCodecState
+ GI.GstVideo.Objects.VideoEncoder: videoEncoderSetOutputState :: (HasCallStack, MonadIO m, IsVideoEncoder a) => a -> Caps -> Maybe VideoCodecState -> m VideoCodecState
- GI.GstVideo.Objects.VideoFilter: VideoFilter :: (ManagedPtr VideoFilter) -> VideoFilter
+ GI.GstVideo.Objects.VideoFilter: VideoFilter :: ManagedPtr VideoFilter -> VideoFilter
- GI.GstVideo.Objects.VideoFilter: class GObject o => IsVideoFilter o
+ GI.GstVideo.Objects.VideoFilter: class (GObject o, IsDescendantOf VideoFilter o) => IsVideoFilter o
- GI.GstVideo.Objects.VideoSink: VideoSink :: (ManagedPtr VideoSink) -> VideoSink
+ GI.GstVideo.Objects.VideoSink: VideoSink :: ManagedPtr VideoSink -> VideoSink
- GI.GstVideo.Objects.VideoSink: class GObject o => IsVideoSink o
+ GI.GstVideo.Objects.VideoSink: class (GObject o, IsDescendantOf VideoSink o) => IsVideoSink o
- GI.GstVideo.Objects.VideoSink: constructVideoSinkShowPrerollFrame :: (IsVideoSink o) => Bool -> IO (GValueConstruct o)
+ GI.GstVideo.Objects.VideoSink: constructVideoSinkShowPrerollFrame :: IsVideoSink o => Bool -> IO (GValueConstruct o)
- GI.GstVideo.Structs.VideoAffineTransformationMeta: VideoAffineTransformationMeta :: (ManagedPtr VideoAffineTransformationMeta) -> VideoAffineTransformationMeta
+ GI.GstVideo.Structs.VideoAffineTransformationMeta: VideoAffineTransformationMeta :: ManagedPtr VideoAffineTransformationMeta -> VideoAffineTransformationMeta
- GI.GstVideo.Structs.VideoAlignment: VideoAlignment :: (ManagedPtr VideoAlignment) -> VideoAlignment
+ GI.GstVideo.Structs.VideoAlignment: VideoAlignment :: ManagedPtr VideoAlignment -> VideoAlignment
- GI.GstVideo.Structs.VideoChromaResample: VideoChromaResample :: (ManagedPtr VideoChromaResample) -> VideoChromaResample
+ GI.GstVideo.Structs.VideoChromaResample: VideoChromaResample :: ManagedPtr VideoChromaResample -> VideoChromaResample
- GI.GstVideo.Structs.VideoCodecFrame: VideoCodecFrame :: (ManagedPtr VideoCodecFrame) -> VideoCodecFrame
+ GI.GstVideo.Structs.VideoCodecFrame: VideoCodecFrame :: ManagedPtr VideoCodecFrame -> VideoCodecFrame
- GI.GstVideo.Structs.VideoCodecState: VideoCodecState :: (ManagedPtr VideoCodecState) -> VideoCodecState
+ GI.GstVideo.Structs.VideoCodecState: VideoCodecState :: ManagedPtr VideoCodecState -> VideoCodecState
- GI.GstVideo.Structs.VideoColorPrimariesInfo: VideoColorPrimariesInfo :: (ManagedPtr VideoColorPrimariesInfo) -> VideoColorPrimariesInfo
+ GI.GstVideo.Structs.VideoColorPrimariesInfo: VideoColorPrimariesInfo :: ManagedPtr VideoColorPrimariesInfo -> VideoColorPrimariesInfo
- GI.GstVideo.Structs.VideoColorimetry: VideoColorimetry :: (ManagedPtr VideoColorimetry) -> VideoColorimetry
+ GI.GstVideo.Structs.VideoColorimetry: VideoColorimetry :: ManagedPtr VideoColorimetry -> VideoColorimetry
- GI.GstVideo.Structs.VideoConverter: VideoConverter :: (ManagedPtr VideoConverter) -> VideoConverter
+ GI.GstVideo.Structs.VideoConverter: VideoConverter :: ManagedPtr VideoConverter -> VideoConverter
- GI.GstVideo.Structs.VideoCropMeta: VideoCropMeta :: (ManagedPtr VideoCropMeta) -> VideoCropMeta
+ GI.GstVideo.Structs.VideoCropMeta: VideoCropMeta :: ManagedPtr VideoCropMeta -> VideoCropMeta
- GI.GstVideo.Structs.VideoDither: VideoDither :: (ManagedPtr VideoDither) -> VideoDither
+ GI.GstVideo.Structs.VideoDither: VideoDither :: ManagedPtr VideoDither -> VideoDither
- GI.GstVideo.Structs.VideoFormatInfo: VideoFormatInfo :: (ManagedPtr VideoFormatInfo) -> VideoFormatInfo
+ GI.GstVideo.Structs.VideoFormatInfo: VideoFormatInfo :: ManagedPtr VideoFormatInfo -> VideoFormatInfo
- GI.GstVideo.Structs.VideoFrame: VideoFrame :: (ManagedPtr VideoFrame) -> VideoFrame
+ GI.GstVideo.Structs.VideoFrame: VideoFrame :: ManagedPtr VideoFrame -> VideoFrame
- GI.GstVideo.Structs.VideoGLTextureUploadMeta: VideoGLTextureUploadMeta :: (ManagedPtr VideoGLTextureUploadMeta) -> VideoGLTextureUploadMeta
+ GI.GstVideo.Structs.VideoGLTextureUploadMeta: VideoGLTextureUploadMeta :: ManagedPtr VideoGLTextureUploadMeta -> VideoGLTextureUploadMeta
- GI.GstVideo.Structs.VideoInfo: VideoInfo :: (ManagedPtr VideoInfo) -> VideoInfo
+ GI.GstVideo.Structs.VideoInfo: VideoInfo :: ManagedPtr VideoInfo -> VideoInfo
- GI.GstVideo.Structs.VideoInfo: videoInfoConvert :: (HasCallStack, MonadIO m) => VideoInfo -> Format -> Int64 -> Format -> m ((Bool, Int64))
+ GI.GstVideo.Structs.VideoInfo: videoInfoConvert :: (HasCallStack, MonadIO m) => VideoInfo -> Format -> Int64 -> Format -> m (Bool, Int64)
- GI.GstVideo.Structs.VideoMeta: VideoMeta :: (ManagedPtr VideoMeta) -> VideoMeta
+ GI.GstVideo.Structs.VideoMeta: VideoMeta :: ManagedPtr VideoMeta -> VideoMeta
- GI.GstVideo.Structs.VideoMeta: videoMetaMap :: (HasCallStack, MonadIO m) => VideoMeta -> Word32 -> MapInfo -> [MapFlags] -> m ((Bool, Ptr (), Int32))
+ GI.GstVideo.Structs.VideoMeta: videoMetaMap :: (HasCallStack, MonadIO m) => VideoMeta -> Word32 -> MapInfo -> [MapFlags] -> m (Bool, Ptr (), Int32)
- GI.GstVideo.Structs.VideoMetaTransform: VideoMetaTransform :: (ManagedPtr VideoMetaTransform) -> VideoMetaTransform
+ GI.GstVideo.Structs.VideoMetaTransform: VideoMetaTransform :: ManagedPtr VideoMetaTransform -> VideoMetaTransform
- GI.GstVideo.Structs.VideoOverlayComposition: VideoOverlayComposition :: (ManagedPtr VideoOverlayComposition) -> VideoOverlayComposition
+ GI.GstVideo.Structs.VideoOverlayComposition: VideoOverlayComposition :: ManagedPtr VideoOverlayComposition -> VideoOverlayComposition
- GI.GstVideo.Structs.VideoOverlayCompositionMeta: VideoOverlayCompositionMeta :: (ManagedPtr VideoOverlayCompositionMeta) -> VideoOverlayCompositionMeta
+ GI.GstVideo.Structs.VideoOverlayCompositionMeta: VideoOverlayCompositionMeta :: ManagedPtr VideoOverlayCompositionMeta -> VideoOverlayCompositionMeta
- GI.GstVideo.Structs.VideoOverlayRectangle: VideoOverlayRectangle :: (ManagedPtr VideoOverlayRectangle) -> VideoOverlayRectangle
+ GI.GstVideo.Structs.VideoOverlayRectangle: VideoOverlayRectangle :: ManagedPtr VideoOverlayRectangle -> VideoOverlayRectangle
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetFlags :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> m VideoOverlayFormatFlags
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetFlags :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> m [VideoOverlayFormatFlags]
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsArgb :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsArgb :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsAyuv :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsAyuv :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsRaw :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsRaw :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledArgb :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledArgb :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledAyuv :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledAyuv :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledRaw :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> VideoOverlayFormatFlags -> m Buffer
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetPixelsUnscaledRaw :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> [VideoOverlayFormatFlags] -> m Buffer
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetRenderRectangle :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> m ((Bool, Int32, Int32, Word32, Word32))
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleGetRenderRectangle :: (HasCallStack, MonadIO m) => VideoOverlayRectangle -> m (Bool, Int32, Int32, Word32, Word32)
- GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleNewRaw :: (HasCallStack, MonadIO m) => Buffer -> Int32 -> Int32 -> Word32 -> Word32 -> VideoOverlayFormatFlags -> m VideoOverlayRectangle
+ GI.GstVideo.Structs.VideoOverlayRectangle: videoOverlayRectangleNewRaw :: (HasCallStack, MonadIO m) => Buffer -> Int32 -> Int32 -> Word32 -> Word32 -> [VideoOverlayFormatFlags] -> m VideoOverlayRectangle
- GI.GstVideo.Structs.VideoRectangle: VideoRectangle :: (ManagedPtr VideoRectangle) -> VideoRectangle
+ GI.GstVideo.Structs.VideoRectangle: VideoRectangle :: ManagedPtr VideoRectangle -> VideoRectangle
- GI.GstVideo.Structs.VideoRegionOfInterestMeta: VideoRegionOfInterestMeta :: (ManagedPtr VideoRegionOfInterestMeta) -> VideoRegionOfInterestMeta
+ GI.GstVideo.Structs.VideoRegionOfInterestMeta: VideoRegionOfInterestMeta :: ManagedPtr VideoRegionOfInterestMeta -> VideoRegionOfInterestMeta
- GI.GstVideo.Structs.VideoRegionOfInterestMeta: getVideoRegionOfInterestMetaParams :: MonadIO m => VideoRegionOfInterestMeta -> m ([Ptr ()])
+ GI.GstVideo.Structs.VideoRegionOfInterestMeta: getVideoRegionOfInterestMetaParams :: MonadIO m => VideoRegionOfInterestMeta -> m [Ptr ()]
- GI.GstVideo.Structs.VideoResampler: VideoResampler :: (ManagedPtr VideoResampler) -> VideoResampler
+ GI.GstVideo.Structs.VideoResampler: VideoResampler :: ManagedPtr VideoResampler -> VideoResampler
- GI.GstVideo.Structs.VideoScaler: VideoScaler :: (ManagedPtr VideoScaler) -> VideoScaler
+ GI.GstVideo.Structs.VideoScaler: VideoScaler :: ManagedPtr VideoScaler -> VideoScaler
- GI.GstVideo.Structs.VideoTimeCode: VideoTimeCode :: (ManagedPtr VideoTimeCode) -> VideoTimeCode
+ GI.GstVideo.Structs.VideoTimeCode: VideoTimeCode :: ManagedPtr VideoTimeCode -> VideoTimeCode
- GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeAddInterval :: (HasCallStack, MonadIO m) => VideoTimeCode -> VideoTimeCodeInterval -> m VideoTimeCode
+ GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeAddInterval :: (HasCallStack, MonadIO m) => VideoTimeCode -> VideoTimeCodeInterval -> m (Maybe VideoTimeCode)
- GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeNewFromString :: (HasCallStack, MonadIO m) => Text -> m VideoTimeCode
+ GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeNewFromString :: (HasCallStack, MonadIO m) => Text -> m (Maybe VideoTimeCode)
- GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeToDateTime :: (HasCallStack, MonadIO m) => VideoTimeCode -> m DateTime
+ GI.GstVideo.Structs.VideoTimeCode: videoTimeCodeToDateTime :: (HasCallStack, MonadIO m) => VideoTimeCode -> m (Maybe DateTime)
- GI.GstVideo.Structs.VideoTimeCodeConfig: VideoTimeCodeConfig :: (ManagedPtr VideoTimeCodeConfig) -> VideoTimeCodeConfig
+ GI.GstVideo.Structs.VideoTimeCodeConfig: VideoTimeCodeConfig :: ManagedPtr VideoTimeCodeConfig -> VideoTimeCodeConfig
- GI.GstVideo.Structs.VideoTimeCodeInterval: VideoTimeCodeInterval :: (ManagedPtr VideoTimeCodeInterval) -> VideoTimeCodeInterval
+ GI.GstVideo.Structs.VideoTimeCodeInterval: VideoTimeCodeInterval :: ManagedPtr VideoTimeCodeInterval -> VideoTimeCodeInterval
- GI.GstVideo.Structs.VideoTimeCodeInterval: videoTimeCodeIntervalNewFromString :: (HasCallStack, MonadIO m) => Text -> m VideoTimeCodeInterval
+ GI.GstVideo.Structs.VideoTimeCodeInterval: videoTimeCodeIntervalNewFromString :: (HasCallStack, MonadIO m) => Text -> m (Maybe VideoTimeCodeInterval)
- GI.GstVideo.Structs.VideoTimeCodeMeta: VideoTimeCodeMeta :: (ManagedPtr VideoTimeCodeMeta) -> VideoTimeCodeMeta
+ GI.GstVideo.Structs.VideoTimeCodeMeta: VideoTimeCodeMeta :: ManagedPtr VideoTimeCodeMeta -> VideoTimeCodeMeta

Files

ChangeLog.md view
@@ -1,3 +1,11 @@+### 1.0.18+++ Update to haskell-gi(-base) 0.22++### 1.0.17+++ Update stack version to 12.10+ ### 1.0.16  + Do not generate bindings for `VideoOverlay.installProperties`, since we don't support class structures yet.
+ GI/GstVideo.hs view
@@ -0,0 +1,60 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo+    (     module GI.GstVideo.Callbacks            ,+    module GI.GstVideo.Constants            ,+    module GI.GstVideo.Enums                ,+    module GI.GstVideo.Flags                ,+    module GI.GstVideo.Functions            ,+    module GI.GstVideo.Interfaces           ,+    module GI.GstVideo.Objects              ,+    module GI.GstVideo.Structs              ,++++    module Data.GI.Base                     ,+++    ) where++import GI.GstVideo.Callbacks+import GI.GstVideo.Constants+import GI.GstVideo.Enums+import GI.GstVideo.Flags+import GI.GstVideo.Functions+import GI.GstVideo.Interfaces+import GI.GstVideo.Objects+import GI.GstVideo.Structs++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 Data.GI.Base+
+ GI/GstVideo/Callbacks.hs view
@@ -0,0 +1,736 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Callbacks+    ( ++ -- * Signals+-- ** VideoAffineTransformationGetMatrix #signal:VideoAffineTransformationGetMatrix#++    C_VideoAffineTransformationGetMatrix    ,+    VideoAffineTransformationGetMatrix      ,+    dynamic_VideoAffineTransformationGetMatrix,+    genClosure_VideoAffineTransformationGetMatrix,+    mk_VideoAffineTransformationGetMatrix   ,+    noVideoAffineTransformationGetMatrix    ,+    wrap_VideoAffineTransformationGetMatrix ,+++-- ** VideoConvertSampleCallback #signal:VideoConvertSampleCallback#++    C_VideoConvertSampleCallback            ,+    VideoConvertSampleCallback              ,+    VideoConvertSampleCallback_WithClosures ,+    drop_closures_VideoConvertSampleCallback,+    dynamic_VideoConvertSampleCallback      ,+    genClosure_VideoConvertSampleCallback   ,+    mk_VideoConvertSampleCallback           ,+    noVideoConvertSampleCallback            ,+    noVideoConvertSampleCallback_WithClosures,+    wrap_VideoConvertSampleCallback         ,+++-- ** VideoFormatPack #signal:VideoFormatPack#++    C_VideoFormatPack                       ,+    VideoFormatPack                         ,+    dynamic_VideoFormatPack                 ,+    genClosure_VideoFormatPack              ,+    mk_VideoFormatPack                      ,+    noVideoFormatPack                       ,+    wrap_VideoFormatPack                    ,+++-- ** VideoFormatUnpack #signal:VideoFormatUnpack#++    C_VideoFormatUnpack                     ,+    VideoFormatUnpack                       ,+    dynamic_VideoFormatUnpack               ,+    genClosure_VideoFormatUnpack            ,+    mk_VideoFormatUnpack                    ,+    noVideoFormatUnpack                     ,+    wrap_VideoFormatUnpack                  ,+++-- ** VideoGLTextureUpload #signal:VideoGLTextureUpload#++    C_VideoGLTextureUpload                  ,+    VideoGLTextureUpload                    ,+    dynamic_VideoGLTextureUpload            ,+    genClosure_VideoGLTextureUpload         ,+    mk_VideoGLTextureUpload                 ,+    noVideoGLTextureUpload                  ,+    wrap_VideoGLTextureUpload               ,+++-- ** VideoMetaMapFieldCallback #signal:VideoMetaMapFieldCallback#++    C_VideoMetaMapFieldCallback             ,+    VideoMetaMapFieldCallback               ,+    dynamic_VideoMetaMapFieldCallback       ,+    genClosure_VideoMetaMapFieldCallback    ,+    mk_VideoMetaMapFieldCallback            ,+    noVideoMetaMapFieldCallback             ,+    wrap_VideoMetaMapFieldCallback          ,+++-- ** VideoMetaUnmapFieldCallback #signal:VideoMetaUnmapFieldCallback#++    C_VideoMetaUnmapFieldCallback           ,+    VideoMetaUnmapFieldCallback             ,+    dynamic_VideoMetaUnmapFieldCallback     ,+    genClosure_VideoMetaUnmapFieldCallback  ,+    mk_VideoMetaUnmapFieldCallback          ,+    noVideoMetaUnmapFieldCallback           ,+    wrap_VideoMetaUnmapFieldCallback        ,+++++    ) 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.Gst.Flags as Gst.Flags+import qualified GI.Gst.Structs.MapInfo as Gst.MapInfo+import qualified GI.Gst.Structs.Sample as Gst.Sample+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoAffineTransformationMeta as GstVideo.VideoAffineTransformationMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFormatInfo as GstVideo.VideoFormatInfo+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoGLTextureUploadMeta as GstVideo.VideoGLTextureUploadMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoMeta as GstVideo.VideoMeta++-- callback VideoMetaUnmapFieldCallback+--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoMetaUnmapFieldCallback =+    Ptr GstVideo.VideoMeta.VideoMeta ->+    Word32 ->+    Ptr Gst.MapInfo.MapInfo ->+    IO CInt++-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, 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 "dynamic" __dynamic_C_VideoMetaUnmapFieldCallback :: FunPtr C_VideoMetaUnmapFieldCallback -> C_VideoMetaUnmapFieldCallback++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoMetaUnmapFieldCallback ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoMetaUnmapFieldCallback+    -> GstVideo.VideoMeta.VideoMeta+    -> Word32+    -> Gst.MapInfo.MapInfo+    -> m Bool+dynamic_VideoMetaUnmapFieldCallback __funPtr meta plane info = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    info' <- unsafeManagedPtrGetPtr info+    result <- (__dynamic_C_VideoMetaUnmapFieldCallback __funPtr) meta' plane info'+    let result' = (/= 0) result+    touchManagedPtr meta+    touchManagedPtr info+    return result'++-- | Generate a function pointer callable from C code, from a `C_VideoMetaUnmapFieldCallback`.+foreign import ccall "wrapper"+    mk_VideoMetaUnmapFieldCallback :: C_VideoMetaUnmapFieldCallback -> IO (FunPtr C_VideoMetaUnmapFieldCallback)++{- |+/No description available in the introspection data./+-}+type VideoMetaUnmapFieldCallback =+    GstVideo.VideoMeta.VideoMeta+    -> Word32+    -> Gst.MapInfo.MapInfo+    -> IO Bool++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoMetaUnmapFieldCallback`@.+noVideoMetaUnmapFieldCallback :: Maybe VideoMetaUnmapFieldCallback+noVideoMetaUnmapFieldCallback = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoMetaUnmapFieldCallback :: MonadIO m => VideoMetaUnmapFieldCallback -> m (GClosure C_VideoMetaUnmapFieldCallback)+genClosure_VideoMetaUnmapFieldCallback cb = liftIO $ do+    let cb' = wrap_VideoMetaUnmapFieldCallback Nothing cb+    mk_VideoMetaUnmapFieldCallback cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoMetaUnmapFieldCallback` into a `C_VideoMetaUnmapFieldCallback`.+wrap_VideoMetaUnmapFieldCallback ::+    Maybe (Ptr (FunPtr C_VideoMetaUnmapFieldCallback)) ->+    VideoMetaUnmapFieldCallback ->+    C_VideoMetaUnmapFieldCallback+wrap_VideoMetaUnmapFieldCallback funptrptr _cb meta plane info = do+    meta' <- (newPtr GstVideo.VideoMeta.VideoMeta) meta+    info' <- (newPtr Gst.MapInfo.MapInfo) info+    result <- _cb  meta' plane info'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'+++-- callback VideoMetaMapFieldCallback+--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gst", name = "MapFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoMetaMapFieldCallback =+    Ptr GstVideo.VideoMeta.VideoMeta ->+    Word32 ->+    Ptr Gst.MapInfo.MapInfo ->+    Ptr () ->+    Int32 ->+    CUInt ->+    IO CInt++-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gst", name = "MapFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, 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 "dynamic" __dynamic_C_VideoMetaMapFieldCallback :: FunPtr C_VideoMetaMapFieldCallback -> C_VideoMetaMapFieldCallback++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoMetaMapFieldCallback ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoMetaMapFieldCallback+    -> GstVideo.VideoMeta.VideoMeta+    -> Word32+    -> Gst.MapInfo.MapInfo+    -> Ptr ()+    -> Int32+    -> [Gst.Flags.MapFlags]+    -> m Bool+dynamic_VideoMetaMapFieldCallback __funPtr meta plane info data_ stride flags = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    info' <- unsafeManagedPtrGetPtr info+    let flags' = gflagsToWord flags+    result <- (__dynamic_C_VideoMetaMapFieldCallback __funPtr) meta' plane info' data_ stride flags'+    let result' = (/= 0) result+    touchManagedPtr meta+    touchManagedPtr info+    return result'++-- | Generate a function pointer callable from C code, from a `C_VideoMetaMapFieldCallback`.+foreign import ccall "wrapper"+    mk_VideoMetaMapFieldCallback :: C_VideoMetaMapFieldCallback -> IO (FunPtr C_VideoMetaMapFieldCallback)++{- |+/No description available in the introspection data./+-}+type VideoMetaMapFieldCallback =+    GstVideo.VideoMeta.VideoMeta+    -> Word32+    -> Gst.MapInfo.MapInfo+    -> Ptr ()+    -> Int32+    -> [Gst.Flags.MapFlags]+    -> IO Bool++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoMetaMapFieldCallback`@.+noVideoMetaMapFieldCallback :: Maybe VideoMetaMapFieldCallback+noVideoMetaMapFieldCallback = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoMetaMapFieldCallback :: MonadIO m => VideoMetaMapFieldCallback -> m (GClosure C_VideoMetaMapFieldCallback)+genClosure_VideoMetaMapFieldCallback cb = liftIO $ do+    let cb' = wrap_VideoMetaMapFieldCallback Nothing cb+    mk_VideoMetaMapFieldCallback cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoMetaMapFieldCallback` into a `C_VideoMetaMapFieldCallback`.+wrap_VideoMetaMapFieldCallback ::+    Maybe (Ptr (FunPtr C_VideoMetaMapFieldCallback)) ->+    VideoMetaMapFieldCallback ->+    C_VideoMetaMapFieldCallback+wrap_VideoMetaMapFieldCallback funptrptr _cb meta plane info data_ stride flags = do+    meta' <- (newPtr GstVideo.VideoMeta.VideoMeta) meta+    info' <- (newPtr Gst.MapInfo.MapInfo) info+    let flags' = wordToGFlags flags+    result <- _cb  meta' plane info' data_ stride flags'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'+++-- callback VideoGLTextureUpload+--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUploadMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "texture_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoGLTextureUpload =+    Ptr GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta ->+    Word32 ->+    IO CInt++-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUploadMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "texture_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, 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 "dynamic" __dynamic_C_VideoGLTextureUpload :: FunPtr C_VideoGLTextureUpload -> C_VideoGLTextureUpload++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoGLTextureUpload ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoGLTextureUpload+    -> GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta+    -> Word32+    -> m Bool+dynamic_VideoGLTextureUpload __funPtr meta textureId = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    result <- (__dynamic_C_VideoGLTextureUpload __funPtr) meta' textureId+    let result' = (/= 0) result+    touchManagedPtr meta+    return result'++-- | Generate a function pointer callable from C code, from a `C_VideoGLTextureUpload`.+foreign import ccall "wrapper"+    mk_VideoGLTextureUpload :: C_VideoGLTextureUpload -> IO (FunPtr C_VideoGLTextureUpload)++{- |+/No description available in the introspection data./+-}+type VideoGLTextureUpload =+    GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta+    -> Word32+    -> IO Bool++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoGLTextureUpload`@.+noVideoGLTextureUpload :: Maybe VideoGLTextureUpload+noVideoGLTextureUpload = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoGLTextureUpload :: MonadIO m => VideoGLTextureUpload -> m (GClosure C_VideoGLTextureUpload)+genClosure_VideoGLTextureUpload cb = liftIO $ do+    let cb' = wrap_VideoGLTextureUpload Nothing cb+    mk_VideoGLTextureUpload cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoGLTextureUpload` into a `C_VideoGLTextureUpload`.+wrap_VideoGLTextureUpload ::+    Maybe (Ptr (FunPtr C_VideoGLTextureUpload)) ->+    VideoGLTextureUpload ->+    C_VideoGLTextureUpload+wrap_VideoGLTextureUpload funptrptr _cb meta textureId = do+    meta' <- (newPtr GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta) meta+    result <- _cb  meta' textureId+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'+++-- callback VideoFormatUnpack+--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormatInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormatInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoPackFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags to control the unpacking", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a destination array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pointers to the data planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "strides of the planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the x position in the image to start from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the y position in the image to start from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the amount of pixels to unpack.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Unpacks @width pixels from the given planes and strides containing data of\nformat @info. The pixels will be unpacked into @dest with each component\ninterleaved as per @info's unpack_format, which will usually be one of\n#GST_VIDEO_FORMAT_ARGB, #GST_VIDEO_FORMAT_AYUV, #GST_VIDEO_FORMAT_ARGB64 or\n#GST_VIDEO_FORMAT_AYUV64 depending on the format to unpack.\n@dest should at least be big enough to hold @width * bytes_per_pixel bytes\nwhere bytes_per_pixel relates to the unpack format and will usually be\neither 4 or 8 depending on the unpack format. bytes_per_pixel will be\nthe same as the pixel stride for plane 0 for the above formats.\n\nFor subsampled formats, the components will be duplicated in the destination\narray. Reconstruction of the missing components can be performed in a\nseparate step after unpacking.", sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoFormatUnpack =+    Ptr GstVideo.VideoFormatInfo.VideoFormatInfo ->+    CUInt ->+    Ptr () ->+    Ptr () ->+    Int32 ->+    Int32 ->+    Int32 ->+    Int32 ->+    IO ()++-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormatInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormatInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoPackFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags to control the unpacking", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a destination array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pointers to the data planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "strides of the planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the x position in the image to start from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the y position in the image to start from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the amount of pixels to unpack.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "dynamic" __dynamic_C_VideoFormatUnpack :: FunPtr C_VideoFormatUnpack -> C_VideoFormatUnpack++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoFormatUnpack ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoFormatUnpack+    -> GstVideo.VideoFormatInfo.VideoFormatInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -}+    -> [GstVideo.Flags.VideoPackFlags]+    {- ^ /@flags@/: flags to control the unpacking -}+    -> Ptr ()+    {- ^ /@dest@/: a destination array -}+    -> Ptr ()+    {- ^ /@data@/: pointers to the data planes -}+    -> Int32+    {- ^ /@stride@/: strides of the planes -}+    -> Int32+    {- ^ /@x@/: the x position in the image to start from -}+    -> Int32+    {- ^ /@y@/: the y position in the image to start from -}+    -> Int32+    {- ^ /@width@/: the amount of pixels to unpack. -}+    -> m ()+dynamic_VideoFormatUnpack __funPtr info flags dest data_ stride x y width = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let flags' = gflagsToWord flags+    (__dynamic_C_VideoFormatUnpack __funPtr) info' flags' dest data_ stride x y width+    touchManagedPtr info+    return ()++-- | Generate a function pointer callable from C code, from a `C_VideoFormatUnpack`.+foreign import ccall "wrapper"+    mk_VideoFormatUnpack :: C_VideoFormatUnpack -> IO (FunPtr C_VideoFormatUnpack)++{- |+Unpacks /@width@/ pixels from the given planes and strides containing data of+format /@info@/. The pixels will be unpacked into /@dest@/ with each component+interleaved as per /@info@/\'s unpack_format, which will usually be one of+@/GST_VIDEO_FORMAT_ARGB/@, @/GST_VIDEO_FORMAT_AYUV/@, @/GST_VIDEO_FORMAT_ARGB64/@ or+@/GST_VIDEO_FORMAT_AYUV64/@ depending on the format to unpack.+/@dest@/ should at least be big enough to hold /@width@/ * bytes_per_pixel bytes+where bytes_per_pixel relates to the unpack format and will usually be+either 4 or 8 depending on the unpack format. bytes_per_pixel will be+the same as the pixel stride for plane 0 for the above formats.++For subsampled formats, the components will be duplicated in the destination+array. Reconstruction of the missing components can be performed in a+separate step after unpacking.+-}+type VideoFormatUnpack =+    GstVideo.VideoFormatInfo.VideoFormatInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -}+    -> [GstVideo.Flags.VideoPackFlags]+    {- ^ /@flags@/: flags to control the unpacking -}+    -> Ptr ()+    {- ^ /@dest@/: a destination array -}+    -> Ptr ()+    {- ^ /@data@/: pointers to the data planes -}+    -> Int32+    {- ^ /@stride@/: strides of the planes -}+    -> Int32+    {- ^ /@x@/: the x position in the image to start from -}+    -> Int32+    {- ^ /@y@/: the y position in the image to start from -}+    -> Int32+    {- ^ /@width@/: the amount of pixels to unpack. -}+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoFormatUnpack`@.+noVideoFormatUnpack :: Maybe VideoFormatUnpack+noVideoFormatUnpack = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoFormatUnpack :: MonadIO m => VideoFormatUnpack -> m (GClosure C_VideoFormatUnpack)+genClosure_VideoFormatUnpack cb = liftIO $ do+    let cb' = wrap_VideoFormatUnpack Nothing cb+    mk_VideoFormatUnpack cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoFormatUnpack` into a `C_VideoFormatUnpack`.+wrap_VideoFormatUnpack ::+    Maybe (Ptr (FunPtr C_VideoFormatUnpack)) ->+    VideoFormatUnpack ->+    C_VideoFormatUnpack+wrap_VideoFormatUnpack funptrptr _cb info flags dest data_ stride x y width = do+    info' <- (newPtr GstVideo.VideoFormatInfo.VideoFormatInfo) info+    let flags' = wordToGFlags flags+    _cb  info' flags' dest data_ stride x y width+    maybeReleaseFunPtr funptrptr+++-- callback VideoFormatPack+--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormatInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormatInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoPackFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags to control the packing", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a source array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sstride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the source array stride", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pointers to the destination data planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "strides of the destination planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chroma_site", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaSite"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the chroma siting of the target when subsampled (not used)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the y position in the image to pack to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the amount of pixels to pack.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Packs @width pixels from @src to the given planes and strides in the\nformat @info. The pixels from source have each component interleaved\nand will be packed into the planes in @data.\n\nThis function operates on pack_lines lines, meaning that @src should\ncontain at least pack_lines lines with a stride of @sstride and @y\nshould be a multiple of pack_lines.\n\nSubsampled formats will use the horizontally and vertically cosited\ncomponent from the source. Subsampling should be performed before\npacking.\n\nBecause this function does not have a x coordinate, it is not possible to\npack pixels starting from an unaligned position. For tiled images this\nmeans that packing should start from a tile coordinate. For subsampled\nformats this means that a complete pixel needs to be packed.", sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoFormatPack =+    Ptr GstVideo.VideoFormatInfo.VideoFormatInfo ->+    CUInt ->+    Ptr () ->+    Int32 ->+    Ptr () ->+    Int32 ->+    CUInt ->+    Int32 ->+    Int32 ->+    IO ()++-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormatInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormatInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoPackFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags to control the packing", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a source array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sstride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the source array stride", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pointers to the destination data planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "strides of the destination planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "chroma_site", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaSite"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the chroma siting of the target when subsampled (not used)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the y position in the image to pack to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the amount of pixels to pack.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "dynamic" __dynamic_C_VideoFormatPack :: FunPtr C_VideoFormatPack -> C_VideoFormatPack++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoFormatPack ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoFormatPack+    -> GstVideo.VideoFormatInfo.VideoFormatInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -}+    -> [GstVideo.Flags.VideoPackFlags]+    {- ^ /@flags@/: flags to control the packing -}+    -> Ptr ()+    {- ^ /@src@/: a source array -}+    -> Int32+    {- ^ /@sstride@/: the source array stride -}+    -> Ptr ()+    {- ^ /@data@/: pointers to the destination data planes -}+    -> Int32+    {- ^ /@stride@/: strides of the destination planes -}+    -> [GstVideo.Flags.VideoChromaSite]+    {- ^ /@chromaSite@/: the chroma siting of the target when subsampled (not used) -}+    -> Int32+    {- ^ /@y@/: the y position in the image to pack to -}+    -> Int32+    {- ^ /@width@/: the amount of pixels to pack. -}+    -> m ()+dynamic_VideoFormatPack __funPtr info flags src sstride data_ stride chromaSite y width = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let flags' = gflagsToWord flags+    let chromaSite' = gflagsToWord chromaSite+    (__dynamic_C_VideoFormatPack __funPtr) info' flags' src sstride data_ stride chromaSite' y width+    touchManagedPtr info+    return ()++-- | Generate a function pointer callable from C code, from a `C_VideoFormatPack`.+foreign import ccall "wrapper"+    mk_VideoFormatPack :: C_VideoFormatPack -> IO (FunPtr C_VideoFormatPack)++{- |+Packs /@width@/ pixels from /@src@/ to the given planes and strides in the+format /@info@/. The pixels from source have each component interleaved+and will be packed into the planes in /@data@/.++This function operates on pack_lines lines, meaning that /@src@/ should+contain at least pack_lines lines with a stride of /@sstride@/ and /@y@/+should be a multiple of pack_lines.++Subsampled formats will use the horizontally and vertically cosited+component from the source. Subsampling should be performed before+packing.++Because this function does not have a x coordinate, it is not possible to+pack pixels starting from an unaligned position. For tiled images this+means that packing should start from a tile coordinate. For subsampled+formats this means that a complete pixel needs to be packed.+-}+type VideoFormatPack =+    GstVideo.VideoFormatInfo.VideoFormatInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo' -}+    -> [GstVideo.Flags.VideoPackFlags]+    {- ^ /@flags@/: flags to control the packing -}+    -> Ptr ()+    {- ^ /@src@/: a source array -}+    -> Int32+    {- ^ /@sstride@/: the source array stride -}+    -> Ptr ()+    {- ^ /@data@/: pointers to the destination data planes -}+    -> Int32+    {- ^ /@stride@/: strides of the destination planes -}+    -> [GstVideo.Flags.VideoChromaSite]+    {- ^ /@chromaSite@/: the chroma siting of the target when subsampled (not used) -}+    -> Int32+    {- ^ /@y@/: the y position in the image to pack to -}+    -> Int32+    {- ^ /@width@/: the amount of pixels to pack. -}+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoFormatPack`@.+noVideoFormatPack :: Maybe VideoFormatPack+noVideoFormatPack = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoFormatPack :: MonadIO m => VideoFormatPack -> m (GClosure C_VideoFormatPack)+genClosure_VideoFormatPack cb = liftIO $ do+    let cb' = wrap_VideoFormatPack Nothing cb+    mk_VideoFormatPack cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoFormatPack` into a `C_VideoFormatPack`.+wrap_VideoFormatPack ::+    Maybe (Ptr (FunPtr C_VideoFormatPack)) ->+    VideoFormatPack ->+    C_VideoFormatPack+wrap_VideoFormatPack funptrptr _cb info flags src sstride data_ stride chromaSite y width = do+    info' <- (newPtr GstVideo.VideoFormatInfo.VideoFormatInfo) info+    let flags' = wordToGFlags flags+    let chromaSite' = wordToGFlags chromaSite+    _cb  info' flags' src sstride data_ stride chromaSite' y width+    maybeReleaseFunPtr funptrptr+++-- callback VideoConvertSampleCallback+--          -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoConvertSampleCallback =+    Ptr Gst.Sample.Sample ->+    Ptr GError ->+    Ptr () ->+    IO ()++-- Args : [Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "dynamic" __dynamic_C_VideoConvertSampleCallback :: FunPtr C_VideoConvertSampleCallback -> C_VideoConvertSampleCallback++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoConvertSampleCallback ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoConvertSampleCallback+    -> Gst.Sample.Sample+    -> GError+    -> Ptr ()+    -> m ()+dynamic_VideoConvertSampleCallback __funPtr sample error_ userData = liftIO $ do+    sample' <- unsafeManagedPtrGetPtr sample+    error_' <- unsafeManagedPtrGetPtr error_+    (__dynamic_C_VideoConvertSampleCallback __funPtr) sample' error_' userData+    touchManagedPtr sample+    touchManagedPtr error_+    return ()++-- | Generate a function pointer callable from C code, from a `C_VideoConvertSampleCallback`.+foreign import ccall "wrapper"+    mk_VideoConvertSampleCallback :: C_VideoConvertSampleCallback -> IO (FunPtr C_VideoConvertSampleCallback)++{- |+/No description available in the introspection data./+-}+type VideoConvertSampleCallback =+    Gst.Sample.Sample+    -> GError+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoConvertSampleCallback`@.+noVideoConvertSampleCallback :: Maybe VideoConvertSampleCallback+noVideoConvertSampleCallback = Nothing++{- |+/No description available in the introspection data./+-}+type VideoConvertSampleCallback_WithClosures =+    Gst.Sample.Sample+    -> GError+    -> Ptr ()+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoConvertSampleCallback_WithClosures`@.+noVideoConvertSampleCallback_WithClosures :: Maybe VideoConvertSampleCallback_WithClosures+noVideoConvertSampleCallback_WithClosures = Nothing++-- | A simple wrapper that ignores the closure arguments.+drop_closures_VideoConvertSampleCallback :: VideoConvertSampleCallback -> VideoConvertSampleCallback_WithClosures+drop_closures_VideoConvertSampleCallback _f sample error_ _ = _f sample error_++-- | Wrap the callback into a `GClosure`.+genClosure_VideoConvertSampleCallback :: MonadIO m => VideoConvertSampleCallback -> m (GClosure C_VideoConvertSampleCallback)+genClosure_VideoConvertSampleCallback cb = liftIO $ do+    let cb' = drop_closures_VideoConvertSampleCallback cb+    let cb'' = wrap_VideoConvertSampleCallback Nothing cb'+    mk_VideoConvertSampleCallback cb'' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoConvertSampleCallback` into a `C_VideoConvertSampleCallback`.+wrap_VideoConvertSampleCallback ::+    Maybe (Ptr (FunPtr C_VideoConvertSampleCallback)) ->+    VideoConvertSampleCallback_WithClosures ->+    C_VideoConvertSampleCallback+wrap_VideoConvertSampleCallback funptrptr _cb sample error_ userData = do+    B.ManagedPtr.withTransient Gst.Sample.Sample sample $ \sample' -> do+        error_' <- (newBoxed GError) error_+        _cb  sample' error_' userData+        maybeReleaseFunPtr funptrptr+++-- callback VideoAffineTransformationGetMatrix+--          -> Callable {returnType = Just (TBasicType TBoolean), returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAffineTransformationMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "matrix", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}}+-- | Type for the callback on the (unwrapped) C side.+type C_VideoAffineTransformationGetMatrix =+    Ptr GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta ->+    CFloat ->+    IO CInt++-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAffineTransformationMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "matrix", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, 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 "dynamic" __dynamic_C_VideoAffineTransformationGetMatrix :: FunPtr C_VideoAffineTransformationGetMatrix -> C_VideoAffineTransformationGetMatrix++-- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell.+dynamic_VideoAffineTransformationGetMatrix ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    FunPtr C_VideoAffineTransformationGetMatrix+    -> GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta+    -> Float+    -> m Bool+dynamic_VideoAffineTransformationGetMatrix __funPtr meta matrix = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    let matrix' = realToFrac matrix+    result <- (__dynamic_C_VideoAffineTransformationGetMatrix __funPtr) meta' matrix'+    let result' = (/= 0) result+    touchManagedPtr meta+    return result'++-- | Generate a function pointer callable from C code, from a `C_VideoAffineTransformationGetMatrix`.+foreign import ccall "wrapper"+    mk_VideoAffineTransformationGetMatrix :: C_VideoAffineTransformationGetMatrix -> IO (FunPtr C_VideoAffineTransformationGetMatrix)++{- |+/No description available in the introspection data./+-}+type VideoAffineTransformationGetMatrix =+    GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta+    -> Float+    -> IO Bool++-- | A convenience synonym for @`Nothing` :: `Maybe` `VideoAffineTransformationGetMatrix`@.+noVideoAffineTransformationGetMatrix :: Maybe VideoAffineTransformationGetMatrix+noVideoAffineTransformationGetMatrix = Nothing++-- | Wrap the callback into a `GClosure`.+genClosure_VideoAffineTransformationGetMatrix :: MonadIO m => VideoAffineTransformationGetMatrix -> m (GClosure C_VideoAffineTransformationGetMatrix)+genClosure_VideoAffineTransformationGetMatrix cb = liftIO $ do+    let cb' = wrap_VideoAffineTransformationGetMatrix Nothing cb+    mk_VideoAffineTransformationGetMatrix cb' >>= B.GClosure.newGClosure+++-- | Wrap a `VideoAffineTransformationGetMatrix` into a `C_VideoAffineTransformationGetMatrix`.+wrap_VideoAffineTransformationGetMatrix ::+    Maybe (Ptr (FunPtr C_VideoAffineTransformationGetMatrix)) ->+    VideoAffineTransformationGetMatrix ->+    C_VideoAffineTransformationGetMatrix+wrap_VideoAffineTransformationGetMatrix funptrptr _cb meta matrix = do+    meta' <- (newPtr GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta) meta+    let matrix' = realToFrac matrix+    result <- _cb  meta' matrix'+    maybeReleaseFunPtr funptrptr+    let result' = (fromIntegral . fromEnum) result+    return result'+++
+ GI/GstVideo/Constants.hs view
@@ -0,0 +1,538 @@+{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Constants+    ( +    pattern VIDEO_TILE_Y_TILES_SHIFT        ,+    pattern VIDEO_TILE_X_TILES_MASK         ,+    pattern VIDEO_TILE_TYPE_SHIFT           ,+    pattern VIDEO_TILE_TYPE_MASK            ,+    pattern VIDEO_SIZE_RANGE                ,+    pattern VIDEO_SCALER_OPT_DITHER_METHOD  ,+    pattern VIDEO_RESAMPLER_OPT_SHARPNESS   ,+    pattern VIDEO_RESAMPLER_OPT_SHARPEN     ,+    pattern VIDEO_RESAMPLER_OPT_MAX_TAPS    ,+    pattern VIDEO_RESAMPLER_OPT_ENVELOPE    ,+    pattern VIDEO_RESAMPLER_OPT_CUBIC_C     ,+    pattern VIDEO_RESAMPLER_OPT_CUBIC_B     ,+    pattern VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS,+    pattern VIDEO_MAX_PLANES                ,+    pattern VIDEO_MAX_COMPONENTS            ,+    pattern VIDEO_FPS_RANGE                 ,+    pattern VIDEO_FORMATS_ALL               ,+    pattern VIDEO_ENCODER_SRC_NAME          ,+    pattern VIDEO_ENCODER_SINK_NAME         ,+    pattern VIDEO_DECODER_SRC_NAME          ,+    pattern VIDEO_DECODER_SINK_NAME         ,+    pattern VIDEO_DECODER_MAX_ERRORS        ,+    pattern VIDEO_CONVERTER_OPT_THREADS     ,+    pattern VIDEO_CONVERTER_OPT_SRC_Y       ,+    pattern VIDEO_CONVERTER_OPT_SRC_X       ,+    pattern VIDEO_CONVERTER_OPT_SRC_WIDTH   ,+    pattern VIDEO_CONVERTER_OPT_SRC_HEIGHT  ,+    pattern VIDEO_CONVERTER_OPT_RESAMPLER_TAPS,+    pattern VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,+    pattern VIDEO_CONVERTER_OPT_PRIMARIES_MODE,+    pattern VIDEO_CONVERTER_OPT_MATRIX_MODE ,+    pattern VIDEO_CONVERTER_OPT_GAMMA_MODE  ,+    pattern VIDEO_CONVERTER_OPT_FILL_BORDER ,+    pattern VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION,+    pattern VIDEO_CONVERTER_OPT_DITHER_METHOD,+    pattern VIDEO_CONVERTER_OPT_DEST_Y      ,+    pattern VIDEO_CONVERTER_OPT_DEST_X      ,+    pattern VIDEO_CONVERTER_OPT_DEST_WIDTH  ,+    pattern VIDEO_CONVERTER_OPT_DEST_HEIGHT ,+    pattern VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD,+    pattern VIDEO_CONVERTER_OPT_CHROMA_MODE ,+    pattern VIDEO_CONVERTER_OPT_BORDER_ARGB ,+    pattern VIDEO_CONVERTER_OPT_ALPHA_VALUE ,+    pattern VIDEO_CONVERTER_OPT_ALPHA_MODE  ,+    pattern VIDEO_COMP_Y                    ,+    pattern VIDEO_COMP_V                    ,+    pattern VIDEO_COMP_U                    ,+    pattern VIDEO_COMP_R                    ,+    pattern VIDEO_COMP_PALETTE              ,+    pattern VIDEO_COMP_INDEX                ,+    pattern VIDEO_COMP_G                    ,+    pattern VIDEO_COMP_B                    ,+    pattern VIDEO_COMP_A                    ,+    pattern VIDEO_COLORIMETRY_SRGB          ,+    pattern VIDEO_COLORIMETRY_SMPTE240M     ,+    pattern VIDEO_COLORIMETRY_BT709         ,+    pattern VIDEO_COLORIMETRY_BT601         ,+    pattern VIDEO_COLORIMETRY_BT2020        ,+    pattern META_TAG_VIDEO_STR              ,+    pattern META_TAG_VIDEO_SIZE_STR         ,+    pattern META_TAG_VIDEO_ORIENTATION_STR  ,+    pattern META_TAG_VIDEO_COLORSPACE_STR   ,+    pattern CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION,+    pattern CAPS_FEATURE_META_GST_VIDEO_META,+    pattern CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META,+    pattern CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META,+    pattern CAPS_FEATURE_FORMAT_INTERLACED  ,+    pattern BUFFER_POOL_OPTION_VIDEO_META   ,+    pattern BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META,+    pattern BUFFER_POOL_OPTION_VIDEO_ALIGNMENT,+    pattern BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META,++    ) 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+++{- |+/No description available in the introspection data./+-}+pattern VIDEO_TILE_Y_TILES_SHIFT = 16 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_TILE_X_TILES_MASK = 65535 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_TILE_TYPE_SHIFT = 16 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_TILE_TYPE_MASK = 65535 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_SIZE_RANGE = "(int) [ 1, max ]" :: T.Text++{- |+@/GST_TYPE_VIDEO_DITHER_METHOD/@, The dither method to use for propagating+quatization errors.+-}+pattern VIDEO_SCALER_OPT_DITHER_METHOD = "GstVideoScaler.dither-method" :: T.Text++{- |+G_TYPE_DOUBLE, specifies sharpness of the filter for+/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between+0.5 and 1.5. 1.0 is the default.+-}+pattern VIDEO_RESAMPLER_OPT_SHARPNESS = "GstVideoResampler.sharpness" :: T.Text++{- |+G_TYPE_DOUBLE, specifies sharpening of the filter for+/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between+0.0 and 1.0. 0.0 is the default.+-}+pattern VIDEO_RESAMPLER_OPT_SHARPEN = "GstVideoResampler.sharpen" :: T.Text++{- |+G_TYPE_INT, limits the maximum number of taps to use.+16 is the default.+-}+pattern VIDEO_RESAMPLER_OPT_MAX_TAPS = "GstVideoResampler.max-taps" :: T.Text++{- |+G_TYPE_DOUBLE, specifies the size of filter envelope for+/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between+1.0 and 5.0. 2.0 is the default.+-}+pattern VIDEO_RESAMPLER_OPT_ENVELOPE = "GstVideoResampler.envelope" :: T.Text++{- |+G_TYPE_DOUBLE, C parameter of the cubic filter. The C+parameter controls the Keys alpha value. Values between 0.0 and+2.0 are accepted. 1\/3 is the default.++See 'GI.GstVideo.Constants.VIDEO_RESAMPLER_OPT_CUBIC_B' for some more common values+-}+pattern VIDEO_RESAMPLER_OPT_CUBIC_C = "GstVideoResampler.cubic-c" :: T.Text++{- |+G_TYPE_DOUBLE, B parameter of the cubic filter. The B+parameter controls the bluriness. Values between 0.0 and+2.0 are accepted. 1\/3 is the default.++Below are some values of popular filters:+                   B       C+Hermite           0.0     0.0+Spline            1.0     0.0+Catmull-Rom       0.0     1\/2+Mitchell          1\/3     1\/3+Robidoux          0.3782  0.3109+Robidoux+ Sharp            0.2620  0.3690+Robidoux+ Soft             0.6796  0.1602+-}+pattern VIDEO_RESAMPLER_OPT_CUBIC_B = "GstVideoResampler.cubic-b" :: T.Text++{- |+Video formats supported by 'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionBlend', for+use in overlay elements\' pad template caps.++/Since: 1.2/+-}+pattern VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS = "{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_MAX_PLANES = 4 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_MAX_COMPONENTS = 4 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_FPS_RANGE = "(fraction) [ 0, max ]" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_FORMATS_ALL = "{ I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }" :: T.Text++{- |+The name of the templates for the source pad.+-}+pattern VIDEO_ENCODER_SRC_NAME = "src" :: T.Text++{- |+The name of the templates for the sink pad.+-}+pattern VIDEO_ENCODER_SINK_NAME = "sink" :: T.Text++{- |+The name of the templates for the source pad.+-}+pattern VIDEO_DECODER_SRC_NAME = "src" :: T.Text++{- |+The name of the templates for the sink pad.+-}+pattern VIDEO_DECODER_SINK_NAME = "sink" :: T.Text++{- |+Default maximum number of errors tolerated before signaling error.+-}+pattern VIDEO_DECODER_MAX_ERRORS = 10 :: Int32++{- |+@/G_TYPE_UINT/@, maximum number of threads to use. Default 1, 0 for the number+of cores.+-}+pattern VIDEO_CONVERTER_OPT_THREADS = "GstVideoConverter.threads" :: T.Text++{- |+@/G_TYPE_INT/@, source y position to start conversion, default 0+-}+pattern VIDEO_CONVERTER_OPT_SRC_Y = "GstVideoConverter.src-y" :: T.Text++{- |+@/G_TYPE_INT/@, source x position to start conversion, default 0+-}+pattern VIDEO_CONVERTER_OPT_SRC_X = "GstVideoConverter.src-x" :: T.Text++{- |+@/G_TYPE_INT/@, source width to convert, default source width+-}+pattern VIDEO_CONVERTER_OPT_SRC_WIDTH = "GstVideoConverter.src-width" :: T.Text++{- |+@/G_TYPE_INT/@, source height to convert, default source height+-}+pattern VIDEO_CONVERTER_OPT_SRC_HEIGHT = "GstVideoConverter.src-height" :: T.Text++{- |+@/G_TYPE_UINT/@, The number of taps for the resampler.+Default is 0: let the resampler choose a good value.+-}+pattern VIDEO_CONVERTER_OPT_RESAMPLER_TAPS = "GstVideoConverter.resampler-taps" :: T.Text++{- |+@/GST_TYPE_VIDEO_RESAMPLER_METHOD/@, The resampler method to use for+resampling. Other options for the resampler can be used, see+the 'GI.GstVideo.Structs.VideoResampler.VideoResampler'. Default is @/GST_VIDEO_RESAMPLER_METHOD_CUBIC/@+-}+pattern VIDEO_CONVERTER_OPT_RESAMPLER_METHOD = "GstVideoConverter.resampler-method" :: T.Text++{- |+@/GST_TYPE_VIDEO_PRIMARIES_MODE/@, set the primaries conversion mode.+Default is @/GST_VIDEO_PRIMARIES_MODE_NONE/@.+-}+pattern VIDEO_CONVERTER_OPT_PRIMARIES_MODE = "GstVideoConverter.primaries-mode" :: T.Text++{- |+@/GST_TYPE_VIDEO_MATRIX_MODE/@, set the color matrix conversion mode for+converting between Y\'PbPr and non-linear RGB (R\'G\'B\').+Default is @/GST_VIDEO_MATRIX_MODE_FULL/@.+-}+pattern VIDEO_CONVERTER_OPT_MATRIX_MODE = "GstVideoConverter.matrix-mode" :: T.Text++{- |+@/GST_TYPE_VIDEO_GAMMA_MODE/@, set the gamma mode.+Default is @/GST_VIDEO_GAMMA_MODE_NONE/@.+-}+pattern VIDEO_CONVERTER_OPT_GAMMA_MODE = "GstVideoConverter.gamma-mode" :: T.Text++{- |+@/G_TYPE_BOOLEAN/@, if the destination rectangle does not fill the complete+destination image, render a border with+'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_BORDER_ARGB'. Otherwise the unusded pixels in the+destination are untouched. Default 'True'.+-}+pattern VIDEO_CONVERTER_OPT_FILL_BORDER = "GstVideoConverter.fill-border" :: T.Text++{- |+@/G_TYPE_UINT/@, The quantization amount to dither to. Components will be+quantized to multiples of this value.+Default is 1+-}+pattern VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION = "GstVideoConverter.dither-quantization" :: T.Text++{- |+@/GST_TYPE_VIDEO_DITHER_METHOD/@, The dither method to use when+changing bit depth.+Default is @/GST_VIDEO_DITHER_BAYER/@.+-}+pattern VIDEO_CONVERTER_OPT_DITHER_METHOD = "GstVideoConverter.dither-method" :: T.Text++{- |+@/G_TYPE_INT/@, y position in the destination frame, default 0+-}+pattern VIDEO_CONVERTER_OPT_DEST_Y = "GstVideoConverter.dest-y" :: T.Text++{- |+@/G_TYPE_INT/@, x position in the destination frame, default 0+-}+pattern VIDEO_CONVERTER_OPT_DEST_X = "GstVideoConverter.dest-x" :: T.Text++{- |+@/G_TYPE_INT/@, width in the destination frame, default destination width+-}+pattern VIDEO_CONVERTER_OPT_DEST_WIDTH = "GstVideoConverter.dest-width" :: T.Text++{- |+@/G_TYPE_INT/@, height in the destination frame, default destination height+-}+pattern VIDEO_CONVERTER_OPT_DEST_HEIGHT = "GstVideoConverter.dest-height" :: T.Text++{- |+@/GST_TYPE_VIDEO_RESAMPLER_METHOD/@, The resampler method to use for+chroma resampling. Other options for the resampler can be used, see+the 'GI.GstVideo.Structs.VideoResampler.VideoResampler'. Default is @/GST_VIDEO_RESAMPLER_METHOD_LINEAR/@+-}+pattern VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD = "GstVideoConverter.chroma-resampler-method" :: T.Text++{- |+@/GST_TYPE_VIDEO_CHROMA_MODE/@, set the chroma resample mode subsampled+formats. Default is @/GST_VIDEO_CHROMA_MODE_FULL/@.+-}+pattern VIDEO_CONVERTER_OPT_CHROMA_MODE = "GstVideoConverter.chroma-mode" :: T.Text++{- |+@/G_TYPE_UINT/@, the border color to use if 'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_FILL_BORDER'+is set to 'True'. The color is in ARGB format.+Default 0xff000000+-}+pattern VIDEO_CONVERTER_OPT_BORDER_ARGB = "GstVideoConverter.border-argb" :: T.Text++{- |+@/G_TYPE_DOUBLE/@, the alpha color value to use.+Default to 1.0+-}+pattern VIDEO_CONVERTER_OPT_ALPHA_VALUE = "GstVideoConverter.alpha-value" :: T.Text++{- |+@/GST_TYPE_VIDEO_ALPHA_MODE/@, the alpha mode to use.+Default is @/GST_VIDEO_ALPHA_MODE_COPY/@.+-}+pattern VIDEO_CONVERTER_OPT_ALPHA_MODE = "GstVideoConverter.alpha-mode" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_Y = 0 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_V = 2 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_U = 1 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_R = 0 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_PALETTE = 1 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_INDEX = 0 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_G = 1 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_B = 2 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COMP_A = 3 :: Int32++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COLORIMETRY_SRGB = "sRGB" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COLORIMETRY_SMPTE240M = "smpte240m" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COLORIMETRY_BT709 = "bt709" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COLORIMETRY_BT601 = "bt601" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern VIDEO_COLORIMETRY_BT2020 = "bt2020" :: T.Text++{- |+This metadata is relevant for video streams.++/Since: 1.2/+-}+pattern META_TAG_VIDEO_STR = "video" :: T.Text++{- |+This metadata stays relevant as long as video size is unchanged.++/Since: 1.2/+-}+pattern META_TAG_VIDEO_SIZE_STR = "size" :: T.Text++{- |+This metadata stays relevant as long as video orientation is unchanged.++/Since: 1.2/+-}+pattern META_TAG_VIDEO_ORIENTATION_STR = "orientation" :: T.Text++{- |+This metadata stays relevant as long as video colorspace is unchanged.++/Since: 1.2/+-}+pattern META_TAG_VIDEO_COLORSPACE_STR = "colorspace" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION = "meta:GstVideoOverlayComposition" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern CAPS_FEATURE_META_GST_VIDEO_META = "meta:GstVideoMeta" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META = "meta:GstVideoGLTextureUploadMeta" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META = "meta:GstVideoAffineTransformation" :: T.Text++{- |+Name of the caps feature indicating that the stream is interlaced. Currently+it is only used for video.++/Since: 1.16./+-}+pattern CAPS_FEATURE_FORMAT_INTERLACED = "format:Interlaced" :: T.Text++{- |+An option that can be activated on bufferpool to request video metadata+on buffers from the pool.+-}+pattern BUFFER_POOL_OPTION_VIDEO_META = "GstBufferPoolOptionVideoMeta" :: T.Text++{- |+An option that can be activated on a bufferpool to request gl texture upload+meta on buffers from the pool.++When this option is enabled on the bufferpool,+/@gSTBUFFERPOOLOPTIONVIDEOMETA@/ should also be enabled.++/Since: 1.2.2/+-}+pattern BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META = "GstBufferPoolOptionVideoGLTextureUploadMeta" :: T.Text++{- |+A bufferpool option to enable extra padding. When a bufferpool supports this+option, 'GI.GstVideo.Functions.bufferPoolConfigSetVideoAlignment' can be called.++When this option is enabled on the bufferpool,+'GI.GstVideo.Constants.BUFFER_POOL_OPTION_VIDEO_META' should also be enabled.+-}+pattern BUFFER_POOL_OPTION_VIDEO_ALIGNMENT = "GstBufferPoolOptionVideoAlignment" :: T.Text++{- |+/No description available in the introspection data./+-}+pattern BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META = "GstBufferPoolOptionVideoAffineTransformation" :: T.Text++
+ GI/GstVideo/Enums.hs view
@@ -0,0 +1,2633 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Enums+    ( ++ -- * Enumerations+-- ** ColorBalanceType #enum:ColorBalanceType#++    ColorBalanceType(..)                    ,+++-- ** NavigationCommand #enum:NavigationCommand#++    NavigationCommand(..)                   ,+++-- ** NavigationEventType #enum:NavigationEventType#++    NavigationEventType(..)                 ,+++-- ** NavigationMessageType #enum:NavigationMessageType#++    NavigationMessageType(..)               ,+++-- ** NavigationQueryType #enum:NavigationQueryType#++    NavigationQueryType(..)                 ,+++-- ** VideoAlphaMode #enum:VideoAlphaMode#++    VideoAlphaMode(..)                      ,+++-- ** VideoAncillaryDID #enum:VideoAncillaryDID#++    VideoAncillaryDID(..)                   ,+++-- ** VideoAncillaryDID16 #enum:VideoAncillaryDID16#++    VideoAncillaryDID16(..)                 ,+++-- ** VideoCaptionType #enum:VideoCaptionType#++    VideoCaptionType(..)                    ,+++-- ** VideoChromaMethod #enum:VideoChromaMethod#++    VideoChromaMethod(..)                   ,+++-- ** VideoChromaMode #enum:VideoChromaMode#++    VideoChromaMode(..)                     ,+++-- ** VideoColorMatrix #enum:VideoColorMatrix#++    VideoColorMatrix(..)                    ,+++-- ** VideoColorPrimaries #enum:VideoColorPrimaries#++    VideoColorPrimaries(..)                 ,+++-- ** VideoColorRange #enum:VideoColorRange#++    VideoColorRange(..)                     ,+++-- ** VideoDitherMethod #enum:VideoDitherMethod#++    VideoDitherMethod(..)                   ,+++-- ** VideoFieldOrder #enum:VideoFieldOrder#++    VideoFieldOrder(..)                     ,+++-- ** VideoFormat #enum:VideoFormat#++    VideoFormat(..)                         ,+++-- ** VideoGLTextureOrientation #enum:VideoGLTextureOrientation#++    VideoGLTextureOrientation(..)           ,+++-- ** VideoGLTextureType #enum:VideoGLTextureType#++    VideoGLTextureType(..)                  ,+++-- ** VideoGammaMode #enum:VideoGammaMode#++    VideoGammaMode(..)                      ,+++-- ** VideoInterlaceMode #enum:VideoInterlaceMode#++    VideoInterlaceMode(..)                  ,+++-- ** VideoMatrixMode #enum:VideoMatrixMode#++    VideoMatrixMode(..)                     ,+++-- ** VideoMultiviewFramePacking #enum:VideoMultiviewFramePacking#++    VideoMultiviewFramePacking(..)          ,+++-- ** VideoMultiviewMode #enum:VideoMultiviewMode#++    VideoMultiviewMode(..)                  ,+++-- ** VideoOrientationMethod #enum:VideoOrientationMethod#++    VideoOrientationMethod(..)              ,+++-- ** VideoPrimariesMode #enum:VideoPrimariesMode#++    VideoPrimariesMode(..)                  ,+++-- ** VideoResamplerMethod #enum:VideoResamplerMethod#++    VideoResamplerMethod(..)                ,+++-- ** VideoTileMode #enum:VideoTileMode#++    VideoTileMode(..)                       ,+++-- ** VideoTileType #enum:VideoTileType#++    VideoTileType(..)                       ,+++-- ** VideoTransferFunction #enum:VideoTransferFunction#++    VideoTransferFunction(..)               ,+++-- ** VideoVBIParserResult #enum:VideoVBIParserResult#++    VideoVBIParserResult(..)                ,+++++    ) 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+++-- Enum VideoVBIParserResult+{- |+Return values for 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser'++/Since: 1.16/+-}+data VideoVBIParserResult = +      VideoVBIParserResultDone+    {- ^+    No line were provided, or no more Ancillary data was found.+    -}+    | VideoVBIParserResultOk+    {- ^+    A 'GI.GstVideo.Structs.VideoAncillary.VideoAncillary' was found.+    -}+    | VideoVBIParserResultError+    {- ^+    An error occured+    -}+    | AnotherVideoVBIParserResult Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoVBIParserResult where+    fromEnum VideoVBIParserResultDone = 0+    fromEnum VideoVBIParserResultOk = 1+    fromEnum VideoVBIParserResultError = 2+    fromEnum (AnotherVideoVBIParserResult k) = k++    toEnum 0 = VideoVBIParserResultDone+    toEnum 1 = VideoVBIParserResultOk+    toEnum 2 = VideoVBIParserResultError+    toEnum k = AnotherVideoVBIParserResult k++instance P.Ord VideoVBIParserResult where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_vbi_parser_result_get_type" c_gst_video_vbi_parser_result_get_type :: +    IO GType++instance BoxedEnum VideoVBIParserResult where+    boxedEnumType _ = c_gst_video_vbi_parser_result_get_type++-- Enum VideoTransferFunction+{- |+The video transfer function defines the formula for converting between+non-linear RGB (R\'G\'B\') and linear RGB+-}+data VideoTransferFunction = +      VideoTransferFunctionUnknown+    {- ^+    unknown transfer function+    -}+    | VideoTransferFunctionGamma10+    {- ^+    linear RGB, gamma 1.0 curve+    -}+    | VideoTransferFunctionGamma18+    {- ^+    Gamma 1.8 curve+    -}+    | VideoTransferFunctionGamma20+    {- ^+    Gamma 2.0 curve+    -}+    | VideoTransferFunctionGamma22+    {- ^+    Gamma 2.2 curve+    -}+    | VideoTransferFunctionBt709+    {- ^+    Gamma 2.2 curve with a linear segment in the lower+                              range+    -}+    | VideoTransferFunctionSmpte240m+    {- ^+    Gamma 2.2 curve with a linear segment in the+                                  lower range+    -}+    | VideoTransferFunctionSrgb+    {- ^+    Gamma 2.4 curve with a linear segment in the lower+                             range+    -}+    | VideoTransferFunctionGamma28+    {- ^+    Gamma 2.8 curve+    -}+    | VideoTransferFunctionLog100+    {- ^+    Logarithmic transfer characteristic+                                100:1 range+    -}+    | VideoTransferFunctionLog316+    {- ^+    Logarithmic transfer characteristic+                                316.22777:1 range+    -}+    | VideoTransferFunctionBt202012+    {- ^+    Gamma 2.2 curve with a linear segment in the lower+                                   range. Used for BT.2020 with 12 bits per+                                   component. Since: 1.6+    -}+    | VideoTransferFunctionAdobergb+    {- ^+    Gamma 2.19921875. Since: 1.8+    -}+    | AnotherVideoTransferFunction Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoTransferFunction where+    fromEnum VideoTransferFunctionUnknown = 0+    fromEnum VideoTransferFunctionGamma10 = 1+    fromEnum VideoTransferFunctionGamma18 = 2+    fromEnum VideoTransferFunctionGamma20 = 3+    fromEnum VideoTransferFunctionGamma22 = 4+    fromEnum VideoTransferFunctionBt709 = 5+    fromEnum VideoTransferFunctionSmpte240m = 6+    fromEnum VideoTransferFunctionSrgb = 7+    fromEnum VideoTransferFunctionGamma28 = 8+    fromEnum VideoTransferFunctionLog100 = 9+    fromEnum VideoTransferFunctionLog316 = 10+    fromEnum VideoTransferFunctionBt202012 = 11+    fromEnum VideoTransferFunctionAdobergb = 12+    fromEnum (AnotherVideoTransferFunction k) = k++    toEnum 0 = VideoTransferFunctionUnknown+    toEnum 1 = VideoTransferFunctionGamma10+    toEnum 2 = VideoTransferFunctionGamma18+    toEnum 3 = VideoTransferFunctionGamma20+    toEnum 4 = VideoTransferFunctionGamma22+    toEnum 5 = VideoTransferFunctionBt709+    toEnum 6 = VideoTransferFunctionSmpte240m+    toEnum 7 = VideoTransferFunctionSrgb+    toEnum 8 = VideoTransferFunctionGamma28+    toEnum 9 = VideoTransferFunctionLog100+    toEnum 10 = VideoTransferFunctionLog316+    toEnum 11 = VideoTransferFunctionBt202012+    toEnum 12 = VideoTransferFunctionAdobergb+    toEnum k = AnotherVideoTransferFunction k++instance P.Ord VideoTransferFunction where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_transfer_function_get_type" c_gst_video_transfer_function_get_type :: +    IO GType++instance BoxedEnum VideoTransferFunction where+    boxedEnumType _ = c_gst_video_transfer_function_get_type++-- Enum VideoTileType+{- |+Enum value describing the most common tiling types.+-}+data VideoTileType = +      VideoTileTypeIndexed+    {- ^+    Tiles are indexed. Use+      gst_video_tile_get_index () to retrieve the tile at the requested+      coordinates.+    -}+    | AnotherVideoTileType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoTileType where+    fromEnum VideoTileTypeIndexed = 0+    fromEnum (AnotherVideoTileType k) = k++    toEnum 0 = VideoTileTypeIndexed+    toEnum k = AnotherVideoTileType k++instance P.Ord VideoTileType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_tile_type_get_type" c_gst_video_tile_type_get_type :: +    IO GType++instance BoxedEnum VideoTileType where+    boxedEnumType _ = c_gst_video_tile_type_get_type++-- Enum VideoTileMode+{- |+Enum value describing the available tiling modes.+-}+data VideoTileMode = +      VideoTileModeUnknown+    {- ^+    Unknown or unset tile mode+    -}+    | VideoTileModeZflipz2x2+    {- ^+    Every four adjacent blocks - two+       horizontally and two vertically are grouped together and are located+       in memory in Z or flipped Z order. In case of odd rows, the last row+       of blocks is arranged in linear order.+    -}+    | AnotherVideoTileMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoTileMode where+    fromEnum VideoTileModeUnknown = 0+    fromEnum VideoTileModeZflipz2x2 = 65536+    fromEnum (AnotherVideoTileMode k) = k++    toEnum 0 = VideoTileModeUnknown+    toEnum 65536 = VideoTileModeZflipz2x2+    toEnum k = AnotherVideoTileMode k++instance P.Ord VideoTileMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_tile_mode_get_type" c_gst_video_tile_mode_get_type :: +    IO GType++instance BoxedEnum VideoTileMode where+    boxedEnumType _ = c_gst_video_tile_mode_get_type++-- Enum VideoResamplerMethod+{- |+Different subsampling and upsampling methods++/Since: 1.6/+-}+data VideoResamplerMethod = +      VideoResamplerMethodNearest+    {- ^+    Duplicates the samples when+       upsampling and drops when downsampling+    -}+    | VideoResamplerMethodLinear+    {- ^+    Uses linear interpolation to reconstruct+       missing samples and averaging to downsample+    -}+    | VideoResamplerMethodCubic+    {- ^+    Uses cubic interpolation+    -}+    | VideoResamplerMethodSinc+    {- ^+    Uses sinc interpolation+    -}+    | VideoResamplerMethodLanczos+    {- ^+    Uses lanczos interpolation+    -}+    | AnotherVideoResamplerMethod Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoResamplerMethod where+    fromEnum VideoResamplerMethodNearest = 0+    fromEnum VideoResamplerMethodLinear = 1+    fromEnum VideoResamplerMethodCubic = 2+    fromEnum VideoResamplerMethodSinc = 3+    fromEnum VideoResamplerMethodLanczos = 4+    fromEnum (AnotherVideoResamplerMethod k) = k++    toEnum 0 = VideoResamplerMethodNearest+    toEnum 1 = VideoResamplerMethodLinear+    toEnum 2 = VideoResamplerMethodCubic+    toEnum 3 = VideoResamplerMethodSinc+    toEnum 4 = VideoResamplerMethodLanczos+    toEnum k = AnotherVideoResamplerMethod k++instance P.Ord VideoResamplerMethod where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_resampler_method_get_type" c_gst_video_resampler_method_get_type :: +    IO GType++instance BoxedEnum VideoResamplerMethod where+    boxedEnumType _ = c_gst_video_resampler_method_get_type++-- Enum VideoPrimariesMode+{- |+Different primaries conversion modes++/Since: 1.6/+-}+data VideoPrimariesMode = +      VideoPrimariesModeNone+    {- ^+    disable conversion between primaries+    -}+    | VideoPrimariesModeMergeOnly+    {- ^+    do conversion between primaries only+      when it can be merged with color matrix conversion.+    -}+    | VideoPrimariesModeFast+    {- ^+    fast conversion between primaries+    -}+    | AnotherVideoPrimariesMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoPrimariesMode where+    fromEnum VideoPrimariesModeNone = 0+    fromEnum VideoPrimariesModeMergeOnly = 1+    fromEnum VideoPrimariesModeFast = 2+    fromEnum (AnotherVideoPrimariesMode k) = k++    toEnum 0 = VideoPrimariesModeNone+    toEnum 1 = VideoPrimariesModeMergeOnly+    toEnum 2 = VideoPrimariesModeFast+    toEnum k = AnotherVideoPrimariesMode k++instance P.Ord VideoPrimariesMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_primaries_mode_get_type" c_gst_video_primaries_mode_get_type :: +    IO GType++instance BoxedEnum VideoPrimariesMode where+    boxedEnumType _ = c_gst_video_primaries_mode_get_type++-- Enum VideoOrientationMethod+{- |+The different video orientation methods.++/Since: 1.10/+-}+data VideoOrientationMethod = +      VideoOrientationMethodIdentity+    {- ^+    Identity (no rotation)+    -}+    | VideoOrientationMethod90r+    {- ^+    Rotate clockwise 90 degrees+    -}+    | VideoOrientationMethod180+    {- ^+    Rotate 180 degrees+    -}+    | VideoOrientationMethod90l+    {- ^+    Rotate counter-clockwise 90 degrees+    -}+    | VideoOrientationMethodHoriz+    {- ^+    Flip horizontally+    -}+    | VideoOrientationMethodVert+    {- ^+    Flip vertically+    -}+    | VideoOrientationMethodUlLr+    {- ^+    Flip across upper left\/lower right diagonal+    -}+    | VideoOrientationMethodUrLl+    {- ^+    Flip across upper right\/lower left diagonal+    -}+    | VideoOrientationMethodAuto+    {- ^+    Select flip method based on image-orientation tag+    -}+    | VideoOrientationMethodCustom+    {- ^+    Current status depends on plugin internal setup+    -}+    | AnotherVideoOrientationMethod Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoOrientationMethod where+    fromEnum VideoOrientationMethodIdentity = 0+    fromEnum VideoOrientationMethod90r = 1+    fromEnum VideoOrientationMethod180 = 2+    fromEnum VideoOrientationMethod90l = 3+    fromEnum VideoOrientationMethodHoriz = 4+    fromEnum VideoOrientationMethodVert = 5+    fromEnum VideoOrientationMethodUlLr = 6+    fromEnum VideoOrientationMethodUrLl = 7+    fromEnum VideoOrientationMethodAuto = 8+    fromEnum VideoOrientationMethodCustom = 9+    fromEnum (AnotherVideoOrientationMethod k) = k++    toEnum 0 = VideoOrientationMethodIdentity+    toEnum 1 = VideoOrientationMethod90r+    toEnum 2 = VideoOrientationMethod180+    toEnum 3 = VideoOrientationMethod90l+    toEnum 4 = VideoOrientationMethodHoriz+    toEnum 5 = VideoOrientationMethodVert+    toEnum 6 = VideoOrientationMethodUlLr+    toEnum 7 = VideoOrientationMethodUrLl+    toEnum 8 = VideoOrientationMethodAuto+    toEnum 9 = VideoOrientationMethodCustom+    toEnum k = AnotherVideoOrientationMethod k++instance P.Ord VideoOrientationMethod where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_orientation_method_get_type" c_gst_video_orientation_method_get_type :: +    IO GType++instance BoxedEnum VideoOrientationMethod where+    boxedEnumType _ = c_gst_video_orientation_method_get_type++-- Enum VideoMultiviewMode+{- |+All possible stereoscopic 3D and multiview representations.+In conjunction with 'GI.GstVideo.Flags.VideoMultiviewFlags', describes how+multiview content is being transported in the stream.+-}+data VideoMultiviewMode = +      VideoMultiviewModeNone+    {- ^+    A special value indicating+    no multiview information. Used in GstVideoInfo and other places to+    indicate that no specific multiview handling has been requested or+    provided. This value is never carried on caps.+    -}+    | VideoMultiviewModeMono+    {- ^+    All frames are monoscopic.+    -}+    | VideoMultiviewModeLeft+    {- ^+    All frames represent a left-eye view.+    -}+    | VideoMultiviewModeRight+    {- ^+    All frames represent a right-eye view.+    -}+    | VideoMultiviewModeSideBySide+    {- ^+    Left and right eye views are+    provided in the left and right half of the frame respectively.+    -}+    | VideoMultiviewModeSideBySideQuincunx+    {- ^+    Left and right eye+    views are provided in the left and right half of the frame, but+    have been sampled using quincunx method, with half-pixel offset+    between the 2 views.+    -}+    | VideoMultiviewModeColumnInterleaved+    {- ^+    Alternating vertical+    columns of pixels represent the left and right eye view respectively.+    -}+    | VideoMultiviewModeRowInterleaved+    {- ^+    Alternating horizontal+    rows of pixels represent the left and right eye view respectively.+    -}+    | VideoMultiviewModeTopBottom+    {- ^+    The top half of the frame+    contains the left eye, and the bottom half the right eye.+    -}+    | VideoMultiviewModeCheckerboard+    {- ^+    Pixels are arranged with+    alternating pixels representing left and right eye views in a+    checkerboard fashion.+    -}+    | VideoMultiviewModeFrameByFrame+    {- ^+    Left and right eye views+    are provided in separate frames alternately.+    -}+    | VideoMultiviewModeMultiviewFrameByFrame+    {- ^+    Multiple+    independent views are provided in separate frames in sequence.+    This method only applies to raw video buffers at the moment.+    Specific view identification is via the @/GstVideoMultiviewMeta/@+    and 'GI.GstVideo.Structs.VideoMeta.VideoMeta'(s) on raw video buffers.+    -}+    | VideoMultiviewModeSeparated+    {- ^+    Multiple views are+    provided as separate 'GI.Gst.Structs.Memory.Memory' framebuffers attached to each+    'GI.Gst.Structs.Buffer.Buffer', described by the @/GstVideoMultiviewMeta/@+    and 'GI.GstVideo.Structs.VideoMeta.VideoMeta'(s)+    -}+    | AnotherVideoMultiviewMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoMultiviewMode where+    fromEnum VideoMultiviewModeNone = -1+    fromEnum VideoMultiviewModeMono = 0+    fromEnum VideoMultiviewModeLeft = 1+    fromEnum VideoMultiviewModeRight = 2+    fromEnum VideoMultiviewModeSideBySide = 3+    fromEnum VideoMultiviewModeSideBySideQuincunx = 4+    fromEnum VideoMultiviewModeColumnInterleaved = 5+    fromEnum VideoMultiviewModeRowInterleaved = 6+    fromEnum VideoMultiviewModeTopBottom = 7+    fromEnum VideoMultiviewModeCheckerboard = 8+    fromEnum VideoMultiviewModeFrameByFrame = 32+    fromEnum VideoMultiviewModeMultiviewFrameByFrame = 33+    fromEnum VideoMultiviewModeSeparated = 34+    fromEnum (AnotherVideoMultiviewMode k) = k++    toEnum -1 = VideoMultiviewModeNone+    toEnum 0 = VideoMultiviewModeMono+    toEnum 1 = VideoMultiviewModeLeft+    toEnum 2 = VideoMultiviewModeRight+    toEnum 3 = VideoMultiviewModeSideBySide+    toEnum 4 = VideoMultiviewModeSideBySideQuincunx+    toEnum 5 = VideoMultiviewModeColumnInterleaved+    toEnum 6 = VideoMultiviewModeRowInterleaved+    toEnum 7 = VideoMultiviewModeTopBottom+    toEnum 8 = VideoMultiviewModeCheckerboard+    toEnum 32 = VideoMultiviewModeFrameByFrame+    toEnum 33 = VideoMultiviewModeMultiviewFrameByFrame+    toEnum 34 = VideoMultiviewModeSeparated+    toEnum k = AnotherVideoMultiviewMode k++instance P.Ord VideoMultiviewMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_multiview_mode_get_type" c_gst_video_multiview_mode_get_type :: +    IO GType++instance BoxedEnum VideoMultiviewMode where+    boxedEnumType _ = c_gst_video_multiview_mode_get_type++-- Enum VideoMultiviewFramePacking+{- |+'GI.GstVideo.Enums.VideoMultiviewFramePacking' represents the subset of 'GI.GstVideo.Enums.VideoMultiviewMode'+values that can be applied to any video frame without needing extra metadata.+It can be used by elements that provide a property to override the+multiview interpretation of a video stream when the video doesn\'t contain+any markers.++This enum is used (for example) on playbin, to re-interpret a played+video stream as a stereoscopic video. The individual enum values are+equivalent to and have the same value as the matching 'GI.GstVideo.Enums.VideoMultiviewMode'.+-}+data VideoMultiviewFramePacking = +      VideoMultiviewFramePackingNone+    {- ^+    A special value indicating+    no frame packing info.+    -}+    | VideoMultiviewFramePackingMono+    {- ^+    All frames are monoscopic.+    -}+    | VideoMultiviewFramePackingLeft+    {- ^+    All frames represent a left-eye view.+    -}+    | VideoMultiviewFramePackingRight+    {- ^+    All frames represent a right-eye view.+    -}+    | VideoMultiviewFramePackingSideBySide+    {- ^+    Left and right eye views are+    provided in the left and right half of the frame respectively.+    -}+    | VideoMultiviewFramePackingSideBySideQuincunx+    {- ^+    Left and right eye+    views are provided in the left and right half of the frame, but+    have been sampled using quincunx method, with half-pixel offset+    between the 2 views.+    -}+    | VideoMultiviewFramePackingColumnInterleaved+    {- ^+    Alternating vertical+    columns of pixels represent the left and right eye view respectively.+    -}+    | VideoMultiviewFramePackingRowInterleaved+    {- ^+    Alternating horizontal+    rows of pixels represent the left and right eye view respectively.+    -}+    | VideoMultiviewFramePackingTopBottom+    {- ^+    The top half of the frame+    contains the left eye, and the bottom half the right eye.+    -}+    | VideoMultiviewFramePackingCheckerboard+    {- ^+    Pixels are arranged with+    alternating pixels representing left and right eye views in a+    checkerboard fashion.+    -}+    | AnotherVideoMultiviewFramePacking Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoMultiviewFramePacking where+    fromEnum VideoMultiviewFramePackingNone = -1+    fromEnum VideoMultiviewFramePackingMono = 0+    fromEnum VideoMultiviewFramePackingLeft = 1+    fromEnum VideoMultiviewFramePackingRight = 2+    fromEnum VideoMultiviewFramePackingSideBySide = 3+    fromEnum VideoMultiviewFramePackingSideBySideQuincunx = 4+    fromEnum VideoMultiviewFramePackingColumnInterleaved = 5+    fromEnum VideoMultiviewFramePackingRowInterleaved = 6+    fromEnum VideoMultiviewFramePackingTopBottom = 7+    fromEnum VideoMultiviewFramePackingCheckerboard = 8+    fromEnum (AnotherVideoMultiviewFramePacking k) = k++    toEnum -1 = VideoMultiviewFramePackingNone+    toEnum 0 = VideoMultiviewFramePackingMono+    toEnum 1 = VideoMultiviewFramePackingLeft+    toEnum 2 = VideoMultiviewFramePackingRight+    toEnum 3 = VideoMultiviewFramePackingSideBySide+    toEnum 4 = VideoMultiviewFramePackingSideBySideQuincunx+    toEnum 5 = VideoMultiviewFramePackingColumnInterleaved+    toEnum 6 = VideoMultiviewFramePackingRowInterleaved+    toEnum 7 = VideoMultiviewFramePackingTopBottom+    toEnum 8 = VideoMultiviewFramePackingCheckerboard+    toEnum k = AnotherVideoMultiviewFramePacking k++instance P.Ord VideoMultiviewFramePacking where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_multiview_frame_packing_get_type" c_gst_video_multiview_frame_packing_get_type :: +    IO GType++instance BoxedEnum VideoMultiviewFramePacking where+    boxedEnumType _ = c_gst_video_multiview_frame_packing_get_type++-- Enum VideoMatrixMode+{- |+Different color matrix conversion modes++/Since: 1.6/+-}+data VideoMatrixMode = +      VideoMatrixModeFull+    {- ^+    do conversion between color matrices+    -}+    | VideoMatrixModeInputOnly+    {- ^+    use the input color matrix to convert+      to and from R\'G\'B+    -}+    | VideoMatrixModeOutputOnly+    {- ^+    use the output color matrix to convert+      to and from R\'G\'B+    -}+    | VideoMatrixModeNone+    {- ^+    disable color matrix conversion.+    -}+    | AnotherVideoMatrixMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoMatrixMode where+    fromEnum VideoMatrixModeFull = 0+    fromEnum VideoMatrixModeInputOnly = 1+    fromEnum VideoMatrixModeOutputOnly = 2+    fromEnum VideoMatrixModeNone = 3+    fromEnum (AnotherVideoMatrixMode k) = k++    toEnum 0 = VideoMatrixModeFull+    toEnum 1 = VideoMatrixModeInputOnly+    toEnum 2 = VideoMatrixModeOutputOnly+    toEnum 3 = VideoMatrixModeNone+    toEnum k = AnotherVideoMatrixMode k++instance P.Ord VideoMatrixMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_matrix_mode_get_type" c_gst_video_matrix_mode_get_type :: +    IO GType++instance BoxedEnum VideoMatrixMode where+    boxedEnumType _ = c_gst_video_matrix_mode_get_type++-- Enum VideoInterlaceMode+{- |+The possible values of the 'GI.GstVideo.Enums.VideoInterlaceMode' describing the interlace+mode of the stream.+-}+data VideoInterlaceMode = +      VideoInterlaceModeProgressive+    {- ^+    all frames are progressive+    -}+    | VideoInterlaceModeInterleaved+    {- ^+    2 fields are interleaved in one video+        frame. Extra buffer flags describe the field order.+    -}+    | VideoInterlaceModeMixed+    {- ^+    frames contains both interlaced and+        progressive video, the buffer flags describe the frame and fields.+    -}+    | VideoInterlaceModeFields+    {- ^+    2 fields are stored in one buffer, use the+        frame ID to get access to the required field. For multiview (the+        \'views\' property > 1) the fields of view N can be found at frame ID+        (N * 2) and (N * 2) + 1.+        Each field has only half the amount of lines as noted in the+        height property. This mode requires multiple GstVideoMeta metadata+        to describe the fields.+    -}+    | VideoInterlaceModeAlternate+    {- ^+    1 field is stored in one buffer,+        /@gSTVIDEOBUFFERFLAGTF@/ or /@gSTVIDEOBUFFERFLAGBF@/ indicates if+        the buffer is carrying the top or bottom field, respectively. The top and+        bottom buffers are expected to alternate in the pipeline, with this mode+        (Since: 1.16).+    -}+    | AnotherVideoInterlaceMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoInterlaceMode where+    fromEnum VideoInterlaceModeProgressive = 0+    fromEnum VideoInterlaceModeInterleaved = 1+    fromEnum VideoInterlaceModeMixed = 2+    fromEnum VideoInterlaceModeFields = 3+    fromEnum VideoInterlaceModeAlternate = 4+    fromEnum (AnotherVideoInterlaceMode k) = k++    toEnum 0 = VideoInterlaceModeProgressive+    toEnum 1 = VideoInterlaceModeInterleaved+    toEnum 2 = VideoInterlaceModeMixed+    toEnum 3 = VideoInterlaceModeFields+    toEnum 4 = VideoInterlaceModeAlternate+    toEnum k = AnotherVideoInterlaceMode k++instance P.Ord VideoInterlaceMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_interlace_mode_get_type" c_gst_video_interlace_mode_get_type :: +    IO GType++instance BoxedEnum VideoInterlaceMode where+    boxedEnumType _ = c_gst_video_interlace_mode_get_type++-- Enum VideoGammaMode+{- |+/No description available in the introspection data./++/Since: 1.6/+-}+data VideoGammaMode = +      VideoGammaModeNone+    {- ^+    disable gamma handling+    -}+    | VideoGammaModeRemap+    {- ^+    convert between input and output gamma+    Different gamma conversion modes+    -}+    | AnotherVideoGammaMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoGammaMode where+    fromEnum VideoGammaModeNone = 0+    fromEnum VideoGammaModeRemap = 1+    fromEnum (AnotherVideoGammaMode k) = k++    toEnum 0 = VideoGammaModeNone+    toEnum 1 = VideoGammaModeRemap+    toEnum k = AnotherVideoGammaMode k++instance P.Ord VideoGammaMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_gamma_mode_get_type" c_gst_video_gamma_mode_get_type :: +    IO GType++instance BoxedEnum VideoGammaMode where+    boxedEnumType _ = c_gst_video_gamma_mode_get_type++-- Enum VideoGLTextureType+{- |+The GL texture type.+-}+data VideoGLTextureType = +      VideoGLTextureTypeLuminance+    {- ^+    Luminance texture, GL_LUMINANCE+    -}+    | VideoGLTextureTypeLuminanceAlpha+    {- ^+    Luminance-alpha texture, GL_LUMINANCE_ALPHA+    -}+    | VideoGLTextureTypeRgb16+    {- ^+    RGB 565 texture, GL_RGB+    -}+    | VideoGLTextureTypeRgb+    {- ^+    RGB texture, GL_RGB+    -}+    | VideoGLTextureTypeRgba+    {- ^+    RGBA texture, GL_RGBA+    -}+    | VideoGLTextureTypeR+    {- ^+    R texture, GL_RED_EXT+    -}+    | VideoGLTextureTypeRg+    {- ^+    RG texture, GL_RG_EXT+    -}+    | AnotherVideoGLTextureType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoGLTextureType where+    fromEnum VideoGLTextureTypeLuminance = 0+    fromEnum VideoGLTextureTypeLuminanceAlpha = 1+    fromEnum VideoGLTextureTypeRgb16 = 2+    fromEnum VideoGLTextureTypeRgb = 3+    fromEnum VideoGLTextureTypeRgba = 4+    fromEnum VideoGLTextureTypeR = 5+    fromEnum VideoGLTextureTypeRg = 6+    fromEnum (AnotherVideoGLTextureType k) = k++    toEnum 0 = VideoGLTextureTypeLuminance+    toEnum 1 = VideoGLTextureTypeLuminanceAlpha+    toEnum 2 = VideoGLTextureTypeRgb16+    toEnum 3 = VideoGLTextureTypeRgb+    toEnum 4 = VideoGLTextureTypeRgba+    toEnum 5 = VideoGLTextureTypeR+    toEnum 6 = VideoGLTextureTypeRg+    toEnum k = AnotherVideoGLTextureType k++instance P.Ord VideoGLTextureType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++-- Enum VideoGLTextureOrientation+{- |+The orientation of the GL texture.+-}+data VideoGLTextureOrientation = +      VideoGLTextureOrientationNormalYNormal+    {- ^+    Top line first in memory, left row first+    -}+    | VideoGLTextureOrientationNormalYFlip+    {- ^+    Bottom line first in memory, left row first+    -}+    | VideoGLTextureOrientationFlipYNormal+    {- ^+    Top line first in memory, right row first+    -}+    | VideoGLTextureOrientationFlipYFlip+    {- ^+    Bottom line first in memory, right row first+    -}+    | AnotherVideoGLTextureOrientation Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoGLTextureOrientation where+    fromEnum VideoGLTextureOrientationNormalYNormal = 0+    fromEnum VideoGLTextureOrientationNormalYFlip = 1+    fromEnum VideoGLTextureOrientationFlipYNormal = 2+    fromEnum VideoGLTextureOrientationFlipYFlip = 3+    fromEnum (AnotherVideoGLTextureOrientation k) = k++    toEnum 0 = VideoGLTextureOrientationNormalYNormal+    toEnum 1 = VideoGLTextureOrientationNormalYFlip+    toEnum 2 = VideoGLTextureOrientationFlipYNormal+    toEnum 3 = VideoGLTextureOrientationFlipYFlip+    toEnum k = AnotherVideoGLTextureOrientation k++instance P.Ord VideoGLTextureOrientation where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++-- Enum VideoFormat+{- |+Enum value describing the most common video formats.++See the <https://gstreamer.freedesktop.org/documentation/design/mediatype-video-raw.html#formats GStreamer raw video format design document>+for details about the layout and packing of these formats in memory.+-}+data VideoFormat = +      VideoFormatUnknown+    {- ^+    Unknown or unset video format id+    -}+    | VideoFormatEncoded+    {- ^+    Encoded video format. Only ever use that in caps for+                               special video formats in combination with non-system+                               memory GstCapsFeatures where it does not make sense+                               to specify a real video format.+    -}+    | VideoFormatI420+    {- ^+    planar 4:2:0 YUV+    -}+    | VideoFormatYv12+    {- ^+    planar 4:2:0 YVU (like I420 but UV planes swapped)+    -}+    | VideoFormatYuy2+    {- ^+    packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)+    -}+    | VideoFormatUyvy+    {- ^+    packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)+    -}+    | VideoFormatAyuv+    {- ^+    packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)+    -}+    | VideoFormatRgbx+    {- ^+    sparse rgb packed into 32 bit, space last+    -}+    | VideoFormatBgrx+    {- ^+    sparse reverse rgb packed into 32 bit, space last+    -}+    | VideoFormatXrgb+    {- ^+    sparse rgb packed into 32 bit, space first+    -}+    | VideoFormatXbgr+    {- ^+    sparse reverse rgb packed into 32 bit, space first+    -}+    | VideoFormatRgba+    {- ^+    rgb with alpha channel last+    -}+    | VideoFormatBgra+    {- ^+    reverse rgb with alpha channel last+    -}+    | VideoFormatArgb+    {- ^+    rgb with alpha channel first+    -}+    | VideoFormatAbgr+    {- ^+    reverse rgb with alpha channel first+    -}+    | VideoFormatRgb+    {- ^+    RGB packed into 24 bits without padding (@R-G-B-R-G-B@)+    -}+    | VideoFormatBgr+    {- ^+    reverse RGB packed into 24 bits without padding (@B-G-R-B-G-R@)+    -}+    | VideoFormatY41b+    {- ^+    planar 4:1:1 YUV+    -}+    | VideoFormatY42b+    {- ^+    planar 4:2:2 YUV+    -}+    | VideoFormatYvyu+    {- ^+    packed 4:2:2 YUV (Y0-V0-Y1-U0 Y2-V2-Y3-U2 Y4 ...)+    -}+    | VideoFormatY444+    {- ^+    planar 4:4:4 YUV+    -}+    | VideoFormatV210+    {- ^+    packed 4:2:2 10-bit YUV, complex format+    -}+    | VideoFormatV216+    {- ^+    packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order+    -}+    | VideoFormatNv12+    {- ^+    planar 4:2:0 YUV with interleaved UV plane+    -}+    | VideoFormatNv21+    {- ^+    planar 4:2:0 YUV with interleaved VU plane+    -}+    | VideoFormatGray8+    {- ^+    8-bit grayscale+    -}+    | VideoFormatGray16Be+    {- ^+    16-bit grayscale, most significant byte first+    -}+    | VideoFormatGray16Le+    {- ^+    16-bit grayscale, least significant byte first+    -}+    | VideoFormatV308+    {- ^+    packed 4:4:4 YUV (Y-U-V ...)+    -}+    | VideoFormatRgb16+    {- ^+    rgb 5-6-5 bits per component+    -}+    | VideoFormatBgr16+    {- ^+    reverse rgb 5-6-5 bits per component+    -}+    | VideoFormatRgb15+    {- ^+    rgb 5-5-5 bits per component+    -}+    | VideoFormatBgr15+    {- ^+    reverse rgb 5-5-5 bits per component+    -}+    | VideoFormatUyvp+    {- ^+    packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)+    -}+    | VideoFormatA420+    {- ^+    planar 4:4:2:0 AYUV+    -}+    | VideoFormatRgb8p+    {- ^+    8-bit paletted RGB+    -}+    | VideoFormatYuv9+    {- ^+    planar 4:1:0 YUV+    -}+    | VideoFormatYvu9+    {- ^+    planar 4:1:0 YUV (like YUV9 but UV planes swapped)+    -}+    | VideoFormatIyu1+    {- ^+    packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)+    -}+    | VideoFormatArgb64+    {- ^+    rgb with alpha channel first, 16 bits per channel+    -}+    | VideoFormatAyuv64+    {- ^+    packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)+    -}+    | VideoFormatR210+    {- ^+    packed 4:4:4 RGB, 10 bits per channel+    -}+    | VideoFormatI42010be+    {- ^+    planar 4:2:0 YUV, 10 bits per channel+    -}+    | VideoFormatI42010le+    {- ^+    planar 4:2:0 YUV, 10 bits per channel+    -}+    | VideoFormatI42210be+    {- ^+    planar 4:2:2 YUV, 10 bits per channel+    -}+    | VideoFormatI42210le+    {- ^+    planar 4:2:2 YUV, 10 bits per channel+    -}+    | VideoFormatY44410be+    {- ^+    planar 4:4:4 YUV, 10 bits per channel (Since: 1.2)+    -}+    | VideoFormatY44410le+    {- ^+    planar 4:4:4 YUV, 10 bits per channel (Since: 1.2)+    -}+    | VideoFormatGbr+    {- ^+    planar 4:4:4 RGB, 8 bits per channel (Since: 1.2)+    -}+    | VideoFormatGbr10be+    {- ^+    planar 4:4:4 RGB, 10 bits per channel (Since: 1.2)+    -}+    | VideoFormatGbr10le+    {- ^+    planar 4:4:4 RGB, 10 bits per channel (Since: 1.2)+    -}+    | VideoFormatNv16+    {- ^+    planar 4:2:2 YUV with interleaved UV plane (Since: 1.2)+    -}+    | VideoFormatNv24+    {- ^+    planar 4:4:4 YUV with interleaved UV plane (Since: 1.2)+    -}+    | VideoFormatNv1264z32+    {- ^+    NV12 with 64x32 tiling in zigzag pattern (Since: 1.4)+    -}+    | VideoFormatA42010be+    {- ^+    planar 4:4:2:0 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatA42010le+    {- ^+    planar 4:4:2:0 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatA42210be+    {- ^+    planar 4:4:2:2 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatA42210le+    {- ^+    planar 4:4:2:2 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatA44410be+    {- ^+    planar 4:4:4:4 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatA44410le+    {- ^+    planar 4:4:4:4 YUV, 10 bits per channel (Since: 1.6)+    -}+    | VideoFormatNv61+    {- ^+    planar 4:2:2 YUV with interleaved VU plane (Since: 1.6)+    -}+    | VideoFormatP01010be+    {- ^+    planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel (Since: 1.10)+    -}+    | VideoFormatP01010le+    {- ^+    planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel (Since: 1.10)+    -}+    | VideoFormatIyu2+    {- ^+    packed 4:4:4 YUV (U-Y-V ...) (Since 1.10)+    -}+    | VideoFormatVyuy+    {- ^+    packed 4:2:2 YUV (V0-Y0-U0-Y1 V2-Y2-U2-Y3 V4 ...)+    -}+    | VideoFormatGbra+    {- ^+    planar 4:4:4:4 ARGB, 8 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbra10be+    {- ^+    planar 4:4:4:4 ARGB, 10 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbra10le+    {- ^+    planar 4:4:4:4 ARGB, 10 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbr12be+    {- ^+    planar 4:4:4 RGB, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbr12le+    {- ^+    planar 4:4:4 RGB, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbra12be+    {- ^+    planar 4:4:4:4 ARGB, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatGbra12le+    {- ^+    planar 4:4:4:4 ARGB, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatI42012be+    {- ^+    planar 4:2:0 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatI42012le+    {- ^+    planar 4:2:0 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatI42212be+    {- ^+    planar 4:2:2 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatI42212le+    {- ^+    planar 4:2:2 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatY44412be+    {- ^+    planar 4:4:4 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatY44412le+    {- ^+    planar 4:4:4 YUV, 12 bits per channel (Since: 1.12)+    -}+    | VideoFormatGray10Le32+    {- ^+    10-bit grayscale, packed into 32bit words (2 bits padding) (Since: 1.14)+    -}+    | VideoFormatNv1210le32+    {- ^+    10-bit variant of /@gSTVIDEOFORMATNV12@/, packed into 32bit words (MSB 2 bits padding) (Since: 1.14)+    -}+    | VideoFormatNv1610le32+    {- ^+    10-bit variant of /@gSTVIDEOFORMATNV16@/, packed into 32bit words (MSB 2 bits padding) (Since: 1.14)+    -}+    | VideoFormatNv1210le40+    {- ^+    Fully packed variant of NV12_10LE32 (Since: 1.16)+    -}+    | VideoFormatY210+    {- ^+    packed 4:2:2 YUV, 10 bits per channel (Since: 1.16)+    -}+    | VideoFormatY410+    {- ^+    packed 4:4:4 YUV, 10 bits per channel(A-V-Y-U...) (Since: 1.16)+    -}+    | VideoFormatVuya+    {- ^+    packed 4:4:4 YUV with alpha channel (V0-U0-Y0-A0...) (Since: 1.16)+    -}+    | VideoFormatBgr10a2Le+    {- ^+    packed 4:4:4 RGB with alpha channel(B-G-R-A), 10 bits for R\/G\/B channel and MSB 2 bits for alpha channel (Since: 1.16)+    -}+    | AnotherVideoFormat Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFormat where+    fromEnum VideoFormatUnknown = 0+    fromEnum VideoFormatEncoded = 1+    fromEnum VideoFormatI420 = 2+    fromEnum VideoFormatYv12 = 3+    fromEnum VideoFormatYuy2 = 4+    fromEnum VideoFormatUyvy = 5+    fromEnum VideoFormatAyuv = 6+    fromEnum VideoFormatRgbx = 7+    fromEnum VideoFormatBgrx = 8+    fromEnum VideoFormatXrgb = 9+    fromEnum VideoFormatXbgr = 10+    fromEnum VideoFormatRgba = 11+    fromEnum VideoFormatBgra = 12+    fromEnum VideoFormatArgb = 13+    fromEnum VideoFormatAbgr = 14+    fromEnum VideoFormatRgb = 15+    fromEnum VideoFormatBgr = 16+    fromEnum VideoFormatY41b = 17+    fromEnum VideoFormatY42b = 18+    fromEnum VideoFormatYvyu = 19+    fromEnum VideoFormatY444 = 20+    fromEnum VideoFormatV210 = 21+    fromEnum VideoFormatV216 = 22+    fromEnum VideoFormatNv12 = 23+    fromEnum VideoFormatNv21 = 24+    fromEnum VideoFormatGray8 = 25+    fromEnum VideoFormatGray16Be = 26+    fromEnum VideoFormatGray16Le = 27+    fromEnum VideoFormatV308 = 28+    fromEnum VideoFormatRgb16 = 29+    fromEnum VideoFormatBgr16 = 30+    fromEnum VideoFormatRgb15 = 31+    fromEnum VideoFormatBgr15 = 32+    fromEnum VideoFormatUyvp = 33+    fromEnum VideoFormatA420 = 34+    fromEnum VideoFormatRgb8p = 35+    fromEnum VideoFormatYuv9 = 36+    fromEnum VideoFormatYvu9 = 37+    fromEnum VideoFormatIyu1 = 38+    fromEnum VideoFormatArgb64 = 39+    fromEnum VideoFormatAyuv64 = 40+    fromEnum VideoFormatR210 = 41+    fromEnum VideoFormatI42010be = 42+    fromEnum VideoFormatI42010le = 43+    fromEnum VideoFormatI42210be = 44+    fromEnum VideoFormatI42210le = 45+    fromEnum VideoFormatY44410be = 46+    fromEnum VideoFormatY44410le = 47+    fromEnum VideoFormatGbr = 48+    fromEnum VideoFormatGbr10be = 49+    fromEnum VideoFormatGbr10le = 50+    fromEnum VideoFormatNv16 = 51+    fromEnum VideoFormatNv24 = 52+    fromEnum VideoFormatNv1264z32 = 53+    fromEnum VideoFormatA42010be = 54+    fromEnum VideoFormatA42010le = 55+    fromEnum VideoFormatA42210be = 56+    fromEnum VideoFormatA42210le = 57+    fromEnum VideoFormatA44410be = 58+    fromEnum VideoFormatA44410le = 59+    fromEnum VideoFormatNv61 = 60+    fromEnum VideoFormatP01010be = 61+    fromEnum VideoFormatP01010le = 62+    fromEnum VideoFormatIyu2 = 63+    fromEnum VideoFormatVyuy = 64+    fromEnum VideoFormatGbra = 65+    fromEnum VideoFormatGbra10be = 66+    fromEnum VideoFormatGbra10le = 67+    fromEnum VideoFormatGbr12be = 68+    fromEnum VideoFormatGbr12le = 69+    fromEnum VideoFormatGbra12be = 70+    fromEnum VideoFormatGbra12le = 71+    fromEnum VideoFormatI42012be = 72+    fromEnum VideoFormatI42012le = 73+    fromEnum VideoFormatI42212be = 74+    fromEnum VideoFormatI42212le = 75+    fromEnum VideoFormatY44412be = 76+    fromEnum VideoFormatY44412le = 77+    fromEnum VideoFormatGray10Le32 = 78+    fromEnum VideoFormatNv1210le32 = 79+    fromEnum VideoFormatNv1610le32 = 80+    fromEnum VideoFormatNv1210le40 = 81+    fromEnum VideoFormatY210 = 82+    fromEnum VideoFormatY410 = 83+    fromEnum VideoFormatVuya = 84+    fromEnum VideoFormatBgr10a2Le = 85+    fromEnum (AnotherVideoFormat k) = k++    toEnum 0 = VideoFormatUnknown+    toEnum 1 = VideoFormatEncoded+    toEnum 2 = VideoFormatI420+    toEnum 3 = VideoFormatYv12+    toEnum 4 = VideoFormatYuy2+    toEnum 5 = VideoFormatUyvy+    toEnum 6 = VideoFormatAyuv+    toEnum 7 = VideoFormatRgbx+    toEnum 8 = VideoFormatBgrx+    toEnum 9 = VideoFormatXrgb+    toEnum 10 = VideoFormatXbgr+    toEnum 11 = VideoFormatRgba+    toEnum 12 = VideoFormatBgra+    toEnum 13 = VideoFormatArgb+    toEnum 14 = VideoFormatAbgr+    toEnum 15 = VideoFormatRgb+    toEnum 16 = VideoFormatBgr+    toEnum 17 = VideoFormatY41b+    toEnum 18 = VideoFormatY42b+    toEnum 19 = VideoFormatYvyu+    toEnum 20 = VideoFormatY444+    toEnum 21 = VideoFormatV210+    toEnum 22 = VideoFormatV216+    toEnum 23 = VideoFormatNv12+    toEnum 24 = VideoFormatNv21+    toEnum 25 = VideoFormatGray8+    toEnum 26 = VideoFormatGray16Be+    toEnum 27 = VideoFormatGray16Le+    toEnum 28 = VideoFormatV308+    toEnum 29 = VideoFormatRgb16+    toEnum 30 = VideoFormatBgr16+    toEnum 31 = VideoFormatRgb15+    toEnum 32 = VideoFormatBgr15+    toEnum 33 = VideoFormatUyvp+    toEnum 34 = VideoFormatA420+    toEnum 35 = VideoFormatRgb8p+    toEnum 36 = VideoFormatYuv9+    toEnum 37 = VideoFormatYvu9+    toEnum 38 = VideoFormatIyu1+    toEnum 39 = VideoFormatArgb64+    toEnum 40 = VideoFormatAyuv64+    toEnum 41 = VideoFormatR210+    toEnum 42 = VideoFormatI42010be+    toEnum 43 = VideoFormatI42010le+    toEnum 44 = VideoFormatI42210be+    toEnum 45 = VideoFormatI42210le+    toEnum 46 = VideoFormatY44410be+    toEnum 47 = VideoFormatY44410le+    toEnum 48 = VideoFormatGbr+    toEnum 49 = VideoFormatGbr10be+    toEnum 50 = VideoFormatGbr10le+    toEnum 51 = VideoFormatNv16+    toEnum 52 = VideoFormatNv24+    toEnum 53 = VideoFormatNv1264z32+    toEnum 54 = VideoFormatA42010be+    toEnum 55 = VideoFormatA42010le+    toEnum 56 = VideoFormatA42210be+    toEnum 57 = VideoFormatA42210le+    toEnum 58 = VideoFormatA44410be+    toEnum 59 = VideoFormatA44410le+    toEnum 60 = VideoFormatNv61+    toEnum 61 = VideoFormatP01010be+    toEnum 62 = VideoFormatP01010le+    toEnum 63 = VideoFormatIyu2+    toEnum 64 = VideoFormatVyuy+    toEnum 65 = VideoFormatGbra+    toEnum 66 = VideoFormatGbra10be+    toEnum 67 = VideoFormatGbra10le+    toEnum 68 = VideoFormatGbr12be+    toEnum 69 = VideoFormatGbr12le+    toEnum 70 = VideoFormatGbra12be+    toEnum 71 = VideoFormatGbra12le+    toEnum 72 = VideoFormatI42012be+    toEnum 73 = VideoFormatI42012le+    toEnum 74 = VideoFormatI42212be+    toEnum 75 = VideoFormatI42212le+    toEnum 76 = VideoFormatY44412be+    toEnum 77 = VideoFormatY44412le+    toEnum 78 = VideoFormatGray10Le32+    toEnum 79 = VideoFormatNv1210le32+    toEnum 80 = VideoFormatNv1610le32+    toEnum 81 = VideoFormatNv1210le40+    toEnum 82 = VideoFormatY210+    toEnum 83 = VideoFormatY410+    toEnum 84 = VideoFormatVuya+    toEnum 85 = VideoFormatBgr10a2Le+    toEnum k = AnotherVideoFormat k++instance P.Ord VideoFormat where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_format_get_type" c_gst_video_format_get_type :: +    IO GType++instance BoxedEnum VideoFormat where+    boxedEnumType _ = c_gst_video_format_get_type++-- Enum VideoFieldOrder+{- |+Field order of interlaced content. This is only valid for+interlace-mode=interleaved and not interlace-mode=mixed. In the case of+mixed or GST_VIDEO_FIELD_ORDER_UNKOWN, the field order is signalled via+buffer flags.++/Since: 1.12/+-}+data VideoFieldOrder = +      VideoFieldOrderUnknown+    {- ^+    unknown field order for interlaced content.+        The actual field order is signalled via buffer flags.+    -}+    | VideoFieldOrderTopFieldFirst+    {- ^+    top field is first+    -}+    | VideoFieldOrderBottomFieldFirst+    {- ^+    bottom field is first+    -}+    | AnotherVideoFieldOrder Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFieldOrder where+    fromEnum VideoFieldOrderUnknown = 0+    fromEnum VideoFieldOrderTopFieldFirst = 1+    fromEnum VideoFieldOrderBottomFieldFirst = 2+    fromEnum (AnotherVideoFieldOrder k) = k++    toEnum 0 = VideoFieldOrderUnknown+    toEnum 1 = VideoFieldOrderTopFieldFirst+    toEnum 2 = VideoFieldOrderBottomFieldFirst+    toEnum k = AnotherVideoFieldOrder k++instance P.Ord VideoFieldOrder where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_field_order_get_type" c_gst_video_field_order_get_type :: +    IO GType++instance BoxedEnum VideoFieldOrder where+    boxedEnumType _ = c_gst_video_field_order_get_type++-- Enum VideoDitherMethod+{- |+Different dithering methods to use.+-}+data VideoDitherMethod = +      VideoDitherMethodNone+    {- ^+    no dithering+    -}+    | VideoDitherMethodVerterr+    {- ^+    propagate rounding errors downwards+    -}+    | VideoDitherMethodFloydSteinberg+    {- ^+    Dither with floyd-steinberg error diffusion+    -}+    | VideoDitherMethodSierraLite+    {- ^+    Dither with Sierra Lite error diffusion+    -}+    | VideoDitherMethodBayer+    {- ^+    ordered dither using a bayer pattern+    -}+    | AnotherVideoDitherMethod Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoDitherMethod where+    fromEnum VideoDitherMethodNone = 0+    fromEnum VideoDitherMethodVerterr = 1+    fromEnum VideoDitherMethodFloydSteinberg = 2+    fromEnum VideoDitherMethodSierraLite = 3+    fromEnum VideoDitherMethodBayer = 4+    fromEnum (AnotherVideoDitherMethod k) = k++    toEnum 0 = VideoDitherMethodNone+    toEnum 1 = VideoDitherMethodVerterr+    toEnum 2 = VideoDitherMethodFloydSteinberg+    toEnum 3 = VideoDitherMethodSierraLite+    toEnum 4 = VideoDitherMethodBayer+    toEnum k = AnotherVideoDitherMethod k++instance P.Ord VideoDitherMethod where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_dither_method_get_type" c_gst_video_dither_method_get_type :: +    IO GType++instance BoxedEnum VideoDitherMethod where+    boxedEnumType _ = c_gst_video_dither_method_get_type++-- Enum VideoColorRange+{- |+Possible color range values. These constants are defined for 8 bit color+values and can be scaled for other bit depths.+-}+data VideoColorRange = +      VideoColorRangeUnknown+    {- ^+    unknown range+    -}+    | VideoColorRange0255+    {- ^+    [0..255] for 8 bit components+    -}+    | VideoColorRange16235+    {- ^+    [16..235] for 8 bit components. Chroma has+                    [16..240] range.+    -}+    | AnotherVideoColorRange Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoColorRange where+    fromEnum VideoColorRangeUnknown = 0+    fromEnum VideoColorRange0255 = 1+    fromEnum VideoColorRange16235 = 2+    fromEnum (AnotherVideoColorRange k) = k++    toEnum 0 = VideoColorRangeUnknown+    toEnum 1 = VideoColorRange0255+    toEnum 2 = VideoColorRange16235+    toEnum k = AnotherVideoColorRange k++instance P.Ord VideoColorRange where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_color_range_get_type" c_gst_video_color_range_get_type :: +    IO GType++instance BoxedEnum VideoColorRange where+    boxedEnumType _ = c_gst_video_color_range_get_type++-- Enum VideoColorPrimaries+{- |+The color primaries define the how to transform linear RGB values to and from+the CIE XYZ colorspace.+-}+data VideoColorPrimaries = +      VideoColorPrimariesUnknown+    {- ^+    unknown color primaries+    -}+    | VideoColorPrimariesBt709+    {- ^+    BT709 primaries+    -}+    | VideoColorPrimariesBt470m+    {- ^+    BT470M primaries+    -}+    | VideoColorPrimariesBt470bg+    {- ^+    BT470BG primaries+    -}+    | VideoColorPrimariesSmpte170m+    {- ^+    SMPTE170M primaries+    -}+    | VideoColorPrimariesSmpte240m+    {- ^+    SMPTE240M primaries+    -}+    | VideoColorPrimariesFilm+    {- ^+    Generic film+    -}+    | VideoColorPrimariesBt2020+    {- ^+    BT2020 primaries. Since: 1.6+    -}+    | VideoColorPrimariesAdobergb+    {- ^+    Adobe RGB primaries. Since: 1.8+    -}+    | VideoColorPrimariesSmptest428+    {- ^+    SMPTE ST 428 primaries. Since: 1.16+    -}+    | VideoColorPrimariesSmpterp431+    {- ^+    SMPTE RP 431 primaries. Since: 1.16+    -}+    | VideoColorPrimariesSmpteeg432+    {- ^+    SMPTE EG 432 primaries. Since: 1.16+    -}+    | VideoColorPrimariesEbu3213+    {- ^+    EBU 3213 primaries. Since: 1.16+    -}+    | AnotherVideoColorPrimaries Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoColorPrimaries where+    fromEnum VideoColorPrimariesUnknown = 0+    fromEnum VideoColorPrimariesBt709 = 1+    fromEnum VideoColorPrimariesBt470m = 2+    fromEnum VideoColorPrimariesBt470bg = 3+    fromEnum VideoColorPrimariesSmpte170m = 4+    fromEnum VideoColorPrimariesSmpte240m = 5+    fromEnum VideoColorPrimariesFilm = 6+    fromEnum VideoColorPrimariesBt2020 = 7+    fromEnum VideoColorPrimariesAdobergb = 8+    fromEnum VideoColorPrimariesSmptest428 = 9+    fromEnum VideoColorPrimariesSmpterp431 = 10+    fromEnum VideoColorPrimariesSmpteeg432 = 11+    fromEnum VideoColorPrimariesEbu3213 = 12+    fromEnum (AnotherVideoColorPrimaries k) = k++    toEnum 0 = VideoColorPrimariesUnknown+    toEnum 1 = VideoColorPrimariesBt709+    toEnum 2 = VideoColorPrimariesBt470m+    toEnum 3 = VideoColorPrimariesBt470bg+    toEnum 4 = VideoColorPrimariesSmpte170m+    toEnum 5 = VideoColorPrimariesSmpte240m+    toEnum 6 = VideoColorPrimariesFilm+    toEnum 7 = VideoColorPrimariesBt2020+    toEnum 8 = VideoColorPrimariesAdobergb+    toEnum 9 = VideoColorPrimariesSmptest428+    toEnum 10 = VideoColorPrimariesSmpterp431+    toEnum 11 = VideoColorPrimariesSmpteeg432+    toEnum 12 = VideoColorPrimariesEbu3213+    toEnum k = AnotherVideoColorPrimaries k++instance P.Ord VideoColorPrimaries where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_color_primaries_get_type" c_gst_video_color_primaries_get_type :: +    IO GType++instance BoxedEnum VideoColorPrimaries where+    boxedEnumType _ = c_gst_video_color_primaries_get_type++-- Enum VideoColorMatrix+{- |+The color matrix is used to convert between Y\'PbPr and+non-linear RGB (R\'G\'B\')+-}+data VideoColorMatrix = +      VideoColorMatrixUnknown+    {- ^+    unknown matrix+    -}+    | VideoColorMatrixRgb+    {- ^+    identity matrix+    -}+    | VideoColorMatrixFcc+    {- ^+    FCC color matrix+    -}+    | VideoColorMatrixBt709+    {- ^+    ITU-R BT.709 color matrix+    -}+    | VideoColorMatrixBt601+    {- ^+    ITU-R BT.601 color matrix+    -}+    | VideoColorMatrixSmpte240m+    {- ^+    SMPTE 240M color matrix+    -}+    | VideoColorMatrixBt2020+    {- ^+    ITU-R BT.2020 color matrix. Since: 1.6+    -}+    | AnotherVideoColorMatrix Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoColorMatrix where+    fromEnum VideoColorMatrixUnknown = 0+    fromEnum VideoColorMatrixRgb = 1+    fromEnum VideoColorMatrixFcc = 2+    fromEnum VideoColorMatrixBt709 = 3+    fromEnum VideoColorMatrixBt601 = 4+    fromEnum VideoColorMatrixSmpte240m = 5+    fromEnum VideoColorMatrixBt2020 = 6+    fromEnum (AnotherVideoColorMatrix k) = k++    toEnum 0 = VideoColorMatrixUnknown+    toEnum 1 = VideoColorMatrixRgb+    toEnum 2 = VideoColorMatrixFcc+    toEnum 3 = VideoColorMatrixBt709+    toEnum 4 = VideoColorMatrixBt601+    toEnum 5 = VideoColorMatrixSmpte240m+    toEnum 6 = VideoColorMatrixBt2020+    toEnum k = AnotherVideoColorMatrix k++instance P.Ord VideoColorMatrix where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_color_matrix_get_type" c_gst_video_color_matrix_get_type :: +    IO GType++instance BoxedEnum VideoColorMatrix where+    boxedEnumType _ = c_gst_video_color_matrix_get_type++-- Enum VideoChromaMode+{- |+Different chroma downsampling and upsampling modes++/Since: 1.6/+-}+data VideoChromaMode = +      VideoChromaModeFull+    {- ^+    do full chroma up and down sampling+    -}+    | VideoChromaModeUpsampleOnly+    {- ^+    only perform chroma upsampling+    -}+    | VideoChromaModeDownsampleOnly+    {- ^+    only perform chroma downsampling+    -}+    | VideoChromaModeNone+    {- ^+    disable chroma resampling+    -}+    | AnotherVideoChromaMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoChromaMode where+    fromEnum VideoChromaModeFull = 0+    fromEnum VideoChromaModeUpsampleOnly = 1+    fromEnum VideoChromaModeDownsampleOnly = 2+    fromEnum VideoChromaModeNone = 3+    fromEnum (AnotherVideoChromaMode k) = k++    toEnum 0 = VideoChromaModeFull+    toEnum 1 = VideoChromaModeUpsampleOnly+    toEnum 2 = VideoChromaModeDownsampleOnly+    toEnum 3 = VideoChromaModeNone+    toEnum k = AnotherVideoChromaMode k++instance P.Ord VideoChromaMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_chroma_mode_get_type" c_gst_video_chroma_mode_get_type :: +    IO GType++instance BoxedEnum VideoChromaMode where+    boxedEnumType _ = c_gst_video_chroma_mode_get_type++-- Enum VideoChromaMethod+{- |+Different subsampling and upsampling methods+-}+data VideoChromaMethod = +      VideoChromaMethodNearest+    {- ^+    Duplicates the chroma samples when+       upsampling and drops when subsampling+    -}+    | VideoChromaMethodLinear+    {- ^+    Uses linear interpolation to reconstruct+       missing chroma and averaging to subsample+    -}+    | AnotherVideoChromaMethod Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoChromaMethod where+    fromEnum VideoChromaMethodNearest = 0+    fromEnum VideoChromaMethodLinear = 1+    fromEnum (AnotherVideoChromaMethod k) = k++    toEnum 0 = VideoChromaMethodNearest+    toEnum 1 = VideoChromaMethodLinear+    toEnum k = AnotherVideoChromaMethod k++instance P.Ord VideoChromaMethod where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_chroma_method_get_type" c_gst_video_chroma_method_get_type :: +    IO GType++instance BoxedEnum VideoChromaMethod where+    boxedEnumType _ = c_gst_video_chroma_method_get_type++-- Enum VideoCaptionType+{- |+The various known types of Closed Caption (CC).++/Since: 1.16/+-}+data VideoCaptionType = +      VideoCaptionTypeUnknown+    {- ^+    Unknown type of CC+    -}+    | VideoCaptionTypeCea608Raw+    {- ^+    CEA-608 as byte pairs. Note that+         this format is not recommended since is does not specify to+         which field the caption comes from and therefore assumes+         it comes from the first field (and that there is no information+         on the second field). Use /@gSTVIDEOCAPTIONTYPECEA708RAW@/+         if you wish to store CEA-608 from two fields and prefix each byte pair+         with 0xFC for the first field and 0xFD for the second field.+    -}+    | VideoCaptionTypeCea608S3341a+    {- ^+    CEA-608 as byte triplets as defined+         in SMPTE S334-1 Annex A. The second and third byte of the byte triplet+         is the raw CEA608 data, the first byte is a bitfield: The top\/7th bit is+         0 for the second field, 1 for the first field, bit 6 and 5 are 0 and+         bits 4 to 0 are a 5 bit unsigned integer that represents the line+         offset relative to the base-line of the original image format (line 9+         for 525-line field 1, line 272 for 525-line field 2, line 5 for+         625-line field 1 and line 318 for 625-line field 2).+    -}+    | VideoCaptionTypeCea708Raw+    {- ^+    CEA-708 as cc_data byte triplets. They+         can also contain 608-in-708 and the first byte of each triplet has to+         be inspected for detecting the type.+    -}+    | VideoCaptionTypeCea708Cdp+    {- ^+    CEA-708 (and optionally CEA-608) in+         a CDP (Caption Distribution Packet) defined by SMPTE S-334-2.+         Contains the whole CDP (starting with 0x9669).+    -}+    | AnotherVideoCaptionType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoCaptionType where+    fromEnum VideoCaptionTypeUnknown = 0+    fromEnum VideoCaptionTypeCea608Raw = 1+    fromEnum VideoCaptionTypeCea608S3341a = 2+    fromEnum VideoCaptionTypeCea708Raw = 3+    fromEnum VideoCaptionTypeCea708Cdp = 4+    fromEnum (AnotherVideoCaptionType k) = k++    toEnum 0 = VideoCaptionTypeUnknown+    toEnum 1 = VideoCaptionTypeCea608Raw+    toEnum 2 = VideoCaptionTypeCea608S3341a+    toEnum 3 = VideoCaptionTypeCea708Raw+    toEnum 4 = VideoCaptionTypeCea708Cdp+    toEnum k = AnotherVideoCaptionType k++instance P.Ord VideoCaptionType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_caption_type_get_type" c_gst_video_caption_type_get_type :: +    IO GType++instance BoxedEnum VideoCaptionType where+    boxedEnumType _ = c_gst_video_caption_type_get_type++-- Enum VideoAncillaryDID16+{- |+Some know types of Ancillary Data identifiers.++/Since: 1.16/+-}+data VideoAncillaryDID16 = +      VideoAncillaryDID16708+    {- ^+    CEA 708 Ancillary data according to SMPTE 334+    -}+    | VideoAncillaryDID16608+    {- ^+    CEA 608 Ancillary data according to SMPTE 334+    -}+    | AnotherVideoAncillaryDID16 Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoAncillaryDID16 where+    fromEnum VideoAncillaryDID16708 = 24833+    fromEnum VideoAncillaryDID16608 = 24834+    fromEnum (AnotherVideoAncillaryDID16 k) = k++    toEnum 24833 = VideoAncillaryDID16708+    toEnum 24834 = VideoAncillaryDID16608+    toEnum k = AnotherVideoAncillaryDID16 k++instance P.Ord VideoAncillaryDID16 where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_ancillary_di_d16_get_type" c_gst_video_ancillary_di_d16_get_type :: +    IO GType++instance BoxedEnum VideoAncillaryDID16 where+    boxedEnumType _ = c_gst_video_ancillary_di_d16_get_type++-- Enum VideoAncillaryDID+{- |+/No description available in the introspection data./+-}+data VideoAncillaryDID = +      VideoAncillaryDIDUndefined+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDDeletion+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHanc3gAudioDataFirst+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHanc3gAudioDataLast+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancHdtvAudioDataFirst+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancHdtvAudioDataLast+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancSdtvAudioData1First+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancSdtvAudioData1Last+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDCameraPosition+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancErrorDetection+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancSdtvAudioData2First+    {- ^+    /No description available in the introspection data./+    -}+    | VideoAncillaryDIDHancSdtvAudioData2Last+    {- ^+    /No description available in the introspection data./+    -}+    | AnotherVideoAncillaryDID Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoAncillaryDID where+    fromEnum VideoAncillaryDIDUndefined = 0+    fromEnum VideoAncillaryDIDDeletion = 128+    fromEnum VideoAncillaryDIDHanc3gAudioDataFirst = 160+    fromEnum VideoAncillaryDIDHanc3gAudioDataLast = 167+    fromEnum VideoAncillaryDIDHancHdtvAudioDataFirst = 224+    fromEnum VideoAncillaryDIDHancHdtvAudioDataLast = 231+    fromEnum VideoAncillaryDIDHancSdtvAudioData1First = 236+    fromEnum VideoAncillaryDIDHancSdtvAudioData1Last = 239+    fromEnum VideoAncillaryDIDCameraPosition = 240+    fromEnum VideoAncillaryDIDHancErrorDetection = 244+    fromEnum VideoAncillaryDIDHancSdtvAudioData2First = 248+    fromEnum VideoAncillaryDIDHancSdtvAudioData2Last = 255+    fromEnum (AnotherVideoAncillaryDID k) = k++    toEnum 0 = VideoAncillaryDIDUndefined+    toEnum 128 = VideoAncillaryDIDDeletion+    toEnum 160 = VideoAncillaryDIDHanc3gAudioDataFirst+    toEnum 167 = VideoAncillaryDIDHanc3gAudioDataLast+    toEnum 224 = VideoAncillaryDIDHancHdtvAudioDataFirst+    toEnum 231 = VideoAncillaryDIDHancHdtvAudioDataLast+    toEnum 236 = VideoAncillaryDIDHancSdtvAudioData1First+    toEnum 239 = VideoAncillaryDIDHancSdtvAudioData1Last+    toEnum 240 = VideoAncillaryDIDCameraPosition+    toEnum 244 = VideoAncillaryDIDHancErrorDetection+    toEnum 248 = VideoAncillaryDIDHancSdtvAudioData2First+    toEnum 255 = VideoAncillaryDIDHancSdtvAudioData2Last+    toEnum k = AnotherVideoAncillaryDID k++instance P.Ord VideoAncillaryDID where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_ancillary_did_get_type" c_gst_video_ancillary_did_get_type :: +    IO GType++instance BoxedEnum VideoAncillaryDID where+    boxedEnumType _ = c_gst_video_ancillary_did_get_type++-- Enum VideoAlphaMode+{- |+Different alpha modes.++/Since: 1.6/+-}+data VideoAlphaMode = +      VideoAlphaModeCopy+    {- ^+    When input and output have alpha, it will be copied.+            When the input has no alpha, alpha will be set to+            'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_ALPHA_VALUE'+    -}+    | VideoAlphaModeSet+    {- ^+    set all alpha to+       'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_ALPHA_VALUE'+    -}+    | VideoAlphaModeMult+    {- ^+    multiply all alpha with+            'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_ALPHA_VALUE'.+            When the input format has no alpha but the output format has, the+            alpha value will be set to 'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_ALPHA_VALUE'+    -}+    | AnotherVideoAlphaMode Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoAlphaMode where+    fromEnum VideoAlphaModeCopy = 0+    fromEnum VideoAlphaModeSet = 1+    fromEnum VideoAlphaModeMult = 2+    fromEnum (AnotherVideoAlphaMode k) = k++    toEnum 0 = VideoAlphaModeCopy+    toEnum 1 = VideoAlphaModeSet+    toEnum 2 = VideoAlphaModeMult+    toEnum k = AnotherVideoAlphaMode k++instance P.Ord VideoAlphaMode where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_alpha_mode_get_type" c_gst_video_alpha_mode_get_type :: +    IO GType++instance BoxedEnum VideoAlphaMode where+    boxedEnumType _ = c_gst_video_alpha_mode_get_type++-- Enum NavigationQueryType+{- |+Tyoes of navigation interface queries.+-}+data NavigationQueryType = +      NavigationQueryTypeInvalid+    {- ^+    invalid query+    -}+    | NavigationQueryTypeCommands+    {- ^+    command query+    -}+    | NavigationQueryTypeAngles+    {- ^+    viewing angle query+    -}+    | AnotherNavigationQueryType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum NavigationQueryType where+    fromEnum NavigationQueryTypeInvalid = 0+    fromEnum NavigationQueryTypeCommands = 1+    fromEnum NavigationQueryTypeAngles = 2+    fromEnum (AnotherNavigationQueryType k) = k++    toEnum 0 = NavigationQueryTypeInvalid+    toEnum 1 = NavigationQueryTypeCommands+    toEnum 2 = NavigationQueryTypeAngles+    toEnum k = AnotherNavigationQueryType k++instance P.Ord NavigationQueryType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_navigation_query_type_get_type" c_gst_navigation_query_type_get_type :: +    IO GType++instance BoxedEnum NavigationQueryType where+    boxedEnumType _ = c_gst_navigation_query_type_get_type++-- Enum NavigationMessageType+{- |+A set of notifications that may be received on the bus when navigation+related status changes.+-}+data NavigationMessageType = +      NavigationMessageTypeInvalid+    {- ^+    Returned from+    'GI.GstVideo.Functions.navigationMessageGetType' when the passed message is not a+    navigation message.+    -}+    | NavigationMessageTypeMouseOver+    {- ^+    Sent when the mouse moves over or leaves a+    clickable region of the output, such as a DVD menu button.+    -}+    | NavigationMessageTypeCommandsChanged+    {- ^+    Sent when the set of available commands+    changes and should re-queried by interested applications.+    -}+    | NavigationMessageTypeAnglesChanged+    {- ^+    Sent when display angles in a multi-angle+    feature (such as a multiangle DVD) change - either angles have appeared or+    disappeared.+    -}+    | NavigationMessageTypeEvent+    {- ^+    Sent when a navigation event was not handled+    by any element in the pipeline (Since 1.6)+    -}+    | AnotherNavigationMessageType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum NavigationMessageType where+    fromEnum NavigationMessageTypeInvalid = 0+    fromEnum NavigationMessageTypeMouseOver = 1+    fromEnum NavigationMessageTypeCommandsChanged = 2+    fromEnum NavigationMessageTypeAnglesChanged = 3+    fromEnum NavigationMessageTypeEvent = 4+    fromEnum (AnotherNavigationMessageType k) = k++    toEnum 0 = NavigationMessageTypeInvalid+    toEnum 1 = NavigationMessageTypeMouseOver+    toEnum 2 = NavigationMessageTypeCommandsChanged+    toEnum 3 = NavigationMessageTypeAnglesChanged+    toEnum 4 = NavigationMessageTypeEvent+    toEnum k = AnotherNavigationMessageType k++instance P.Ord NavigationMessageType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_navigation_message_type_get_type" c_gst_navigation_message_type_get_type :: +    IO GType++instance BoxedEnum NavigationMessageType where+    boxedEnumType _ = c_gst_navigation_message_type_get_type++-- Enum NavigationEventType+{- |+Enum values for the various events that an element implementing the+GstNavigation interface might send up the pipeline.+-}+data NavigationEventType = +      NavigationEventTypeInvalid+    {- ^+    Returned from+    'GI.GstVideo.Functions.navigationEventGetType' when the passed event is not a navigation event.+    -}+    | NavigationEventTypeKeyPress+    {- ^+    A key press event. Use+    'GI.GstVideo.Functions.navigationEventParseKeyEvent' to extract the details from the event.+    -}+    | NavigationEventTypeKeyRelease+    {- ^+    A key release event. Use+    'GI.GstVideo.Functions.navigationEventParseKeyEvent' to extract the details from the event.+    -}+    | NavigationEventTypeMouseButtonPress+    {- ^+    A mouse button press event. Use+    'GI.GstVideo.Functions.navigationEventParseMouseButtonEvent' to extract the details from the+    event.+    -}+    | NavigationEventTypeMouseButtonRelease+    {- ^+    A mouse button release event. Use+    'GI.GstVideo.Functions.navigationEventParseMouseButtonEvent' to extract the details from the+    event.+    -}+    | NavigationEventTypeMouseMove+    {- ^+    A mouse movement event. Use+    'GI.GstVideo.Functions.navigationEventParseMouseMoveEvent' to extract the details from the+    event.+    -}+    | NavigationEventTypeCommand+    {- ^+    A navigation command event. Use+    'GI.GstVideo.Functions.navigationEventParseCommand' to extract the details from the event.+    -}+    | AnotherNavigationEventType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum NavigationEventType where+    fromEnum NavigationEventTypeInvalid = 0+    fromEnum NavigationEventTypeKeyPress = 1+    fromEnum NavigationEventTypeKeyRelease = 2+    fromEnum NavigationEventTypeMouseButtonPress = 3+    fromEnum NavigationEventTypeMouseButtonRelease = 4+    fromEnum NavigationEventTypeMouseMove = 5+    fromEnum NavigationEventTypeCommand = 6+    fromEnum (AnotherNavigationEventType k) = k++    toEnum 0 = NavigationEventTypeInvalid+    toEnum 1 = NavigationEventTypeKeyPress+    toEnum 2 = NavigationEventTypeKeyRelease+    toEnum 3 = NavigationEventTypeMouseButtonPress+    toEnum 4 = NavigationEventTypeMouseButtonRelease+    toEnum 5 = NavigationEventTypeMouseMove+    toEnum 6 = NavigationEventTypeCommand+    toEnum k = AnotherNavigationEventType k++instance P.Ord NavigationEventType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_navigation_event_type_get_type" c_gst_navigation_event_type_get_type :: +    IO GType++instance BoxedEnum NavigationEventType where+    boxedEnumType _ = c_gst_navigation_event_type_get_type++-- Enum NavigationCommand+{- |+A set of commands that may be issued to an element providing the+'GI.GstVideo.Interfaces.Navigation.Navigation' interface. The available commands can be queried via+the 'GI.GstVideo.Functions.navigationQueryNewCommands' query.++For convenience in handling DVD navigation, the MENU commands are aliased as:+   GST_NAVIGATION_COMMAND_DVD_MENU            = /@gSTNAVIGATIONCOMMANDMENU1@/+   GST_NAVIGATION_COMMAND_DVD_TITLE_MENU      = /@gSTNAVIGATIONCOMMANDMENU2@/+   GST_NAVIGATION_COMMAND_DVD_ROOT_MENU       = /@gSTNAVIGATIONCOMMANDMENU3@/+   GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = /@gSTNAVIGATIONCOMMANDMENU4@/+   GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU      = /@gSTNAVIGATIONCOMMANDMENU5@/+   GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU      = /@gSTNAVIGATIONCOMMANDMENU6@/+   GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = /@gSTNAVIGATIONCOMMANDMENU7@/+-}+data NavigationCommand = +      NavigationCommandInvalid+    {- ^+    An invalid command entry+    -}+    | NavigationCommandMenu1+    {- ^+    Execute navigation menu command 1. For DVD,+    this enters the DVD root menu, or exits back to the title from the menu.+    -}+    | NavigationCommandMenu2+    {- ^+    Execute navigation menu command 2. For DVD,+    this jumps to the DVD title menu.+    -}+    | NavigationCommandMenu3+    {- ^+    Execute navigation menu command 3. For DVD,+    this jumps into the DVD root menu.+    -}+    | NavigationCommandMenu4+    {- ^+    Execute navigation menu command 4. For DVD,+    this jumps to the Subpicture menu.+    -}+    | NavigationCommandMenu5+    {- ^+    Execute navigation menu command 5. For DVD,+    the jumps to the audio menu.+    -}+    | NavigationCommandMenu6+    {- ^+    Execute navigation menu command 6. For DVD,+    this jumps to the angles menu.+    -}+    | NavigationCommandMenu7+    {- ^+    Execute navigation menu command 7. For DVD,+    this jumps to the chapter menu.+    -}+    | NavigationCommandLeft+    {- ^+    Select the next button to the left in a menu,+    if such a button exists.+    -}+    | NavigationCommandRight+    {- ^+    Select the next button to the right in a menu,+    if such a button exists.+    -}+    | NavigationCommandUp+    {- ^+    Select the button above the current one in a+    menu, if such a button exists.+    -}+    | NavigationCommandDown+    {- ^+    Select the button below the current one in a+    menu, if such a button exists.+    -}+    | NavigationCommandActivate+    {- ^+    Activate (click) the currently selected+    button in a menu, if such a button exists.+    -}+    | NavigationCommandPrevAngle+    {- ^+    Switch to the previous angle in a+    multiangle feature.+    -}+    | NavigationCommandNextAngle+    {- ^+    Switch to the next angle in a multiangle+    feature.+    -}+    | AnotherNavigationCommand Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum NavigationCommand where+    fromEnum NavigationCommandInvalid = 0+    fromEnum NavigationCommandMenu1 = 1+    fromEnum NavigationCommandMenu2 = 2+    fromEnum NavigationCommandMenu3 = 3+    fromEnum NavigationCommandMenu4 = 4+    fromEnum NavigationCommandMenu5 = 5+    fromEnum NavigationCommandMenu6 = 6+    fromEnum NavigationCommandMenu7 = 7+    fromEnum NavigationCommandLeft = 20+    fromEnum NavigationCommandRight = 21+    fromEnum NavigationCommandUp = 22+    fromEnum NavigationCommandDown = 23+    fromEnum NavigationCommandActivate = 24+    fromEnum NavigationCommandPrevAngle = 30+    fromEnum NavigationCommandNextAngle = 31+    fromEnum (AnotherNavigationCommand k) = k++    toEnum 0 = NavigationCommandInvalid+    toEnum 1 = NavigationCommandMenu1+    toEnum 2 = NavigationCommandMenu2+    toEnum 3 = NavigationCommandMenu3+    toEnum 4 = NavigationCommandMenu4+    toEnum 5 = NavigationCommandMenu5+    toEnum 6 = NavigationCommandMenu6+    toEnum 7 = NavigationCommandMenu7+    toEnum 20 = NavigationCommandLeft+    toEnum 21 = NavigationCommandRight+    toEnum 22 = NavigationCommandUp+    toEnum 23 = NavigationCommandDown+    toEnum 24 = NavigationCommandActivate+    toEnum 30 = NavigationCommandPrevAngle+    toEnum 31 = NavigationCommandNextAngle+    toEnum k = AnotherNavigationCommand k++instance P.Ord NavigationCommand where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_navigation_command_get_type" c_gst_navigation_command_get_type :: +    IO GType++instance BoxedEnum NavigationCommand where+    boxedEnumType _ = c_gst_navigation_command_get_type++-- Enum ColorBalanceType+{- |+An enumeration indicating whether an element implements color balancing+operations in software or in dedicated hardware. In general, dedicated+hardware implementations (such as those provided by xvimagesink) are+preferred.+-}+data ColorBalanceType = +      ColorBalanceTypeHardware+    {- ^+    Color balance is implemented with dedicated+            hardware.+    -}+    | ColorBalanceTypeSoftware+    {- ^+    Color balance is implemented via software+            processing.+    -}+    | AnotherColorBalanceType Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum ColorBalanceType where+    fromEnum ColorBalanceTypeHardware = 0+    fromEnum ColorBalanceTypeSoftware = 1+    fromEnum (AnotherColorBalanceType k) = k++    toEnum 0 = ColorBalanceTypeHardware+    toEnum 1 = ColorBalanceTypeSoftware+    toEnum k = AnotherColorBalanceType k++instance P.Ord ColorBalanceType where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_color_balance_type_get_type" c_gst_color_balance_type_get_type :: +    IO GType++instance BoxedEnum ColorBalanceType where+    boxedEnumType _ = c_gst_color_balance_type_get_type++
+ GI/GstVideo/Enums.hs-boot view
@@ -0,0 +1,115 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Enums 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++data VideoVBIParserResult+instance P.Enum VideoVBIParserResult where+instance BoxedEnum VideoVBIParserResult where+data VideoTransferFunction+instance P.Enum VideoTransferFunction where+instance BoxedEnum VideoTransferFunction where+data VideoTileType+instance P.Enum VideoTileType where+instance BoxedEnum VideoTileType where+data VideoTileMode+instance P.Enum VideoTileMode where+instance BoxedEnum VideoTileMode where+data VideoResamplerMethod+instance P.Enum VideoResamplerMethod where+instance BoxedEnum VideoResamplerMethod where+data VideoPrimariesMode+instance P.Enum VideoPrimariesMode where+instance BoxedEnum VideoPrimariesMode where+data VideoOrientationMethod+instance P.Enum VideoOrientationMethod where+instance BoxedEnum VideoOrientationMethod where+data VideoMultiviewMode+instance P.Enum VideoMultiviewMode where+instance BoxedEnum VideoMultiviewMode where+data VideoMultiviewFramePacking+instance P.Enum VideoMultiviewFramePacking where+instance BoxedEnum VideoMultiviewFramePacking where+data VideoMatrixMode+instance P.Enum VideoMatrixMode where+instance BoxedEnum VideoMatrixMode where+data VideoInterlaceMode+instance P.Enum VideoInterlaceMode where+instance BoxedEnum VideoInterlaceMode where+data VideoGammaMode+instance P.Enum VideoGammaMode where+instance BoxedEnum VideoGammaMode where+data VideoGLTextureType+instance P.Enum VideoGLTextureType where+data VideoGLTextureOrientation+instance P.Enum VideoGLTextureOrientation where+data VideoFormat+instance P.Enum VideoFormat where+instance BoxedEnum VideoFormat where+data VideoFieldOrder+instance P.Enum VideoFieldOrder where+instance BoxedEnum VideoFieldOrder where+data VideoDitherMethod+instance P.Enum VideoDitherMethod where+instance BoxedEnum VideoDitherMethod where+data VideoColorRange+instance P.Enum VideoColorRange where+instance BoxedEnum VideoColorRange where+data VideoColorPrimaries+instance P.Enum VideoColorPrimaries where+instance BoxedEnum VideoColorPrimaries where+data VideoColorMatrix+instance P.Enum VideoColorMatrix where+instance BoxedEnum VideoColorMatrix where+data VideoChromaMode+instance P.Enum VideoChromaMode where+instance BoxedEnum VideoChromaMode where+data VideoChromaMethod+instance P.Enum VideoChromaMethod where+instance BoxedEnum VideoChromaMethod where+data VideoCaptionType+instance P.Enum VideoCaptionType where+instance BoxedEnum VideoCaptionType where+data VideoAncillaryDID16+instance P.Enum VideoAncillaryDID16 where+instance BoxedEnum VideoAncillaryDID16 where+data VideoAncillaryDID+instance P.Enum VideoAncillaryDID where+instance BoxedEnum VideoAncillaryDID where+data VideoAlphaMode+instance P.Enum VideoAlphaMode where+instance BoxedEnum VideoAlphaMode where+data NavigationQueryType+instance P.Enum NavigationQueryType where+instance BoxedEnum NavigationQueryType where+data NavigationMessageType+instance P.Enum NavigationMessageType where+instance BoxedEnum NavigationMessageType where+data NavigationEventType+instance P.Enum NavigationEventType where+instance BoxedEnum NavigationEventType where+data NavigationCommand+instance P.Enum NavigationCommand where+instance BoxedEnum NavigationCommand where+data ColorBalanceType+instance P.Enum ColorBalanceType where+instance BoxedEnum ColorBalanceType where
+ GI/GstVideo/Flags.hs view
@@ -0,0 +1,983 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Flags+    ( ++ -- * Flags+-- ** VideoBufferFlags #flag:VideoBufferFlags#++    VideoBufferFlags(..)                    ,+++-- ** VideoChromaFlags #flag:VideoChromaFlags#++    VideoChromaFlags(..)                    ,+++-- ** VideoChromaSite #flag:VideoChromaSite#++    VideoChromaSite(..)                     ,+++-- ** VideoCodecFrameFlags #flag:VideoCodecFrameFlags#++    VideoCodecFrameFlags(..)                ,+++-- ** VideoDitherFlags #flag:VideoDitherFlags#++    VideoDitherFlags(..)                    ,+++-- ** VideoFlags #flag:VideoFlags#++    VideoFlags(..)                          ,+++-- ** VideoFormatFlags #flag:VideoFormatFlags#++    VideoFormatFlags(..)                    ,+++-- ** VideoFrameFlags #flag:VideoFrameFlags#++    VideoFrameFlags(..)                     ,+++-- ** VideoFrameMapFlags #flag:VideoFrameMapFlags#++    VideoFrameMapFlags(..)                  ,+++-- ** VideoMultiviewFlags #flag:VideoMultiviewFlags#++    VideoMultiviewFlags(..)                 ,+++-- ** VideoOverlayFormatFlags #flag:VideoOverlayFormatFlags#++    VideoOverlayFormatFlags(..)             ,+++-- ** VideoPackFlags #flag:VideoPackFlags#++    VideoPackFlags(..)                      ,+++-- ** VideoResamplerFlags #flag:VideoResamplerFlags#++    VideoResamplerFlags(..)                 ,+++-- ** VideoScalerFlags #flag:VideoScalerFlags#++    VideoScalerFlags(..)                    ,+++-- ** VideoTimeCodeFlags #flag:VideoTimeCodeFlags#++    VideoTimeCodeFlags(..)                  ,+++++    ) 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+++-- Flags VideoTimeCodeFlags+{- |+Flags related to the time code information.+For drop frame, only 30000\/1001 and 60000\/1001 frame rates are supported.++/Since: 1.10/+-}+data VideoTimeCodeFlags = +      VideoTimeCodeFlagsNone+    {- ^+    No flags+    -}+    | VideoTimeCodeFlagsDropFrame+    {- ^+    Whether we have drop frame rate+    -}+    | VideoTimeCodeFlagsInterlaced+    {- ^+    Whether we have interlaced video+    -}+    | AnotherVideoTimeCodeFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoTimeCodeFlags where+    fromEnum VideoTimeCodeFlagsNone = 0+    fromEnum VideoTimeCodeFlagsDropFrame = 1+    fromEnum VideoTimeCodeFlagsInterlaced = 2+    fromEnum (AnotherVideoTimeCodeFlags k) = k++    toEnum 0 = VideoTimeCodeFlagsNone+    toEnum 1 = VideoTimeCodeFlagsDropFrame+    toEnum 2 = VideoTimeCodeFlagsInterlaced+    toEnum k = AnotherVideoTimeCodeFlags k++instance P.Ord VideoTimeCodeFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++instance IsGFlag VideoTimeCodeFlags++-- Flags VideoScalerFlags+{- |+Different scale flags.+-}+data VideoScalerFlags = +      VideoScalerFlagsNone+    {- ^+    no flags+    -}+    | VideoScalerFlagsInterlaced+    {- ^+    Set up a scaler for interlaced content+    -}+    | AnotherVideoScalerFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoScalerFlags where+    fromEnum VideoScalerFlagsNone = 0+    fromEnum VideoScalerFlagsInterlaced = 1+    fromEnum (AnotherVideoScalerFlags k) = k++    toEnum 0 = VideoScalerFlagsNone+    toEnum 1 = VideoScalerFlagsInterlaced+    toEnum k = AnotherVideoScalerFlags k++instance P.Ord VideoScalerFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_scaler_flags_get_type" c_gst_video_scaler_flags_get_type :: +    IO GType++instance BoxedFlags VideoScalerFlags where+    boxedFlagsType _ = c_gst_video_scaler_flags_get_type++instance IsGFlag VideoScalerFlags++-- Flags VideoResamplerFlags+{- |+Different resampler flags.++/Since: 1.6/+-}+data VideoResamplerFlags = +      VideoResamplerFlagsNone+    {- ^+    no flags+    -}+    | VideoResamplerFlagsHalfTaps+    {- ^+    when no taps are given, half the+                 number of calculated taps. This can be used when making scalers+                 for the different fields of an interlaced picture. Since 1.10+    -}+    | AnotherVideoResamplerFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoResamplerFlags where+    fromEnum VideoResamplerFlagsNone = 0+    fromEnum VideoResamplerFlagsHalfTaps = 1+    fromEnum (AnotherVideoResamplerFlags k) = k++    toEnum 0 = VideoResamplerFlagsNone+    toEnum 1 = VideoResamplerFlagsHalfTaps+    toEnum k = AnotherVideoResamplerFlags k++instance P.Ord VideoResamplerFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_resampler_flags_get_type" c_gst_video_resampler_flags_get_type :: +    IO GType++instance BoxedFlags VideoResamplerFlags where+    boxedFlagsType _ = c_gst_video_resampler_flags_get_type++instance IsGFlag VideoResamplerFlags++-- Flags VideoPackFlags+{- |+The different flags that can be used when packing and unpacking.+-}+data VideoPackFlags = +      VideoPackFlagsNone+    {- ^+    No flag+    -}+    | VideoPackFlagsTruncateRange+    {- ^+    When the source has a smaller depth+      than the target format, set the least significant bits of the target+      to 0. This is likely sightly faster but less accurate. When this flag+      is not specified, the most significant bits of the source are duplicated+      in the least significant bits of the destination.+    -}+    | VideoPackFlagsInterlaced+    {- ^+    The source is interlaced. The unpacked+      format will be interlaced as well with each line containing+      information from alternating fields. (Since 1.2)+    -}+    | AnotherVideoPackFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoPackFlags where+    fromEnum VideoPackFlagsNone = 0+    fromEnum VideoPackFlagsTruncateRange = 1+    fromEnum VideoPackFlagsInterlaced = 2+    fromEnum (AnotherVideoPackFlags k) = k++    toEnum 0 = VideoPackFlagsNone+    toEnum 1 = VideoPackFlagsTruncateRange+    toEnum 2 = VideoPackFlagsInterlaced+    toEnum k = AnotherVideoPackFlags k++instance P.Ord VideoPackFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_pack_flags_get_type" c_gst_video_pack_flags_get_type :: +    IO GType++instance BoxedFlags VideoPackFlags where+    boxedFlagsType _ = c_gst_video_pack_flags_get_type++instance IsGFlag VideoPackFlags++-- Flags VideoOverlayFormatFlags+{- |+Overlay format flags.+-}+data VideoOverlayFormatFlags = +      VideoOverlayFormatFlagsNone+    {- ^+    no flags+    -}+    | VideoOverlayFormatFlagsPremultipliedAlpha+    {- ^+    RGB are premultiplied by A\/255.+    -}+    | VideoOverlayFormatFlagsGlobalAlpha+    {- ^+    a global-alpha value != 1 is set.+    -}+    | AnotherVideoOverlayFormatFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoOverlayFormatFlags where+    fromEnum VideoOverlayFormatFlagsNone = 0+    fromEnum VideoOverlayFormatFlagsPremultipliedAlpha = 1+    fromEnum VideoOverlayFormatFlagsGlobalAlpha = 2+    fromEnum (AnotherVideoOverlayFormatFlags k) = k++    toEnum 0 = VideoOverlayFormatFlagsNone+    toEnum 1 = VideoOverlayFormatFlagsPremultipliedAlpha+    toEnum 2 = VideoOverlayFormatFlagsGlobalAlpha+    toEnum k = AnotherVideoOverlayFormatFlags k++instance P.Ord VideoOverlayFormatFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_overlay_format_flags_get_type" c_gst_video_overlay_format_flags_get_type :: +    IO GType++instance BoxedFlags VideoOverlayFormatFlags where+    boxedFlagsType _ = c_gst_video_overlay_format_flags_get_type++instance IsGFlag VideoOverlayFormatFlags++-- Flags VideoMultiviewFlags+{- |+GstVideoMultiviewFlags are used to indicate extra properties of a+stereo\/multiview stream beyond the frame layout and buffer mapping+that is conveyed in the 'GI.GstVideo.Enums.VideoMultiviewMode'.+-}+data VideoMultiviewFlags = +      VideoMultiviewFlagsNone+    {- ^+    No flags+    -}+    | VideoMultiviewFlagsRightViewFirst+    {- ^+    For stereo streams, the+        normal arrangement of left and right views is reversed.+    -}+    | VideoMultiviewFlagsLeftFlipped+    {- ^+    The left view is vertically+        mirrored.+    -}+    | VideoMultiviewFlagsLeftFlopped+    {- ^+    The left view is horizontally+        mirrored.+    -}+    | VideoMultiviewFlagsRightFlipped+    {- ^+    The right view is+        vertically mirrored.+    -}+    | VideoMultiviewFlagsRightFlopped+    {- ^+    The right view is+        horizontally mirrored.+    -}+    | VideoMultiviewFlagsHalfAspect+    {- ^+    For frame-packed+        multiview modes, indicates that the individual+        views have been encoded with half the true width or height+        and should be scaled back up for display. This flag+        is used for overriding input layout interpretation+        by adjusting pixel-aspect-ratio.+        For side-by-side, column interleaved or checkerboard packings, the+        pixel width will be doubled. For row interleaved and top-bottom+        encodings, pixel height will be doubled.+    -}+    | VideoMultiviewFlagsMixedMono+    {- ^+    The video stream contains both+        mono and multiview portions, signalled on each buffer by the+        absence or presence of the /@gSTVIDEOBUFFERFLAGMULTIPLEVIEW@/+        buffer flag.+    -}+    | AnotherVideoMultiviewFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoMultiviewFlags where+    fromEnum VideoMultiviewFlagsNone = 0+    fromEnum VideoMultiviewFlagsRightViewFirst = 1+    fromEnum VideoMultiviewFlagsLeftFlipped = 2+    fromEnum VideoMultiviewFlagsLeftFlopped = 4+    fromEnum VideoMultiviewFlagsRightFlipped = 8+    fromEnum VideoMultiviewFlagsRightFlopped = 16+    fromEnum VideoMultiviewFlagsHalfAspect = 16384+    fromEnum VideoMultiviewFlagsMixedMono = 32768+    fromEnum (AnotherVideoMultiviewFlags k) = k++    toEnum 0 = VideoMultiviewFlagsNone+    toEnum 1 = VideoMultiviewFlagsRightViewFirst+    toEnum 2 = VideoMultiviewFlagsLeftFlipped+    toEnum 4 = VideoMultiviewFlagsLeftFlopped+    toEnum 8 = VideoMultiviewFlagsRightFlipped+    toEnum 16 = VideoMultiviewFlagsRightFlopped+    toEnum 16384 = VideoMultiviewFlagsHalfAspect+    toEnum 32768 = VideoMultiviewFlagsMixedMono+    toEnum k = AnotherVideoMultiviewFlags k++instance P.Ord VideoMultiviewFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_multiview_flags_get_type" c_gst_video_multiview_flags_get_type :: +    IO GType++instance BoxedFlags VideoMultiviewFlags where+    boxedFlagsType _ = c_gst_video_multiview_flags_get_type++instance IsGFlag VideoMultiviewFlags++-- Flags VideoFrameMapFlags+{- |+Additional mapping flags for 'GI.GstVideo.Structs.VideoFrame.videoFrameMap'.++/Since: 1.6/+-}+data VideoFrameMapFlags = +      VideoFrameMapFlagsNoRef+    {- ^+    Don\'t take another reference of the buffer and store it in+                                       the GstVideoFrame. This makes sure that the buffer stays+                                       writable while the frame is mapped, but requires that the+                                       buffer reference stays valid until the frame is unmapped again.+    -}+    | VideoFrameMapFlagsLast+    {- ^+    Offset to define more flags+    -}+    | AnotherVideoFrameMapFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFrameMapFlags where+    fromEnum VideoFrameMapFlagsNoRef = 65536+    fromEnum VideoFrameMapFlagsLast = 16777216+    fromEnum (AnotherVideoFrameMapFlags k) = k++    toEnum 65536 = VideoFrameMapFlagsNoRef+    toEnum 16777216 = VideoFrameMapFlagsLast+    toEnum k = AnotherVideoFrameMapFlags k++instance P.Ord VideoFrameMapFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_frame_map_flags_get_type" c_gst_video_frame_map_flags_get_type :: +    IO GType++instance BoxedFlags VideoFrameMapFlags where+    boxedFlagsType _ = c_gst_video_frame_map_flags_get_type++instance IsGFlag VideoFrameMapFlags++-- Flags VideoFrameFlags+{- |+Extra video frame flags+-}+data VideoFrameFlags = +      VideoFrameFlagsNone+    {- ^+    no flags+    -}+    | VideoFrameFlagsInterlaced+    {- ^+    The video frame is interlaced. In mixed+              interlace-mode, this flag specifies if the frame is interlaced or+              progressive.+    -}+    | VideoFrameFlagsTff+    {- ^+    The video frame has the top field first+    -}+    | VideoFrameFlagsRff+    {- ^+    The video frame has the repeat flag+    -}+    | VideoFrameFlagsOnefield+    {- ^+    The video frame has one field+    -}+    | VideoFrameFlagsMultipleView+    {- ^+    The video contains one or+        more non-mono views+    -}+    | VideoFrameFlagsFirstInBundle+    {- ^+    The video frame is the first+        in a set of corresponding views provided as sequential frames.+    -}+    | VideoFrameFlagsTopField+    {- ^+    The video frame has the top field only. This+        is the same as GST_VIDEO_FRAME_FLAG_TFF | GST_VIDEO_FRAME_FLAG_ONEFIELD+        (Since: 1.16).+    -}+    | VideoFrameFlagsBottomField+    {- ^+    The video frame has the bottom field+        only. This is the same as GST_VIDEO_FRAME_FLAG_ONEFIELD+        (GST_VIDEO_FRAME_FLAG_TFF flag unset) (Since: 1.16).+    -}+    | AnotherVideoFrameFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFrameFlags where+    fromEnum VideoFrameFlagsNone = 0+    fromEnum VideoFrameFlagsInterlaced = 1+    fromEnum VideoFrameFlagsTff = 2+    fromEnum VideoFrameFlagsRff = 4+    fromEnum VideoFrameFlagsOnefield = 8+    fromEnum VideoFrameFlagsMultipleView = 16+    fromEnum VideoFrameFlagsFirstInBundle = 32+    fromEnum VideoFrameFlagsTopField = 10+    fromEnum VideoFrameFlagsBottomField = 8+    fromEnum (AnotherVideoFrameFlags k) = k++    toEnum 0 = VideoFrameFlagsNone+    toEnum 1 = VideoFrameFlagsInterlaced+    toEnum 2 = VideoFrameFlagsTff+    toEnum 4 = VideoFrameFlagsRff+    toEnum 8 = VideoFrameFlagsOnefield+    toEnum 16 = VideoFrameFlagsMultipleView+    toEnum 32 = VideoFrameFlagsFirstInBundle+    toEnum 10 = VideoFrameFlagsTopField+    toEnum 8 = VideoFrameFlagsBottomField+    toEnum k = AnotherVideoFrameFlags k++instance P.Ord VideoFrameFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_frame_flags_get_type" c_gst_video_frame_flags_get_type :: +    IO GType++instance BoxedFlags VideoFrameFlags where+    boxedFlagsType _ = c_gst_video_frame_flags_get_type++instance IsGFlag VideoFrameFlags++-- Flags VideoFormatFlags+{- |+The different video flags that a format info can have.+-}+data VideoFormatFlags = +      VideoFormatFlagsYuv+    {- ^+    The video format is YUV, components are numbered+      0=Y, 1=U, 2=V.+    -}+    | VideoFormatFlagsRgb+    {- ^+    The video format is RGB, components are numbered+      0=R, 1=G, 2=B.+    -}+    | VideoFormatFlagsGray+    {- ^+    The video is gray, there is one gray component+      with index 0.+    -}+    | VideoFormatFlagsAlpha+    {- ^+    The video format has an alpha components with+      the number 3.+    -}+    | VideoFormatFlagsLe+    {- ^+    The video format has data stored in little+      endianness.+    -}+    | VideoFormatFlagsPalette+    {- ^+    The video format has a palette. The palette+      is stored in the second plane and indexes are stored in the first plane.+    -}+    | VideoFormatFlagsComplex+    {- ^+    The video format has a complex layout that+      can\'t be described with the usual information in the 'GI.GstVideo.Structs.VideoFormatInfo.VideoFormatInfo'.+    -}+    | VideoFormatFlagsUnpack+    {- ^+    This format can be used in a+      'GI.GstVideo.Callbacks.VideoFormatUnpack' and 'GI.GstVideo.Callbacks.VideoFormatPack' function.+    -}+    | VideoFormatFlagsTiled+    {- ^+    The format is tiled, there is tiling information+      in the last plane.+    -}+    | AnotherVideoFormatFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFormatFlags where+    fromEnum VideoFormatFlagsYuv = 1+    fromEnum VideoFormatFlagsRgb = 2+    fromEnum VideoFormatFlagsGray = 4+    fromEnum VideoFormatFlagsAlpha = 8+    fromEnum VideoFormatFlagsLe = 16+    fromEnum VideoFormatFlagsPalette = 32+    fromEnum VideoFormatFlagsComplex = 64+    fromEnum VideoFormatFlagsUnpack = 128+    fromEnum VideoFormatFlagsTiled = 256+    fromEnum (AnotherVideoFormatFlags k) = k++    toEnum 1 = VideoFormatFlagsYuv+    toEnum 2 = VideoFormatFlagsRgb+    toEnum 4 = VideoFormatFlagsGray+    toEnum 8 = VideoFormatFlagsAlpha+    toEnum 16 = VideoFormatFlagsLe+    toEnum 32 = VideoFormatFlagsPalette+    toEnum 64 = VideoFormatFlagsComplex+    toEnum 128 = VideoFormatFlagsUnpack+    toEnum 256 = VideoFormatFlagsTiled+    toEnum k = AnotherVideoFormatFlags k++instance P.Ord VideoFormatFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_format_flags_get_type" c_gst_video_format_flags_get_type :: +    IO GType++instance BoxedFlags VideoFormatFlags where+    boxedFlagsType _ = c_gst_video_format_flags_get_type++instance IsGFlag VideoFormatFlags++-- Flags VideoFlags+{- |+Extra video flags+-}+data VideoFlags = +      VideoFlagsNone+    {- ^+    no flags+    -}+    | VideoFlagsVariableFps+    {- ^+    a variable fps is selected, fps_n and fps_d+        denote the maximum fps of the video+    -}+    | VideoFlagsPremultipliedAlpha+    {- ^+    Each color has been scaled by the alpha+        value.+    -}+    | AnotherVideoFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoFlags where+    fromEnum VideoFlagsNone = 0+    fromEnum VideoFlagsVariableFps = 1+    fromEnum VideoFlagsPremultipliedAlpha = 2+    fromEnum (AnotherVideoFlags k) = k++    toEnum 0 = VideoFlagsNone+    toEnum 1 = VideoFlagsVariableFps+    toEnum 2 = VideoFlagsPremultipliedAlpha+    toEnum k = AnotherVideoFlags k++instance P.Ord VideoFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_flags_get_type" c_gst_video_flags_get_type :: +    IO GType++instance BoxedFlags VideoFlags where+    boxedFlagsType _ = c_gst_video_flags_get_type++instance IsGFlag VideoFlags++-- Flags VideoDitherFlags+{- |+Extra flags that influence the result from @/gst_video_chroma_resample_new()/@.+-}+data VideoDitherFlags = +      VideoDitherFlagsNone+    {- ^+    no flags+    -}+    | VideoDitherFlagsInterlaced+    {- ^+    the input is interlaced+    -}+    | VideoDitherFlagsQuantize+    {- ^+    quantize values in addition to adding dither.+    -}+    | AnotherVideoDitherFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoDitherFlags where+    fromEnum VideoDitherFlagsNone = 0+    fromEnum VideoDitherFlagsInterlaced = 1+    fromEnum VideoDitherFlagsQuantize = 2+    fromEnum (AnotherVideoDitherFlags k) = k++    toEnum 0 = VideoDitherFlagsNone+    toEnum 1 = VideoDitherFlagsInterlaced+    toEnum 2 = VideoDitherFlagsQuantize+    toEnum k = AnotherVideoDitherFlags k++instance P.Ord VideoDitherFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_dither_flags_get_type" c_gst_video_dither_flags_get_type :: +    IO GType++instance BoxedFlags VideoDitherFlags where+    boxedFlagsType _ = c_gst_video_dither_flags_get_type++instance IsGFlag VideoDitherFlags++-- Flags VideoCodecFrameFlags+{- |+Flags for 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+data VideoCodecFrameFlags = +      VideoCodecFrameFlagsDecodeOnly+    {- ^+    is the frame only meant to be decoded+    -}+    | VideoCodecFrameFlagsSyncPoint+    {- ^+    is the frame a synchronization point (keyframe)+    -}+    | VideoCodecFrameFlagsForceKeyframe+    {- ^+    should the output frame be made a keyframe+    -}+    | VideoCodecFrameFlagsForceKeyframeHeaders+    {- ^+    should the encoder output stream headers+    -}+    | AnotherVideoCodecFrameFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoCodecFrameFlags where+    fromEnum VideoCodecFrameFlagsDecodeOnly = 1+    fromEnum VideoCodecFrameFlagsSyncPoint = 2+    fromEnum VideoCodecFrameFlagsForceKeyframe = 4+    fromEnum VideoCodecFrameFlagsForceKeyframeHeaders = 8+    fromEnum (AnotherVideoCodecFrameFlags k) = k++    toEnum 1 = VideoCodecFrameFlagsDecodeOnly+    toEnum 2 = VideoCodecFrameFlagsSyncPoint+    toEnum 4 = VideoCodecFrameFlagsForceKeyframe+    toEnum 8 = VideoCodecFrameFlagsForceKeyframeHeaders+    toEnum k = AnotherVideoCodecFrameFlags k++instance P.Ord VideoCodecFrameFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++instance IsGFlag VideoCodecFrameFlags++-- Flags VideoChromaSite+{- |+Various Chroma sitings.+-}+data VideoChromaSite = +      VideoChromaSiteUnknown+    {- ^+    unknown cositing+    -}+    | VideoChromaSiteNone+    {- ^+    no cositing+    -}+    | VideoChromaSiteHCosited+    {- ^+    chroma is horizontally cosited+    -}+    | VideoChromaSiteVCosited+    {- ^+    chroma is vertically cosited+    -}+    | VideoChromaSiteAltLine+    {- ^+    choma samples are sited on alternate lines+    -}+    | VideoChromaSiteCosited+    {- ^+    chroma samples cosited with luma samples+    -}+    | VideoChromaSiteJpeg+    {- ^+    jpeg style cositing, also for mpeg1 and mjpeg+    -}+    | VideoChromaSiteMpeg2+    {- ^+    mpeg2 style cositing+    -}+    | VideoChromaSiteDv+    {- ^+    DV style cositing+    -}+    | AnotherVideoChromaSite Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoChromaSite where+    fromEnum VideoChromaSiteUnknown = 0+    fromEnum VideoChromaSiteNone = 1+    fromEnum VideoChromaSiteHCosited = 2+    fromEnum VideoChromaSiteVCosited = 4+    fromEnum VideoChromaSiteAltLine = 8+    fromEnum VideoChromaSiteCosited = 6+    fromEnum VideoChromaSiteJpeg = 1+    fromEnum VideoChromaSiteMpeg2 = 2+    fromEnum VideoChromaSiteDv = 14+    fromEnum (AnotherVideoChromaSite k) = k++    toEnum 0 = VideoChromaSiteUnknown+    toEnum 1 = VideoChromaSiteNone+    toEnum 2 = VideoChromaSiteHCosited+    toEnum 4 = VideoChromaSiteVCosited+    toEnum 8 = VideoChromaSiteAltLine+    toEnum 6 = VideoChromaSiteCosited+    toEnum 1 = VideoChromaSiteJpeg+    toEnum 2 = VideoChromaSiteMpeg2+    toEnum 14 = VideoChromaSiteDv+    toEnum k = AnotherVideoChromaSite k++instance P.Ord VideoChromaSite where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_chroma_site_get_type" c_gst_video_chroma_site_get_type :: +    IO GType++instance BoxedFlags VideoChromaSite where+    boxedFlagsType _ = c_gst_video_chroma_site_get_type++instance IsGFlag VideoChromaSite++-- Flags VideoChromaFlags+{- |+Extra flags that influence the result from @/gst_video_chroma_resample_new()/@.+-}+data VideoChromaFlags = +      VideoChromaFlagsNone+    {- ^+    no flags+    -}+    | VideoChromaFlagsInterlaced+    {- ^+    the input is interlaced+    -}+    | AnotherVideoChromaFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoChromaFlags where+    fromEnum VideoChromaFlagsNone = 0+    fromEnum VideoChromaFlagsInterlaced = 1+    fromEnum (AnotherVideoChromaFlags k) = k++    toEnum 0 = VideoChromaFlagsNone+    toEnum 1 = VideoChromaFlagsInterlaced+    toEnum k = AnotherVideoChromaFlags k++instance P.Ord VideoChromaFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_chroma_flags_get_type" c_gst_video_chroma_flags_get_type :: +    IO GType++instance BoxedFlags VideoChromaFlags where+    boxedFlagsType _ = c_gst_video_chroma_flags_get_type++instance IsGFlag VideoChromaFlags++-- Flags VideoBufferFlags+{- |+Additional video buffer flags. These flags can potentially be used on any+buffers carrying video data - even encoded data.++Note that these are only valid for 'GI.Gst.Structs.Caps.Caps' of type: video\/...+They can conflict with other extended buffer flags.+-}+data VideoBufferFlags = +      VideoBufferFlagsInterlaced+    {- ^+    If the 'GI.Gst.Structs.Buffer.Buffer' is interlaced. In mixed+                                        interlace-mode, this flags specifies if the frame is+                                        interlaced or progressive.+    -}+    | VideoBufferFlagsTff+    {- ^+    If the 'GI.Gst.Structs.Buffer.Buffer' is interlaced, then the first field+                                        in the video frame is the top field.  If unset, the+                                        bottom field is first.+    -}+    | VideoBufferFlagsRff+    {- ^+    If the 'GI.Gst.Structs.Buffer.Buffer' is interlaced, then the first field+                                        (as defined by the 'GI.GstVideo.Flags.VideoBufferFlagsTff' flag setting)+                                        is repeated.+    -}+    | VideoBufferFlagsOnefield+    {- ^+    If the 'GI.Gst.Structs.Buffer.Buffer' is interlaced, then only the+                                        first field (as defined by the 'GI.GstVideo.Flags.VideoBufferFlagsTff'+                                        flag setting) is to be displayed (Since: 1.16).+    -}+    | VideoBufferFlagsMultipleView+    {- ^+    The 'GI.Gst.Structs.Buffer.Buffer' contains one or more specific views,+                                        such as left or right eye view. This flags is set on+                                        any buffer that contains non-mono content - even for+                                        streams that contain only a single viewpoint. In mixed+                                        mono \/ non-mono streams, the absense of the flag marks+                                        mono buffers.+    -}+    | VideoBufferFlagsFirstInBundle+    {- ^+    When conveying stereo\/multiview content with+                                        frame-by-frame methods, this flag marks the first buffer+                                         in a bundle of frames that belong together.+    -}+    | VideoBufferFlagsTopField+    {- ^+    The video frame has the top field only. This is the+                                        same as GST_VIDEO_BUFFER_FLAG_TFF |+                                        GST_VIDEO_BUFFER_FLAG_ONEFIELD (Since: 1.16).+    -}+    | VideoBufferFlagsBottomField+    {- ^+    The video frame has the bottom field only. This is+                                        the same as GST_VIDEO_BUFFER_FLAG_ONEFIELD+                                        (GST_VIDEO_BUFFER_FLAG_TFF flag unset) (Since: 1.16).+    -}+    | VideoBufferFlagsLast+    {- ^+    Offset to define more flags+    -}+    | AnotherVideoBufferFlags Int+    -- ^ Catch-all for unknown values+    deriving (Show, Eq)++instance P.Enum VideoBufferFlags where+    fromEnum VideoBufferFlagsInterlaced = 1048576+    fromEnum VideoBufferFlagsTff = 2097152+    fromEnum VideoBufferFlagsRff = 4194304+    fromEnum VideoBufferFlagsOnefield = 8388608+    fromEnum VideoBufferFlagsMultipleView = 16777216+    fromEnum VideoBufferFlagsFirstInBundle = 33554432+    fromEnum VideoBufferFlagsTopField = 10485760+    fromEnum VideoBufferFlagsBottomField = 8388608+    fromEnum VideoBufferFlagsLast = 268435456+    fromEnum (AnotherVideoBufferFlags k) = k++    toEnum 1048576 = VideoBufferFlagsInterlaced+    toEnum 2097152 = VideoBufferFlagsTff+    toEnum 4194304 = VideoBufferFlagsRff+    toEnum 8388608 = VideoBufferFlagsOnefield+    toEnum 16777216 = VideoBufferFlagsMultipleView+    toEnum 33554432 = VideoBufferFlagsFirstInBundle+    toEnum 10485760 = VideoBufferFlagsTopField+    toEnum 8388608 = VideoBufferFlagsBottomField+    toEnum 268435456 = VideoBufferFlagsLast+    toEnum k = AnotherVideoBufferFlags k++instance P.Ord VideoBufferFlags where+    compare a b = P.compare (P.fromEnum a) (P.fromEnum b)++foreign import ccall "gst_video_buffer_flags_get_type" c_gst_video_buffer_flags_get_type :: +    IO GType++instance BoxedFlags VideoBufferFlags where+    boxedFlagsType _ = c_gst_video_buffer_flags_get_type++instance IsGFlag VideoBufferFlags++
+ GI/GstVideo/Flags.hs-boot view
@@ -0,0 +1,82 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Flags 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++data VideoTimeCodeFlags+instance P.Enum VideoTimeCodeFlags where+instance IsGFlag VideoTimeCodeFlags+data VideoScalerFlags+instance P.Enum VideoScalerFlags where+instance BoxedFlags VideoScalerFlags where+instance IsGFlag VideoScalerFlags+data VideoResamplerFlags+instance P.Enum VideoResamplerFlags where+instance BoxedFlags VideoResamplerFlags where+instance IsGFlag VideoResamplerFlags+data VideoPackFlags+instance P.Enum VideoPackFlags where+instance BoxedFlags VideoPackFlags where+instance IsGFlag VideoPackFlags+data VideoOverlayFormatFlags+instance P.Enum VideoOverlayFormatFlags where+instance BoxedFlags VideoOverlayFormatFlags where+instance IsGFlag VideoOverlayFormatFlags+data VideoMultiviewFlags+instance P.Enum VideoMultiviewFlags where+instance BoxedFlags VideoMultiviewFlags where+instance IsGFlag VideoMultiviewFlags+data VideoFrameMapFlags+instance P.Enum VideoFrameMapFlags where+instance BoxedFlags VideoFrameMapFlags where+instance IsGFlag VideoFrameMapFlags+data VideoFrameFlags+instance P.Enum VideoFrameFlags where+instance BoxedFlags VideoFrameFlags where+instance IsGFlag VideoFrameFlags+data VideoFormatFlags+instance P.Enum VideoFormatFlags where+instance BoxedFlags VideoFormatFlags where+instance IsGFlag VideoFormatFlags+data VideoFlags+instance P.Enum VideoFlags where+instance BoxedFlags VideoFlags where+instance IsGFlag VideoFlags+data VideoDitherFlags+instance P.Enum VideoDitherFlags where+instance BoxedFlags VideoDitherFlags where+instance IsGFlag VideoDitherFlags+data VideoCodecFrameFlags+instance P.Enum VideoCodecFrameFlags where+instance IsGFlag VideoCodecFrameFlags+data VideoChromaSite+instance P.Enum VideoChromaSite where+instance BoxedFlags VideoChromaSite where+instance IsGFlag VideoChromaSite+data VideoChromaFlags+instance P.Enum VideoChromaFlags where+instance BoxedFlags VideoChromaFlags where+instance IsGFlag VideoChromaFlags+data VideoBufferFlags+instance P.Enum VideoBufferFlags where+instance BoxedFlags VideoBufferFlags where+instance IsGFlag VideoBufferFlags
+ GI/GstVideo/Functions.hs view
@@ -0,0 +1,2198 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Functions+    ( ++ -- * Methods+-- ** bufferAddVideoAffineTransformationMeta #method:bufferAddVideoAffineTransformationMeta#++    bufferAddVideoAffineTransformationMeta  ,+++-- ** bufferAddVideoCaptionMeta #method:bufferAddVideoCaptionMeta#++    bufferAddVideoCaptionMeta               ,+++-- ** bufferAddVideoGlTextureUploadMeta #method:bufferAddVideoGlTextureUploadMeta#++    bufferAddVideoGlTextureUploadMeta       ,+++-- ** bufferAddVideoMeta #method:bufferAddVideoMeta#++    bufferAddVideoMeta                      ,+++-- ** bufferAddVideoMetaFull #method:bufferAddVideoMetaFull#++    bufferAddVideoMetaFull                  ,+++-- ** bufferAddVideoOverlayCompositionMeta #method:bufferAddVideoOverlayCompositionMeta#++    bufferAddVideoOverlayCompositionMeta    ,+++-- ** bufferAddVideoRegionOfInterestMeta #method:bufferAddVideoRegionOfInterestMeta#++    bufferAddVideoRegionOfInterestMeta      ,+++-- ** bufferAddVideoRegionOfInterestMetaId #method:bufferAddVideoRegionOfInterestMetaId#++    bufferAddVideoRegionOfInterestMetaId    ,+++-- ** bufferAddVideoTimeCodeMeta #method:bufferAddVideoTimeCodeMeta#++    bufferAddVideoTimeCodeMeta              ,+++-- ** bufferAddVideoTimeCodeMetaFull #method:bufferAddVideoTimeCodeMetaFull#++    bufferAddVideoTimeCodeMetaFull          ,+++-- ** bufferGetVideoMeta #method:bufferGetVideoMeta#++    bufferGetVideoMeta                      ,+++-- ** bufferGetVideoMetaId #method:bufferGetVideoMetaId#++    bufferGetVideoMetaId                    ,+++-- ** bufferGetVideoRegionOfInterestMetaId #method:bufferGetVideoRegionOfInterestMetaId#++    bufferGetVideoRegionOfInterestMetaId    ,+++-- ** bufferPoolConfigGetVideoAlignment #method:bufferPoolConfigGetVideoAlignment#++    bufferPoolConfigGetVideoAlignment       ,+++-- ** bufferPoolConfigSetVideoAlignment #method:bufferPoolConfigSetVideoAlignment#++    bufferPoolConfigSetVideoAlignment       ,+++-- ** isVideoOverlayPrepareWindowHandleMessage #method:isVideoOverlayPrepareWindowHandleMessage#++    isVideoOverlayPrepareWindowHandleMessage,+++-- ** videoAffineTransformationMetaApiGetType #method:videoAffineTransformationMetaApiGetType#++    videoAffineTransformationMetaApiGetType ,+++-- ** videoBlend #method:videoBlend#++    videoBlend                              ,+++-- ** videoBlendScaleLinearRGBA #method:videoBlendScaleLinearRGBA#++    videoBlendScaleLinearRGBA               ,+++-- ** videoCalculateDisplayRatio #method:videoCalculateDisplayRatio#++    videoCalculateDisplayRatio              ,+++-- ** videoCaptionMetaApiGetType #method:videoCaptionMetaApiGetType#++    videoCaptionMetaApiGetType              ,+++-- ** videoChromaFromString #method:videoChromaFromString#++    videoChromaFromString                   ,+++-- ** videoChromaResample #method:videoChromaResample#++    videoChromaResample                     ,+++-- ** videoChromaToString #method:videoChromaToString#++    videoChromaToString                     ,+++-- ** videoColorTransferDecode #method:videoColorTransferDecode#++    videoColorTransferDecode                ,+++-- ** videoColorTransferEncode #method:videoColorTransferEncode#++    videoColorTransferEncode                ,+++-- ** videoConvertSample #method:videoConvertSample#++    videoConvertSample                      ,+++-- ** videoConvertSampleAsync #method:videoConvertSampleAsync#++    videoConvertSampleAsync                 ,+++-- ** videoCropMetaApiGetType #method:videoCropMetaApiGetType#++    videoCropMetaApiGetType                 ,+++-- ** videoEventIsForceKeyUnit #method:videoEventIsForceKeyUnit#++    videoEventIsForceKeyUnit                ,+++-- ** videoEventNewDownstreamForceKeyUnit #method:videoEventNewDownstreamForceKeyUnit#++    videoEventNewDownstreamForceKeyUnit     ,+++-- ** videoEventNewStillFrame #method:videoEventNewStillFrame#++    videoEventNewStillFrame                 ,+++-- ** videoEventNewUpstreamForceKeyUnit #method:videoEventNewUpstreamForceKeyUnit#++    videoEventNewUpstreamForceKeyUnit       ,+++-- ** videoEventParseDownstreamForceKeyUnit #method:videoEventParseDownstreamForceKeyUnit#++    videoEventParseDownstreamForceKeyUnit   ,+++-- ** videoEventParseStillFrame #method:videoEventParseStillFrame#++    videoEventParseStillFrame               ,+++-- ** videoEventParseUpstreamForceKeyUnit #method:videoEventParseUpstreamForceKeyUnit#++    videoEventParseUpstreamForceKeyUnit     ,+++-- ** videoGlTextureUploadMetaApiGetType #method:videoGlTextureUploadMetaApiGetType#++    videoGlTextureUploadMetaApiGetType      ,+++-- ** videoGuessFramerate #method:videoGuessFramerate#++    videoGuessFramerate                     ,+++-- ** videoMetaApiGetType #method:videoMetaApiGetType#++    videoMetaApiGetType                     ,+++-- ** videoMultiviewGetDoubledHeightModes #method:videoMultiviewGetDoubledHeightModes#++    videoMultiviewGetDoubledHeightModes     ,+++-- ** videoMultiviewGetDoubledSizeModes #method:videoMultiviewGetDoubledSizeModes#++    videoMultiviewGetDoubledSizeModes       ,+++-- ** videoMultiviewGetDoubledWidthModes #method:videoMultiviewGetDoubledWidthModes#++    videoMultiviewGetDoubledWidthModes      ,+++-- ** videoMultiviewGetMonoModes #method:videoMultiviewGetMonoModes#++    videoMultiviewGetMonoModes              ,+++-- ** videoMultiviewGetUnpackedModes #method:videoMultiviewGetUnpackedModes#++    videoMultiviewGetUnpackedModes          ,+++-- ** videoMultiviewGuessHalfAspect #method:videoMultiviewGuessHalfAspect#++    videoMultiviewGuessHalfAspect           ,+++-- ** videoMultiviewVideoInfoChangeMode #method:videoMultiviewVideoInfoChangeMode#++    videoMultiviewVideoInfoChangeMode       ,+++-- ** videoOverlayCompositionMetaApiGetType #method:videoOverlayCompositionMetaApiGetType#++    videoOverlayCompositionMetaApiGetType   ,+++-- ** videoRegionOfInterestMetaApiGetType #method:videoRegionOfInterestMetaApiGetType#++    videoRegionOfInterestMetaApiGetType     ,+++-- ** videoTileGetIndex #method:videoTileGetIndex#++    videoTileGetIndex                       ,+++-- ** videoTimeCodeMetaApiGetType #method:videoTimeCodeMetaApiGetType#++    videoTimeCodeMetaApiGetType             ,+++++    ) 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.GLib.Callbacks as GLib.Callbacks+import qualified GI.GLib.Structs.DateTime as GLib.DateTime+import qualified GI.GObject.Callbacks as GObject.Callbacks+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.Gst.Structs.Caps as Gst.Caps+import qualified GI.Gst.Structs.Event as Gst.Event+import qualified GI.Gst.Structs.Message as Gst.Message+import qualified GI.Gst.Structs.Sample as Gst.Sample+import qualified GI.Gst.Structs.Structure as Gst.Structure+import qualified GI.GstVideo.Callbacks as GstVideo.Callbacks+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoAffineTransformationMeta as GstVideo.VideoAffineTransformationMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoAlignment as GstVideo.VideoAlignment+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoCaptionMeta as GstVideo.VideoCaptionMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoChromaResample as GstVideo.VideoChromaResample+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoGLTextureUploadMeta as GstVideo.VideoGLTextureUploadMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoInfo as GstVideo.VideoInfo+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoMeta as GstVideo.VideoMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoOverlayComposition as GstVideo.VideoOverlayComposition+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoOverlayCompositionMeta as GstVideo.VideoOverlayCompositionMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoRegionOfInterestMeta as GstVideo.VideoRegionOfInterestMeta+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCode as GstVideo.VideoTimeCode+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCodeMeta as GstVideo.VideoTimeCodeMeta++-- function gst_video_time_code_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_meta_api_get_type" gst_video_time_code_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoTimeCodeMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoTimeCodeMetaApiGetType  = liftIO $ do+    result <- gst_video_time_code_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_tile_get_index+-- Args : [Arg {argCName = "mode", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTileMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTileMode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_tiles", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of horizintal tiles", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y_tiles", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of vertical tiles", 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_video_tile_get_index" gst_video_tile_get_index :: +    CUInt ->                                -- mode : TInterface (Name {namespace = "GstVideo", name = "VideoTileMode"})+    Int32 ->                                -- x : TBasicType TInt+    Int32 ->                                -- y : TBasicType TInt+    Int32 ->                                -- x_tiles : TBasicType TInt+    Int32 ->                                -- y_tiles : TBasicType TInt+    IO Word32++{- |+Get the tile index of the tile at coordinates /@x@/ and /@y@/ in the tiled+image of /@xTiles@/ by /@yTiles@/.++Use this method when /@mode@/ is of type 'GI.GstVideo.Enums.VideoTileTypeIndexed'.++/Since: 1.4/+-}+videoTileGetIndex ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoTileMode+    {- ^ /@mode@/: a 'GI.GstVideo.Enums.VideoTileMode' -}+    -> Int32+    {- ^ /@x@/: x coordinate -}+    -> Int32+    {- ^ /@y@/: y coordinate -}+    -> Int32+    {- ^ /@xTiles@/: number of horizintal tiles -}+    -> Int32+    {- ^ /@yTiles@/: number of vertical tiles -}+    -> m Word32+    {- ^ __Returns:__ the index of the tile at /@x@/ and /@y@/ in the tiled image of+  /@xTiles@/ by /@yTiles@/. -}+videoTileGetIndex mode x y xTiles yTiles = liftIO $ do+    let mode' = (fromIntegral . fromEnum) mode+    result <- gst_video_tile_get_index mode' x y xTiles yTiles+    return result+++-- function gst_video_region_of_interest_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_region_of_interest_meta_api_get_type" gst_video_region_of_interest_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoRegionOfInterestMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoRegionOfInterestMetaApiGetType  = liftIO $ do+    result <- gst_video_region_of_interest_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_overlay_composition_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_meta_api_get_type" gst_video_overlay_composition_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoOverlayCompositionMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoOverlayCompositionMetaApiGetType  = liftIO $ do+    result <- gst_video_overlay_composition_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_multiview_video_info_change_mode+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstVideoInfo structure to operate on", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_mview_mode", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstVideoMultiviewMode value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_mview_flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A set of #GstVideoMultiviewFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_video_info_change_mode" gst_video_multiview_video_info_change_mode :: +    Ptr GstVideo.VideoInfo.VideoInfo ->     -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    CInt ->                                 -- out_mview_mode : TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewMode"})+    CUInt ->                                -- out_mview_flags : TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewFlags"})+    IO ()++{- |+Utility function that transforms the width\/height\/PAR+and multiview mode and flags of a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' into+the requested mode.++/Since: 1.6/+-}+videoMultiviewVideoInfoChangeMode ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoInfo.VideoInfo+    {- ^ /@info@/: A 'GI.GstVideo.Structs.VideoInfo.VideoInfo' structure to operate on -}+    -> GstVideo.Enums.VideoMultiviewMode+    {- ^ /@outMviewMode@/: A 'GI.GstVideo.Enums.VideoMultiviewMode' value -}+    -> [GstVideo.Flags.VideoMultiviewFlags]+    {- ^ /@outMviewFlags@/: A set of 'GI.GstVideo.Flags.VideoMultiviewFlags' -}+    -> m ()+videoMultiviewVideoInfoChangeMode info outMviewMode outMviewFlags = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let outMviewMode' = (fromIntegral . fromEnum) outMviewMode+    let outMviewFlags' = gflagsToWord outMviewFlags+    gst_video_multiview_video_info_change_mode info' outMviewMode' outMviewFlags'+    touchManagedPtr info+    return ()+++-- function gst_video_multiview_guess_half_aspect+-- Args : [Arg {argCName = "mv_mode", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstVideoMultiviewMode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Video frame width in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Video frame height in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "par_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the video pixel-aspect-ratio", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "par_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the video pixel-aspect-ratio", 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_video_multiview_guess_half_aspect" gst_video_multiview_guess_half_aspect :: +    CInt ->                                 -- mv_mode : TInterface (Name {namespace = "GstVideo", name = "VideoMultiviewMode"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    Word32 ->                               -- par_n : TBasicType TUInt+    Word32 ->                               -- par_d : TBasicType TUInt+    IO CInt++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGuessHalfAspect ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoMultiviewMode+    {- ^ /@mvMode@/: A 'GI.GstVideo.Enums.VideoMultiviewMode' -}+    -> Word32+    {- ^ /@width@/: Video frame width in pixels -}+    -> Word32+    {- ^ /@height@/: Video frame height in pixels -}+    -> Word32+    {- ^ /@parN@/: Numerator of the video pixel-aspect-ratio -}+    -> Word32+    {- ^ /@parD@/: Denominator of the video pixel-aspect-ratio -}+    -> m Bool+    {- ^ __Returns:__ A boolean indicating whether the+  @/GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT/@ flag should be set.++Utility function that heuristically guess whether a+frame-packed stereoscopic video contains half width\/height+encoded views, or full-frame views by looking at the+overall display aspect ratio. -}+videoMultiviewGuessHalfAspect mvMode width height parN parD = liftIO $ do+    let mvMode' = (fromIntegral . fromEnum) mvMode+    result <- gst_video_multiview_guess_half_aspect mvMode' width height parN parD+    let result' = (/= 0) result+    return result'+++-- function gst_video_multiview_get_unpacked_modes+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_get_unpacked_modes" gst_video_multiview_get_unpacked_modes :: +    IO (Ptr GValue)++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGetUnpackedModes ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GValue+    {- ^ __Returns:__ A const 'GI.GObject.Structs.Value.Value' containing a list of \'unpacked\' stereo video modes++Utility function that returns a 'GI.GObject.Structs.Value.Value' with a GstList of unpacked+stereo video modes (separated\/frame-by-frame\/frame-by-frame-multiview)+for use in caps negotiations. -}+videoMultiviewGetUnpackedModes  = liftIO $ do+    result <- gst_video_multiview_get_unpacked_modes+    checkUnexpectedReturnNULL "videoMultiviewGetUnpackedModes" result+    result' <- (newBoxed GValue) result+    return result'+++-- function gst_video_multiview_get_mono_modes+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_get_mono_modes" gst_video_multiview_get_mono_modes :: +    IO (Ptr GValue)++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGetMonoModes ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GValue+    {- ^ __Returns:__ A const 'GI.GObject.Structs.Value.Value' containing a list of mono video modes++Utility function that returns a 'GI.GObject.Structs.Value.Value' with a GstList of mono video+modes (mono\/left\/right) for use in caps negotiations. -}+videoMultiviewGetMonoModes  = liftIO $ do+    result <- gst_video_multiview_get_mono_modes+    checkUnexpectedReturnNULL "videoMultiviewGetMonoModes" result+    result' <- (newBoxed GValue) result+    return result'+++-- function gst_video_multiview_get_doubled_width_modes+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_get_doubled_width_modes" gst_video_multiview_get_doubled_width_modes :: +    IO (Ptr GValue)++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGetDoubledWidthModes ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GValue+    {- ^ __Returns:__ A const 'GI.GObject.Structs.Value.Value' containing a list of stereo video modes++Utility function that returns a 'GI.GObject.Structs.Value.Value' with a GstList of packed stereo+video modes with double the width of a single view for use in+caps negotiations. Currently this is side-by-side, side-by-side-quincunx+and column-interleaved. -}+videoMultiviewGetDoubledWidthModes  = liftIO $ do+    result <- gst_video_multiview_get_doubled_width_modes+    checkUnexpectedReturnNULL "videoMultiviewGetDoubledWidthModes" result+    result' <- (newBoxed GValue) result+    return result'+++-- function gst_video_multiview_get_doubled_size_modes+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_get_doubled_size_modes" gst_video_multiview_get_doubled_size_modes :: +    IO (Ptr GValue)++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGetDoubledSizeModes ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GValue+    {- ^ __Returns:__ A const 'GI.GObject.Structs.Value.Value' containing a list of stereo video modes++Utility function that returns a 'GI.GObject.Structs.Value.Value' with a GstList of packed+stereo video modes that have double the width\/height of a single+view for use in caps negotiation. Currently this is just+\'checkerboard\' layout. -}+videoMultiviewGetDoubledSizeModes  = liftIO $ do+    result <- gst_video_multiview_get_doubled_size_modes+    checkUnexpectedReturnNULL "videoMultiviewGetDoubledSizeModes" result+    result' <- (newBoxed GValue) result+    return result'+++-- function gst_video_multiview_get_doubled_height_modes+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GObject", name = "Value"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_multiview_get_doubled_height_modes" gst_video_multiview_get_doubled_height_modes :: +    IO (Ptr GValue)++{- |+/No description available in the introspection data./++/Since: 1.6/+-}+videoMultiviewGetDoubledHeightModes ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GValue+    {- ^ __Returns:__ A const 'GI.GObject.Structs.Value.Value' containing a list of stereo video modes++Utility function that returns a 'GI.GObject.Structs.Value.Value' with a GstList of packed stereo+video modes with double the height of a single view for use in+caps negotiations. Currently this is top-bottom and row-interleaved. -}+videoMultiviewGetDoubledHeightModes  = liftIO $ do+    result <- gst_video_multiview_get_doubled_height_modes+    checkUnexpectedReturnNULL "videoMultiviewGetDoubledHeightModes" result+    result' <- (newBoxed GValue) result+    return result'+++-- function gst_video_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_meta_api_get_type" gst_video_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoMetaApiGetType  = liftIO $ do+    result <- gst_video_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_guess_framerate+-- Args : [Arg {argCName = "duration", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Nominal duration of one frame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_n", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the calculated framerate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "dest_d", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the calculated framerate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_guess_framerate" gst_video_guess_framerate :: +    Word64 ->                               -- duration : TBasicType TUInt64+    Ptr Int32 ->                            -- dest_n : TBasicType TInt+    Ptr Int32 ->                            -- dest_d : TBasicType TInt+    IO CInt++{- |+Given the nominal duration of one video frame,+this function will check some standard framerates for+a close match (within 0.1%) and return one if possible,++It will calculate an arbitrary framerate if no close+match was found, and return 'False'.++It returns 'False' if a duration of 0 is passed.++/Since: 1.6/+-}+videoGuessFramerate ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word64+    {- ^ /@duration@/: Nominal duration of one frame -}+    -> m ((Bool, Int32, Int32))+    {- ^ __Returns:__ 'True' if a close \"standard\" framerate was+recognised, and 'False' otherwise. -}+videoGuessFramerate duration = liftIO $ do+    destN <- allocMem :: IO (Ptr Int32)+    destD <- allocMem :: IO (Ptr Int32)+    result <- gst_video_guess_framerate duration destN destD+    let result' = (/= 0) result+    destN' <- peek destN+    destD' <- peek destD+    freeMem destN+    freeMem destD+    return (result', destN', destD')+++-- function gst_video_gl_texture_upload_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_gl_texture_upload_meta_api_get_type" gst_video_gl_texture_upload_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoGlTextureUploadMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoGlTextureUploadMetaApiGetType  = liftIO $ do+    result <- gst_video_gl_texture_upload_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_event_parse_upstream_force_key_unit+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to parse", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the running_time in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the all_headers flag in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the count field in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_parse_upstream_force_key_unit" gst_video_event_parse_upstream_force_key_unit :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr Word64 ->                           -- running_time : TBasicType TUInt64+    Ptr CInt ->                             -- all_headers : TBasicType TBoolean+    Ptr Word32 ->                           -- count : TBasicType TUInt+    IO CInt++{- |+Get running-time, all-headers and count in the force key unit event. See+'GI.GstVideo.Functions.videoEventNewUpstreamForceKeyUnit' for a full description of the+upstream force key unit event.++Create an upstream force key unit event using  'GI.GstVideo.Functions.videoEventNewUpstreamForceKeyUnit'++/@runningTime@/ will be adjusted for any pad offsets of pads it was passing through.+-}+videoEventParseUpstreamForceKeyUnit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to parse -}+    -> m ((Bool, Word64, Bool, Word32))+    {- ^ __Returns:__ 'True' if the event is a valid upstream force-key-unit event. 'False' if not -}+videoEventParseUpstreamForceKeyUnit event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    runningTime <- allocMem :: IO (Ptr Word64)+    allHeaders <- allocMem :: IO (Ptr CInt)+    count <- allocMem :: IO (Ptr Word32)+    result <- gst_video_event_parse_upstream_force_key_unit event' runningTime allHeaders count+    let result' = (/= 0) result+    runningTime' <- peek runningTime+    allHeaders' <- peek allHeaders+    let allHeaders'' = (/= 0) allHeaders'+    count' <- peek count+    touchManagedPtr event+    freeMem runningTime+    freeMem allHeaders+    freeMem count+    return (result', runningTime', allHeaders'', count')+++-- function gst_video_event_parse_still_frame+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to parse", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in_still", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "\n    A boolean to receive the still-frame status from the event, or NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_parse_still_frame" gst_video_event_parse_still_frame :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr CInt ->                             -- in_still : TBasicType TBoolean+    IO CInt++{- |+Parse a 'GI.Gst.Structs.Event.Event', identify if it is a Still Frame event, and+return the still-frame state from the event if it is.+If the event represents the start of a still frame, the in_still+variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the+in_still variable order to just check whether the event is a valid still-frame+event.++Create a still frame event using 'GI.GstVideo.Functions.videoEventNewStillFrame'+-}+videoEventParseStillFrame ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to parse -}+    -> m ((Bool, Bool))+    {- ^ __Returns:__ 'True' if the event is a valid still-frame event. 'False' if not -}+videoEventParseStillFrame event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    inStill <- allocMem :: IO (Ptr CInt)+    result <- gst_video_event_parse_still_frame event' inStill+    let result' = (/= 0) result+    inStill' <- peek inStill+    let inStill'' = (/= 0) inStill'+    touchManagedPtr event+    freeMem inStill+    return (result', inStill'')+++-- function gst_video_event_parse_downstream_force_key_unit+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to parse", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the timestamp in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stream_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the stream-time in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the running-time in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the all_headers flag in the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to the count field of the event", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_parse_downstream_force_key_unit" gst_video_event_parse_downstream_force_key_unit :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr Word64 ->                           -- timestamp : TBasicType TUInt64+    Ptr Word64 ->                           -- stream_time : TBasicType TUInt64+    Ptr Word64 ->                           -- running_time : TBasicType TUInt64+    Ptr CInt ->                             -- all_headers : TBasicType TBoolean+    Ptr Word32 ->                           -- count : TBasicType TUInt+    IO CInt++{- |+Get timestamp, stream-time, running-time, all-headers and count in the force+key unit event. See 'GI.GstVideo.Functions.videoEventNewDownstreamForceKeyUnit' for a+full description of the downstream force key unit event.++/@runningTime@/ will be adjusted for any pad offsets of pads it was passing through.+-}+videoEventParseDownstreamForceKeyUnit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to parse -}+    -> m ((Bool, Word64, Word64, Word64, Bool, Word32))+    {- ^ __Returns:__ 'True' if the event is a valid downstream force key unit event. -}+videoEventParseDownstreamForceKeyUnit event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    timestamp <- allocMem :: IO (Ptr Word64)+    streamTime <- allocMem :: IO (Ptr Word64)+    runningTime <- allocMem :: IO (Ptr Word64)+    allHeaders <- allocMem :: IO (Ptr CInt)+    count <- allocMem :: IO (Ptr Word32)+    result <- gst_video_event_parse_downstream_force_key_unit event' timestamp streamTime runningTime allHeaders count+    let result' = (/= 0) result+    timestamp' <- peek timestamp+    streamTime' <- peek streamTime+    runningTime' <- peek runningTime+    allHeaders' <- peek allHeaders+    let allHeaders'' = (/= 0) allHeaders'+    count' <- peek count+    touchManagedPtr event+    freeMem timestamp+    freeMem streamTime+    freeMem runningTime+    freeMem allHeaders+    freeMem count+    return (result', timestamp', streamTime', runningTime', allHeaders'', count')+++-- function gst_video_event_new_upstream_force_key_unit+-- Args : [Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the running_time at which a new key unit should be produced", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE to produce headers when starting a new key unit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "integer that can be used to number key units", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Event"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_new_upstream_force_key_unit" gst_video_event_new_upstream_force_key_unit :: +    Word64 ->                               -- running_time : TBasicType TUInt64+    CInt ->                                 -- all_headers : TBasicType TBoolean+    Word32 ->                               -- count : TBasicType TUInt+    IO (Ptr Gst.Event.Event)++{- |+Creates a new upstream force key unit event. An upstream force key unit event+can be sent to request upstream elements to produce a key unit.++/@runningTime@/ can be set to request a new key unit at a specific+running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a+new key unit as soon as possible.++To parse an event created by 'GI.GstVideo.Functions.videoEventNewDownstreamForceKeyUnit' use+'GI.GstVideo.Functions.videoEventParseDownstreamForceKeyUnit'.+-}+videoEventNewUpstreamForceKeyUnit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word64+    {- ^ /@runningTime@/: the running_time at which a new key unit should be produced -}+    -> Bool+    {- ^ /@allHeaders@/: 'True' to produce headers when starting a new key unit -}+    -> Word32+    {- ^ /@count@/: integer that can be used to number key units -}+    -> m Gst.Event.Event+    {- ^ __Returns:__ The new GstEvent -}+videoEventNewUpstreamForceKeyUnit runningTime allHeaders count = liftIO $ do+    let allHeaders' = (fromIntegral . fromEnum) allHeaders+    result <- gst_video_event_new_upstream_force_key_unit runningTime allHeaders' count+    checkUnexpectedReturnNULL "videoEventNewUpstreamForceKeyUnit" result+    result' <- (wrapBoxed Gst.Event.Event) result+    return result'+++-- function gst_video_event_new_still_frame+-- Args : [Arg {argCName = "in_still", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "boolean value for the still-frame state of the event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Event"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_new_still_frame" gst_video_event_new_still_frame :: +    CInt ->                                 -- in_still : TBasicType TBoolean+    IO (Ptr Gst.Event.Event)++{- |+Creates a new Still Frame event. If /@inStill@/ is 'True', then the event+represents the start of a still frame sequence. If it is 'False', then+the event ends a still frame sequence.++To parse an event created by 'GI.GstVideo.Functions.videoEventNewStillFrame' use+'GI.GstVideo.Functions.videoEventParseStillFrame'.+-}+videoEventNewStillFrame ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Bool+    {- ^ /@inStill@/: boolean value for the still-frame state of the event. -}+    -> m Gst.Event.Event+    {- ^ __Returns:__ The new GstEvent -}+videoEventNewStillFrame inStill = liftIO $ do+    let inStill' = (fromIntegral . fromEnum) inStill+    result <- gst_video_event_new_still_frame inStill'+    checkUnexpectedReturnNULL "videoEventNewStillFrame" result+    result' <- (wrapBoxed Gst.Event.Event) result+    return result'+++-- function gst_video_event_new_downstream_force_key_unit+-- Args : [Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the timestamp of the buffer that starts a new key unit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stream_time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the stream_time of the buffer that starts a new key unit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the running_time of the buffer that starts a new key unit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE to produce headers when starting a new key unit", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "integer that can be used to number key units", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Event"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_event_new_downstream_force_key_unit" gst_video_event_new_downstream_force_key_unit :: +    Word64 ->                               -- timestamp : TBasicType TUInt64+    Word64 ->                               -- stream_time : TBasicType TUInt64+    Word64 ->                               -- running_time : TBasicType TUInt64+    CInt ->                                 -- all_headers : TBasicType TBoolean+    Word32 ->                               -- count : TBasicType TUInt+    IO (Ptr Gst.Event.Event)++{- |+Creates a new downstream force key unit event. A downstream force key unit+event can be sent down the pipeline to request downstream elements to produce+a key unit. A downstream force key unit event must also be sent when handling+an upstream force key unit event to notify downstream that the latter has been+handled.++To parse an event created by 'GI.GstVideo.Functions.videoEventNewDownstreamForceKeyUnit' use+'GI.GstVideo.Functions.videoEventParseDownstreamForceKeyUnit'.+-}+videoEventNewDownstreamForceKeyUnit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word64+    {- ^ /@timestamp@/: the timestamp of the buffer that starts a new key unit -}+    -> Word64+    {- ^ /@streamTime@/: the stream_time of the buffer that starts a new key unit -}+    -> Word64+    {- ^ /@runningTime@/: the running_time of the buffer that starts a new key unit -}+    -> Bool+    {- ^ /@allHeaders@/: 'True' to produce headers when starting a new key unit -}+    -> Word32+    {- ^ /@count@/: integer that can be used to number key units -}+    -> m Gst.Event.Event+    {- ^ __Returns:__ The new GstEvent -}+videoEventNewDownstreamForceKeyUnit timestamp streamTime runningTime allHeaders count = liftIO $ do+    let allHeaders' = (fromIntegral . fromEnum) allHeaders+    result <- gst_video_event_new_downstream_force_key_unit timestamp streamTime runningTime allHeaders' count+    checkUnexpectedReturnNULL "videoEventNewDownstreamForceKeyUnit" result+    result' <- (wrapBoxed Gst.Event.Event) result+    return result'+++-- function gst_video_event_is_force_key_unit+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to check", 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_video_event_is_force_key_unit" gst_video_event_is_force_key_unit :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    IO CInt++{- |+Checks if an event is a force key unit event. Returns true for both upstream+and downstream force key unit events.+-}+videoEventIsForceKeyUnit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to check -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the event is a valid force key unit event -}+videoEventIsForceKeyUnit event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    result <- gst_video_event_is_force_key_unit event'+    let result' = (/= 0) result+    touchManagedPtr event+    return result'+++-- function gst_video_crop_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_crop_meta_api_get_type" gst_video_crop_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoCropMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoCropMetaApiGetType  = liftIO $ do+    result <- gst_video_crop_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_convert_sample_async+-- Args : [Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstSample", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstCaps to convert to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the maximum amount of time allowed for the processing.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "GstVideo", name = "VideoConvertSampleCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%GstVideoConvertSampleCallback that will be called after conversion.", sinceVersion = Nothing}, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "extra data that will be passed to the @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%GDestroyNotify to be called after @user_data is not needed anymore", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_convert_sample_async" gst_video_convert_sample_async :: +    Ptr Gst.Sample.Sample ->                -- sample : TInterface (Name {namespace = "Gst", name = "Sample"})+    Ptr Gst.Caps.Caps ->                    -- to_caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    Word64 ->                               -- timeout : TBasicType TUInt64+    FunPtr GstVideo.Callbacks.C_VideoConvertSampleCallback -> -- callback : TInterface (Name {namespace = "GstVideo", name = "VideoConvertSampleCallback"})+    Ptr () ->                               -- user_data : TBasicType TPtr+    FunPtr GLib.Callbacks.C_DestroyNotify -> -- destroy_notify : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})+    IO ()++{- |+Converts a raw video buffer into the specified output caps.++The output caps can be any raw video formats or any image formats (jpeg, png, ...).++The width, height and pixel-aspect-ratio can also be specified in the output caps.++/@callback@/ will be called after conversion, when an error occured or if conversion didn\'t+finish after /@timeout@/. /@callback@/ will always be called from the thread default+@/GMainContext/@, see 'GI.GLib.Functions.mainContextGetThreadDefault'. If GLib before 2.22 is used,+this will always be the global default main context.++/@destroyNotify@/ will be called after the callback was called and /@userData@/ is not needed+anymore.+-}+videoConvertSampleAsync ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Sample.Sample+    {- ^ /@sample@/: a 'GI.Gst.Structs.Sample.Sample' -}+    -> Gst.Caps.Caps+    {- ^ /@toCaps@/: the 'GI.Gst.Structs.Caps.Caps' to convert to -}+    -> Word64+    {- ^ /@timeout@/: the maximum amount of time allowed for the processing. -}+    -> GstVideo.Callbacks.VideoConvertSampleCallback+    {- ^ /@callback@/: @/GstVideoConvertSampleCallback/@ that will be called after conversion. -}+    -> m ()+videoConvertSampleAsync sample toCaps timeout callback = liftIO $ do+    sample' <- unsafeManagedPtrGetPtr sample+    toCaps' <- unsafeManagedPtrGetPtr toCaps+    callback' <- GstVideo.Callbacks.mk_VideoConvertSampleCallback (GstVideo.Callbacks.wrap_VideoConvertSampleCallback Nothing (GstVideo.Callbacks.drop_closures_VideoConvertSampleCallback callback))+    let userData = castFunPtrToPtr callback'+    let destroyNotify = safeFreeFunPtrPtr+    gst_video_convert_sample_async sample' toCaps' timeout callback' userData destroyNotify+    touchManagedPtr sample+    touchManagedPtr toCaps+    return ()+++-- function gst_video_convert_sample+-- Args : [Arg {argCName = "sample", argType = TInterface (Name {namespace = "Gst", name = "Sample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstSample", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstCaps to convert to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the maximum amount of time allowed for the processing.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Sample"}))+-- throws : True+-- Skip return : False++foreign import ccall "gst_video_convert_sample" gst_video_convert_sample :: +    Ptr Gst.Sample.Sample ->                -- sample : TInterface (Name {namespace = "Gst", name = "Sample"})+    Ptr Gst.Caps.Caps ->                    -- to_caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    Word64 ->                               -- timeout : TBasicType TUInt64+    Ptr (Ptr GError) ->                     -- error+    IO (Ptr Gst.Sample.Sample)++{- |+Converts a raw video buffer into the specified output caps.++The output caps can be any raw video formats or any image formats (jpeg, png, ...).++The width, height and pixel-aspect-ratio can also be specified in the output caps.+-}+videoConvertSample ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Sample.Sample+    {- ^ /@sample@/: a 'GI.Gst.Structs.Sample.Sample' -}+    -> Gst.Caps.Caps+    {- ^ /@toCaps@/: the 'GI.Gst.Structs.Caps.Caps' to convert to -}+    -> Word64+    {- ^ /@timeout@/: the maximum amount of time allowed for the processing. -}+    -> m Gst.Sample.Sample+    {- ^ __Returns:__ The converted 'GI.Gst.Structs.Sample.Sample', or 'Nothing' if an error happened (in which case /@err@/+will point to the 'GError'). /(Can throw 'Data.GI.Base.GError.GError')/ -}+videoConvertSample sample toCaps timeout = liftIO $ do+    sample' <- unsafeManagedPtrGetPtr sample+    toCaps' <- unsafeManagedPtrGetPtr toCaps+    onException (do+        result <- propagateGError $ gst_video_convert_sample sample' toCaps' timeout+        checkUnexpectedReturnNULL "videoConvertSample" result+        result' <- (wrapBoxed Gst.Sample.Sample) result+        touchManagedPtr sample+        touchManagedPtr toCaps+        return result'+     ) (do+        return ()+     )+++-- function gst_video_color_transfer_encode+-- Args : [Arg {argCName = "func", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTransferFunction"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTransferFunction", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TDouble)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_color_transfer_encode" gst_video_color_transfer_encode :: +    CUInt ->                                -- func : TInterface (Name {namespace = "GstVideo", name = "VideoTransferFunction"})+    CDouble ->                              -- val : TBasicType TDouble+    IO CDouble++{- |+Convert /@val@/ to its gamma encoded value.++For a linear value L in the range [0..1], conversion to the non-linear+(gamma encoded) L\' is in general performed with a power function like:++>+>   L' = L ^ (1 / gamma)+++Depending on /@func@/, different formulas might be applied. Some formulas+encode a linear segment in the lower range.++/Since: 1.6/+-}+videoColorTransferEncode ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoTransferFunction+    {- ^ /@func@/: a 'GI.GstVideo.Enums.VideoTransferFunction' -}+    -> Double+    {- ^ /@val@/: a value -}+    -> m Double+    {- ^ __Returns:__ the gamme encoded value of /@val@/ -}+videoColorTransferEncode func val = liftIO $ do+    let func' = (fromIntegral . fromEnum) func+    let val' = realToFrac val+    result <- gst_video_color_transfer_encode func' val'+    let result' = realToFrac result+    return result'+++-- function gst_video_color_transfer_decode+-- Args : [Arg {argCName = "func", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTransferFunction"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTransferFunction", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TDouble)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_color_transfer_decode" gst_video_color_transfer_decode :: +    CUInt ->                                -- func : TInterface (Name {namespace = "GstVideo", name = "VideoTransferFunction"})+    CDouble ->                              -- val : TBasicType TDouble+    IO CDouble++{- |+Convert /@val@/ to its gamma decoded value. This is the inverse operation of+/@gstVideoColorTransferEncode@/().++For a non-linear value L\' in the range [0..1], conversion to the linear+L is in general performed with a power function like:++>+>   L = L' ^ gamma+++Depending on /@func@/, different formulas might be applied. Some formulas+encode a linear segment in the lower range.++/Since: 1.6/+-}+videoColorTransferDecode ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoTransferFunction+    {- ^ /@func@/: a 'GI.GstVideo.Enums.VideoTransferFunction' -}+    -> Double+    {- ^ /@val@/: a value -}+    -> m Double+    {- ^ __Returns:__ the gamme decoded value of /@val@/ -}+videoColorTransferDecode func val = liftIO $ do+    let func' = (fromIntegral . fromEnum) func+    let val' = realToFrac val+    result <- gst_video_color_transfer_decode func' val'+    let result' = realToFrac result+    return result'+++-- function gst_video_chroma_to_string+-- Args : [Arg {argCName = "site", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaSite"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoChromaSite", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUTF8)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_chroma_to_string" gst_video_chroma_to_string :: +    CUInt ->                                -- site : TInterface (Name {namespace = "GstVideo", name = "VideoChromaSite"})+    IO CString++{- |+Converts /@site@/ to its string representation.+-}+videoChromaToString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    [GstVideo.Flags.VideoChromaSite]+    {- ^ /@site@/: a 'GI.GstVideo.Flags.VideoChromaSite' -}+    -> m T.Text+    {- ^ __Returns:__ a string describing /@site@/. -}+videoChromaToString site = liftIO $ do+    let site' = gflagsToWord site+    result <- gst_video_chroma_to_string site'+    checkUnexpectedReturnNULL "videoChromaToString" result+    result' <- cstringToText result+    return result'+++-- function gst_video_chroma_resample+-- Args : [Arg {argCName = "resample", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoChromaResample", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lines", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pixel lines", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of pixels on one line", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_chroma_resample" gst_video_chroma_resample :: +    Ptr GstVideo.VideoChromaResample.VideoChromaResample -> -- resample : TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"})+    Ptr () ->                               -- lines : TBasicType TPtr+    Int32 ->                                -- width : TBasicType TInt+    IO ()++{- |+Perform resampling of /@width@/ chroma pixels in /@lines@/.+-}+videoChromaResample ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoChromaResample.VideoChromaResample+    {- ^ /@resample@/: a 'GI.GstVideo.Structs.VideoChromaResample.VideoChromaResample' -}+    -> Ptr ()+    {- ^ /@lines@/: pixel lines -}+    -> Int32+    {- ^ /@width@/: the number of pixels on one line -}+    -> m ()+videoChromaResample resample lines width = liftIO $ do+    resample' <- unsafeManagedPtrGetPtr resample+    gst_video_chroma_resample resample' lines width+    touchManagedPtr resample+    return ()+++-- function gst_video_chroma_from_string+-- Args : [Arg {argCName = "s", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a chromasite string", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoChromaSite"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_chroma_from_string" gst_video_chroma_from_string :: +    CString ->                              -- s : TBasicType TUTF8+    IO CUInt++{- |+Convert /@s@/ to a 'GI.GstVideo.Flags.VideoChromaSite'+-}+videoChromaFromString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    T.Text+    {- ^ /@s@/: a chromasite string -}+    -> m [GstVideo.Flags.VideoChromaSite]+    {- ^ __Returns:__ a 'GI.GstVideo.Flags.VideoChromaSite' or 'GI.GstVideo.Flags.VideoChromaSiteUnknown' when /@s@/ does+not contain a valid chroma description. -}+videoChromaFromString s = liftIO $ do+    s' <- textToCString s+    result <- gst_video_chroma_from_string s'+    let result' = wordToGFlags result+    freeMem s'+    return result'+++-- function gst_video_caption_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_caption_meta_api_get_type" gst_video_caption_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoCaptionMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoCaptionMetaApiGetType  = liftIO $ do+    result <- gst_video_caption_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_video_calculate_display_ratio+-- Args : [Arg {argCName = "dar_n", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the calculated display_ratio", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "dar_d", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the calculated display_ratio", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "video_width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Width of the video frame in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Height of the video frame in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_par_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the pixel aspect ratio of the input video.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_par_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the pixel aspect ratio of the input video.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display_par_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the pixel aspect ratio of the display device", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display_par_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the pixel aspect ratio of the display device", 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_video_calculate_display_ratio" gst_video_calculate_display_ratio :: +    Ptr Word32 ->                           -- dar_n : TBasicType TUInt+    Ptr Word32 ->                           -- dar_d : TBasicType TUInt+    Word32 ->                               -- video_width : TBasicType TUInt+    Word32 ->                               -- video_height : TBasicType TUInt+    Word32 ->                               -- video_par_n : TBasicType TUInt+    Word32 ->                               -- video_par_d : TBasicType TUInt+    Word32 ->                               -- display_par_n : TBasicType TUInt+    Word32 ->                               -- display_par_d : TBasicType TUInt+    IO CInt++{- |+Given the Pixel Aspect Ratio and size of an input video frame, and the+pixel aspect ratio of the intended display device, calculates the actual+display ratio the video will be rendered with.+-}+videoCalculateDisplayRatio ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word32+    {- ^ /@videoWidth@/: Width of the video frame in pixels -}+    -> Word32+    {- ^ /@videoHeight@/: Height of the video frame in pixels -}+    -> Word32+    {- ^ /@videoParN@/: Numerator of the pixel aspect ratio of the input video. -}+    -> Word32+    {- ^ /@videoParD@/: Denominator of the pixel aspect ratio of the input video. -}+    -> Word32+    {- ^ /@displayParN@/: Numerator of the pixel aspect ratio of the display device -}+    -> Word32+    {- ^ /@displayParD@/: Denominator of the pixel aspect ratio of the display device -}+    -> m ((Bool, Word32, Word32))+    {- ^ __Returns:__ A boolean indicating success and a calculated Display Ratio in the+dar_n and dar_d parameters.+The return value is FALSE in the case of integer overflow or other error. -}+videoCalculateDisplayRatio videoWidth videoHeight videoParN videoParD displayParN displayParD = liftIO $ do+    darN <- allocMem :: IO (Ptr Word32)+    darD <- allocMem :: IO (Ptr Word32)+    result <- gst_video_calculate_display_ratio darN darD videoWidth videoHeight videoParN videoParD displayParN displayParD+    let result' = (/= 0) result+    darN' <- peek darN+    darD' <- peek darD+    freeMem darN+    freeMem darD+    return (result', darN', darD')+++-- function gst_video_blend_scale_linear_RGBA+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoInfo describing the video data in @src_buffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the source buffer containing video pixels to scale", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the height in pixels to scale the video data in @src_buffer to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width in pixels to scale the video data in @src_buffer to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "pointer to a #GstVideoInfo structure that will be filled in\n    with the details for @dest_buffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "dest_buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to a #GstBuffer variable, which will be\n    set to a newly-allocated buffer containing the scaled pixels.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_blend_scale_linear_RGBA" gst_video_blend_scale_linear_RGBA :: +    Ptr GstVideo.VideoInfo.VideoInfo ->     -- src : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr Gst.Buffer.Buffer ->                -- src_buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Int32 ->                                -- dest_height : TBasicType TInt+    Int32 ->                                -- dest_width : TBasicType TInt+    Ptr GstVideo.VideoInfo.VideoInfo ->     -- dest : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr (Ptr Gst.Buffer.Buffer) ->          -- dest_buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    IO ()++{- |+Scales a buffer containing RGBA (or AYUV) video. This is an internal+helper function which is used to scale subtitle overlays, and may be+deprecated in the near future. Use 'GI.GstVideo.Structs.VideoScaler.VideoScaler' to scale video buffers+instead.+-}+videoBlendScaleLinearRGBA ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoInfo.VideoInfo+    {- ^ /@src@/: the 'GI.GstVideo.Structs.VideoInfo.VideoInfo' describing the video data in /@srcBuffer@/ -}+    -> Gst.Buffer.Buffer+    {- ^ /@srcBuffer@/: the source buffer containing video pixels to scale -}+    -> Int32+    {- ^ /@destHeight@/: the height in pixels to scale the video data in /@srcBuffer@/ to -}+    -> Int32+    {- ^ /@destWidth@/: the width in pixels to scale the video data in /@srcBuffer@/ to -}+    -> m ((GstVideo.VideoInfo.VideoInfo, Gst.Buffer.Buffer))+videoBlendScaleLinearRGBA src srcBuffer destHeight destWidth = liftIO $ do+    src' <- unsafeManagedPtrGetPtr src+    srcBuffer' <- unsafeManagedPtrGetPtr srcBuffer+    dest <- callocBoxedBytes 120 :: IO (Ptr GstVideo.VideoInfo.VideoInfo)+    destBuffer <- allocMem :: IO (Ptr (Ptr Gst.Buffer.Buffer))+    gst_video_blend_scale_linear_RGBA src' srcBuffer' destHeight destWidth dest destBuffer+    dest' <- (wrapBoxed GstVideo.VideoInfo.VideoInfo) dest+    destBuffer' <- peek destBuffer+    destBuffer'' <- (wrapBoxed Gst.Buffer.Buffer) destBuffer'+    touchManagedPtr src+    touchManagedPtr srcBuffer+    freeMem destBuffer+    return (dest', destBuffer'')+++-- function gst_video_blend+-- Args : [Arg {argCName = "dest", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstVideoFrame where to blend @src in", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoFrame that we want to blend into", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The x offset in pixel where the @src image should be blended", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the y offset in pixel where the @src image should be blended", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "global_alpha", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the global_alpha each per-pixel alpha value is multiplied\n               with", 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_video_blend" gst_video_blend :: +    Ptr GstVideo.VideoFrame.VideoFrame ->   -- dest : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr GstVideo.VideoFrame.VideoFrame ->   -- src : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Int32 ->                                -- x : TBasicType TInt+    Int32 ->                                -- y : TBasicType TInt+    CFloat ->                               -- global_alpha : TBasicType TFloat+    IO CInt++{- |+Lets you blend the /@src@/ image into the /@dest@/ image+-}+videoBlend ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoFrame.VideoFrame+    {- ^ /@dest@/: The 'GI.GstVideo.Structs.VideoFrame.VideoFrame' where to blend /@src@/ in -}+    -> GstVideo.VideoFrame.VideoFrame+    {- ^ /@src@/: the 'GI.GstVideo.Structs.VideoFrame.VideoFrame' that we want to blend into -}+    -> Int32+    {- ^ /@x@/: The x offset in pixel where the /@src@/ image should be blended -}+    -> Int32+    {- ^ /@y@/: the y offset in pixel where the /@src@/ image should be blended -}+    -> Float+    {- ^ /@globalAlpha@/: the global_alpha each per-pixel alpha value is multiplied+               with -}+    -> m Bool+videoBlend dest src x y globalAlpha = liftIO $ do+    dest' <- unsafeManagedPtrGetPtr dest+    src' <- unsafeManagedPtrGetPtr src+    let globalAlpha' = realToFrac globalAlpha+    result <- gst_video_blend dest' src' x y globalAlpha'+    let result' = (/= 0) result+    touchManagedPtr dest+    touchManagedPtr src+    return result'+++-- function gst_video_affine_transformation_meta_api_get_type+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TGType)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_affine_transformation_meta_api_get_type" gst_video_affine_transformation_meta_api_get_type :: +    IO CGType++{- |+/No description available in the introspection data./+-}+videoAffineTransformationMetaApiGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m GType+videoAffineTransformationMetaApiGetType  = liftIO $ do+    result <- gst_video_affine_transformation_meta_api_get_type+    let result' = GType result+    return result'+++-- function gst_is_video_overlay_prepare_window_handle_message+-- Args : [Arg {argCName = "msg", argType = TInterface (Name {namespace = "Gst", name = "Message"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstMessage", 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_is_video_overlay_prepare_window_handle_message" gst_is_video_overlay_prepare_window_handle_message :: +    Ptr Gst.Message.Message ->              -- msg : TInterface (Name {namespace = "Gst", name = "Message"})+    IO CInt++{- |+Convenience function to check if the given message is a+\"prepare-window-handle\" message from a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay'.+-}+isVideoOverlayPrepareWindowHandleMessage ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Message.Message+    {- ^ /@msg@/: a 'GI.Gst.Structs.Message.Message' -}+    -> m Bool+    {- ^ __Returns:__ whether /@msg@/ is a \"prepare-window-handle\" message -}+isVideoOverlayPrepareWindowHandleMessage msg = liftIO $ do+    msg' <- unsafeManagedPtrGetPtr msg+    result <- gst_is_video_overlay_prepare_window_handle_message msg'+    let result' = (/= 0) result+    touchManagedPtr msg+    return result'+++-- function gst_buffer_pool_config_set_video_alignment+-- Args : [Arg {argCName = "config", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstStructure", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "align", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAlignment", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_pool_config_set_video_alignment" gst_buffer_pool_config_set_video_alignment :: +    Ptr Gst.Structure.Structure ->          -- config : TInterface (Name {namespace = "Gst", name = "Structure"})+    Ptr GstVideo.VideoAlignment.VideoAlignment -> -- align : TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"})+    IO ()++{- |+Set the video alignment in /@align@/ to the bufferpool configuration+/@config@/+-}+bufferPoolConfigSetVideoAlignment ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Structure.Structure+    {- ^ /@config@/: a 'GI.Gst.Structs.Structure.Structure' -}+    -> GstVideo.VideoAlignment.VideoAlignment+    {- ^ /@align@/: a 'GI.GstVideo.Structs.VideoAlignment.VideoAlignment' -}+    -> m ()+bufferPoolConfigSetVideoAlignment config align = liftIO $ do+    config' <- unsafeManagedPtrGetPtr config+    align' <- unsafeManagedPtrGetPtr align+    gst_buffer_pool_config_set_video_alignment config' align'+    touchManagedPtr config+    touchManagedPtr align+    return ()+++-- function gst_buffer_pool_config_get_video_alignment+-- Args : [Arg {argCName = "config", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstStructure", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "align", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAlignment", 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_buffer_pool_config_get_video_alignment" gst_buffer_pool_config_get_video_alignment :: +    Ptr Gst.Structure.Structure ->          -- config : TInterface (Name {namespace = "Gst", name = "Structure"})+    Ptr GstVideo.VideoAlignment.VideoAlignment -> -- align : TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"})+    IO CInt++{- |+Get the video alignment from the bufferpool configuration /@config@/ in+in /@align@/+-}+bufferPoolConfigGetVideoAlignment ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Structure.Structure+    {- ^ /@config@/: a 'GI.Gst.Structs.Structure.Structure' -}+    -> GstVideo.VideoAlignment.VideoAlignment+    {- ^ /@align@/: a 'GI.GstVideo.Structs.VideoAlignment.VideoAlignment' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@config@/ could be parsed correctly. -}+bufferPoolConfigGetVideoAlignment config align = liftIO $ do+    config' <- unsafeManagedPtrGetPtr config+    align' <- unsafeManagedPtrGetPtr align+    result <- gst_buffer_pool_config_get_video_alignment config' align'+    let result' = (/= 0) result+    touchManagedPtr config+    touchManagedPtr align+    return result'+++-- function gst_buffer_get_video_region_of_interest_meta_id+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a metadata id", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_get_video_region_of_interest_meta_id" gst_buffer_get_video_region_of_interest_meta_id :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Int32 ->                                -- id : TBasicType TInt+    IO (Ptr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta)++{- |+Find the 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' on /@buffer@/ with the given /@id@/.++Buffers can contain multiple 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' metadata items if+multiple regions of interests are marked on a frame.+-}+bufferGetVideoRegionOfInterestMetaId ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> Int32+    {- ^ /@id@/: a metadata id -}+    -> m GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' with /@id@/ or 'Nothing' when there is+no such metadata on /@buffer@/. -}+bufferGetVideoRegionOfInterestMetaId buffer id = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    result <- gst_buffer_get_video_region_of_interest_meta_id buffer' id+    checkUnexpectedReturnNULL "bufferGetVideoRegionOfInterestMetaId" result+    result' <- (newPtr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta) result+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_get_video_meta_id+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a metadata id", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_get_video_meta_id" gst_buffer_get_video_meta_id :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Int32 ->                                -- id : TBasicType TInt+    IO (Ptr GstVideo.VideoMeta.VideoMeta)++{- |+Find the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' on /@buffer@/ with the given /@id@/.++Buffers can contain multiple 'GI.GstVideo.Structs.VideoMeta.VideoMeta' metadata items when dealing with+multiview buffers.+-}+bufferGetVideoMetaId ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> Int32+    {- ^ /@id@/: a metadata id -}+    -> m GstVideo.VideoMeta.VideoMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' with /@id@/ or 'Nothing' when there is no such metadata+on /@buffer@/. -}+bufferGetVideoMetaId buffer id = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    result <- gst_buffer_get_video_meta_id buffer' id+    checkUnexpectedReturnNULL "bufferGetVideoMetaId" result+    result' <- (newPtr GstVideo.VideoMeta.VideoMeta) result+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_get_video_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_get_video_meta" gst_buffer_get_video_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    IO (Ptr GstVideo.VideoMeta.VideoMeta)++{- |+Find the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' on /@buffer@/ with the lowest /@id@/.++Buffers can contain multiple 'GI.GstVideo.Structs.VideoMeta.VideoMeta' metadata items when dealing with+multiview buffers.+-}+bufferGetVideoMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> m GstVideo.VideoMeta.VideoMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' with lowest id (usually 0) or 'Nothing' when there+is no such metadata on /@buffer@/. -}+bufferGetVideoMeta buffer = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    result <- gst_buffer_get_video_meta buffer'+    checkUnexpectedReturnNULL "bufferGetVideoMeta" result+    result' <- (newPtr GstVideo.VideoMeta.VideoMeta) result+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_add_video_time_code_meta_full+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "framerate numerator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "framerate denominator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "latest_daily_jam", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GDateTime for the latest daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "hours since the daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "minutes since the daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "seconds since the daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "frames since the daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "fields since the daily jam", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_time_code_meta_full" gst_buffer_add_video_time_code_meta_full :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- latest_daily_jam : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- hours : TBasicType TUInt+    Word32 ->                               -- minutes : TBasicType TUInt+    Word32 ->                               -- seconds : TBasicType TUInt+    Word32 ->                               -- frames : TBasicType TUInt+    Word32 ->                               -- field_count : TBasicType TUInt+    IO (Ptr GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta)++{- |+Attaches 'GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta' metadata to /@buffer@/ with the given+parameters.++/Since: 1.10/+-}+bufferAddVideoTimeCodeMetaFull ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> Word32+    {- ^ /@fpsN@/: framerate numerator -}+    -> Word32+    {- ^ /@fpsD@/: framerate denominator -}+    -> GLib.DateTime.DateTime+    {- ^ /@latestDailyJam@/: a 'GI.GLib.Structs.DateTime.DateTime' for the latest daily jam -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: a 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@hours@/: hours since the daily jam -}+    -> Word32+    {- ^ /@minutes@/: minutes since the daily jam -}+    -> Word32+    {- ^ /@seconds@/: seconds since the daily jam -}+    -> Word32+    {- ^ /@frames@/: frames since the daily jam -}+    -> Word32+    {- ^ /@fieldCount@/: fields since the daily jam -}+    -> m GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta' on /@buffer@/, or+(since 1.16) 'Nothing' if the timecode was invalid. -}+bufferAddVideoTimeCodeMetaFull buffer fpsN fpsD latestDailyJam flags hours minutes seconds frames fieldCount = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    latestDailyJam' <- unsafeManagedPtrGetPtr latestDailyJam+    let flags' = gflagsToWord flags+    result <- gst_buffer_add_video_time_code_meta_full buffer' fpsN fpsD latestDailyJam' flags' hours minutes seconds frames fieldCount+    checkUnexpectedReturnNULL "bufferAddVideoTimeCodeMetaFull" result+    result' <- (newPtr GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta) result+    touchManagedPtr buffer+    touchManagedPtr latestDailyJam+    return result'+++-- function gst_buffer_add_video_time_code_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_time_code_meta" gst_buffer_add_video_time_code_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Ptr GstVideo.VideoTimeCode.VideoTimeCode -> -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO (Ptr GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta)++{- |+Attaches 'GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta' metadata to /@buffer@/ with the given+parameters.++/Since: 1.10/+-}+bufferAddVideoTimeCodeMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> GstVideo.VideoTimeCode.VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m (Maybe GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta)+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoTimeCodeMeta.VideoTimeCodeMeta' on /@buffer@/, or+(since 1.16) 'Nothing' if the timecode was invalid. -}+bufferAddVideoTimeCodeMeta buffer tc = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_buffer_add_video_time_code_meta buffer' tc'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (newPtr GstVideo.VideoTimeCodeMeta.VideoTimeCodeMeta) result'+        return result''+    touchManagedPtr buffer+    touchManagedPtr tc+    return maybeResult+++-- function gst_buffer_add_video_region_of_interest_meta_id+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "roi_type", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Type of the region of interest (e.g. \"face\")", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "w", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "h", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_region_of_interest_meta_id" gst_buffer_add_video_region_of_interest_meta_id :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Word32 ->                               -- roi_type : TBasicType TUInt32+    Word32 ->                               -- x : TBasicType TUInt+    Word32 ->                               -- y : TBasicType TUInt+    Word32 ->                               -- w : TBasicType TUInt+    Word32 ->                               -- h : TBasicType TUInt+    IO (Ptr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta)++{- |+Attaches 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' metadata to /@buffer@/ with the given+parameters.+-}+bufferAddVideoRegionOfInterestMetaId ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> Word32+    {- ^ /@roiType@/: Type of the region of interest (e.g. \"face\") -}+    -> Word32+    {- ^ /@x@/: X position -}+    -> Word32+    {- ^ /@y@/: Y position -}+    -> Word32+    {- ^ /@w@/: width -}+    -> Word32+    {- ^ /@h@/: height -}+    -> m GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' on /@buffer@/. -}+bufferAddVideoRegionOfInterestMetaId buffer roiType x y w h = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    result <- gst_buffer_add_video_region_of_interest_meta_id buffer' roiType x y w h+    checkUnexpectedReturnNULL "bufferAddVideoRegionOfInterestMetaId" result+    result' <- (newPtr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta) result+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_add_video_region_of_interest_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "roi_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Type of the region of interest (e.g. \"face\")", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "w", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "h", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_region_of_interest_meta" gst_buffer_add_video_region_of_interest_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CString ->                              -- roi_type : TBasicType TUTF8+    Word32 ->                               -- x : TBasicType TUInt+    Word32 ->                               -- y : TBasicType TUInt+    Word32 ->                               -- w : TBasicType TUInt+    Word32 ->                               -- h : TBasicType TUInt+    IO (Ptr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta)++{- |+Attaches 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' metadata to /@buffer@/ with the given+parameters.+-}+bufferAddVideoRegionOfInterestMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> T.Text+    {- ^ /@roiType@/: Type of the region of interest (e.g. \"face\") -}+    -> Word32+    {- ^ /@x@/: X position -}+    -> Word32+    {- ^ /@y@/: Y position -}+    -> Word32+    {- ^ /@w@/: width -}+    -> Word32+    {- ^ /@h@/: height -}+    -> m GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' on /@buffer@/. -}+bufferAddVideoRegionOfInterestMeta buffer roiType x y w h = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    roiType' <- textToCString roiType+    result <- gst_buffer_add_video_region_of_interest_meta buffer' roiType' x y w h+    checkUnexpectedReturnNULL "bufferAddVideoRegionOfInterestMeta" result+    result' <- (newPtr GstVideo.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta) result+    touchManagedPtr buffer+    freeMem roiType'+    return result'+++-- function gst_buffer_add_video_overlay_composition_meta+-- Args : [Arg {argCName = "buf", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayCompositionMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_overlay_composition_meta" gst_buffer_add_video_overlay_composition_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buf : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition -> -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    IO (Ptr GstVideo.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta)++{- |+Sets an overlay composition on a buffer. The buffer will obtain its own+reference to the composition, meaning this function does not take ownership+of /@comp@/.+-}+bufferAddVideoOverlayCompositionMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buf@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> Maybe (GstVideo.VideoOverlayComposition.VideoOverlayComposition)+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> m GstVideo.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta+    {- ^ __Returns:__ a 'GI.GstVideo.Structs.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta' -}+bufferAddVideoOverlayCompositionMeta buf comp = liftIO $ do+    buf' <- unsafeManagedPtrGetPtr buf+    maybeComp <- case comp of+        Nothing -> return nullPtr+        Just jComp -> do+            jComp' <- unsafeManagedPtrGetPtr jComp+            return jComp'+    result <- gst_buffer_add_video_overlay_composition_meta buf' maybeComp+    checkUnexpectedReturnNULL "bufferAddVideoOverlayCompositionMeta" result+    result' <- (newPtr GstVideo.VideoOverlayCompositionMeta.VideoOverlayCompositionMeta) result+    touchManagedPtr buf+    whenJust comp touchManagedPtr+    return result'+++-- function gst_buffer_add_video_meta_full+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrameFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoFrameFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_planes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of planes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TCArray False 4 (-1) (TBasicType TUInt64), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "offset of each plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TCArray False 4 (-1) (TBasicType TInt), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "stride of each plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_meta_full" gst_buffer_add_video_meta_full :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoFrameFlags"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    Word32 ->                               -- n_planes : TBasicType TUInt+    Ptr Word64 ->                           -- offset : TCArray False 4 (-1) (TBasicType TUInt64)+    Ptr Int32 ->                            -- stride : TCArray False 4 (-1) (TBasicType TInt)+    IO (Ptr GstVideo.VideoMeta.VideoMeta)++{- |+Attaches GstVideoMeta metadata to /@buffer@/ with the given parameters.+-}+bufferAddVideoMetaFull ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> [GstVideo.Flags.VideoFrameFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoFrameFlags' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> Word32+    {- ^ /@width@/: the width -}+    -> Word32+    {- ^ /@height@/: the height -}+    -> Word32+    {- ^ /@nPlanes@/: number of planes -}+    -> [Word64]+    {- ^ /@offset@/: offset of each plane -}+    -> [Int32]+    {- ^ /@stride@/: stride of each plane -}+    -> m GstVideo.VideoMeta.VideoMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' on /@buffer@/. -}+bufferAddVideoMetaFull buffer flags format width height nPlanes offset stride = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    let flags' = gflagsToWord flags+    let format' = (fromIntegral . fromEnum) format+    offset' <- packStorableArray offset+    stride' <- packStorableArray stride+    result <- gst_buffer_add_video_meta_full buffer' flags' format' width height nPlanes offset' stride'+    checkUnexpectedReturnNULL "bufferAddVideoMetaFull" result+    result' <- (newPtr GstVideo.VideoMeta.VideoMeta) result+    touchManagedPtr buffer+    freeMem offset'+    freeMem stride'+    return result'+++-- function gst_buffer_add_video_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrameFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoFrameFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_meta" gst_buffer_add_video_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoFrameFlags"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    IO (Ptr GstVideo.VideoMeta.VideoMeta)++{- |+Attaches GstVideoMeta metadata to /@buffer@/ with the given parameters and the+default offsets and strides for /@format@/ and /@width@/ x /@height@/.++This function calculates the default offsets and strides and then calls+'GI.GstVideo.Functions.bufferAddVideoMetaFull' with them.+-}+bufferAddVideoMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> [GstVideo.Flags.VideoFrameFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoFrameFlags' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> Word32+    {- ^ /@width@/: the width -}+    -> Word32+    {- ^ /@height@/: the height -}+    -> m GstVideo.VideoMeta.VideoMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoMeta.VideoMeta' on /@buffer@/. -}+bufferAddVideoMeta buffer flags format width height = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    let flags' = gflagsToWord flags+    let format' = (fromIntegral . fromEnum) format+    result <- gst_buffer_add_video_meta buffer' flags' format' width height+    checkUnexpectedReturnNULL "bufferAddVideoMeta" result+    result' <- (newPtr GstVideo.VideoMeta.VideoMeta) result+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_add_video_gl_texture_upload_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "texture_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoGLTextureOrientation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_textures", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of textures", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "texture_type", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "array of #GstVideoGLTextureType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "upload", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUpload"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the function to upload the buffer to a specific texture ID", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for the implementor of @upload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data_copy", argType = TInterface (Name {namespace = "GObject", name = "BoxedCopyFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "function to copy @user_data", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data_free", argType = TInterface (Name {namespace = "GObject", name = "BoxedFreeFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "function to free @user_data", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUploadMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_gl_texture_upload_meta" gst_buffer_add_video_gl_texture_upload_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CUInt ->                                -- texture_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureOrientation"})+    Word32 ->                               -- n_textures : TBasicType TUInt+    CUInt ->                                -- texture_type : TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureType"})+    FunPtr GstVideo.Callbacks.C_VideoGLTextureUpload -> -- upload : TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUpload"})+    Ptr () ->                               -- user_data : TBasicType TPtr+    FunPtr GObject.Callbacks.C_BoxedCopyFunc -> -- user_data_copy : TInterface (Name {namespace = "GObject", name = "BoxedCopyFunc"})+    FunPtr GObject.Callbacks.C_BoxedFreeFunc -> -- user_data_free : TInterface (Name {namespace = "GObject", name = "BoxedFreeFunc"})+    IO (Ptr GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta)++{- |+Attaches GstVideoGLTextureUploadMeta metadata to /@buffer@/ with the given+parameters.+-}+bufferAddVideoGlTextureUploadMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> GstVideo.Enums.VideoGLTextureOrientation+    {- ^ /@textureOrientation@/: the 'GI.GstVideo.Enums.VideoGLTextureOrientation' -}+    -> Word32+    {- ^ /@nTextures@/: the number of textures -}+    -> GstVideo.Enums.VideoGLTextureType+    {- ^ /@textureType@/: array of 'GI.GstVideo.Enums.VideoGLTextureType' -}+    -> GstVideo.Callbacks.VideoGLTextureUpload+    {- ^ /@upload@/: the function to upload the buffer to a specific texture ID -}+    -> GObject.Callbacks.BoxedCopyFunc+    {- ^ /@userDataCopy@/: function to copy /@userData@/ -}+    -> GObject.Callbacks.BoxedFreeFunc+    {- ^ /@userDataFree@/: function to free /@userData@/ -}+    -> m GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta' on /@buffer@/. -}+bufferAddVideoGlTextureUploadMeta buffer textureOrientation nTextures textureType upload userDataCopy userDataFree = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    let textureOrientation' = (fromIntegral . fromEnum) textureOrientation+    let textureType' = (fromIntegral . fromEnum) textureType+    upload' <- GstVideo.Callbacks.mk_VideoGLTextureUpload (GstVideo.Callbacks.wrap_VideoGLTextureUpload Nothing upload)+    userDataCopy' <- GObject.Callbacks.mk_BoxedCopyFunc (GObject.Callbacks.wrap_BoxedCopyFunc Nothing userDataCopy)+    userDataFree' <- GObject.Callbacks.mk_BoxedFreeFunc (GObject.Callbacks.wrap_BoxedFreeFunc Nothing userDataFree)+    let userData = nullPtr+    result <- gst_buffer_add_video_gl_texture_upload_meta buffer' textureOrientation' nTextures textureType' upload' userData userDataCopy' userDataFree'+    checkUnexpectedReturnNULL "bufferAddVideoGlTextureUploadMeta" result+    result' <- (newPtr GstVideo.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta) result+    safeFreeFunPtr $ castFunPtrToPtr upload'+    safeFreeFunPtr $ castFunPtrToPtr userDataCopy'+    safeFreeFunPtr $ castFunPtrToPtr userDataFree'+    touchManagedPtr buffer+    return result'+++-- function gst_buffer_add_video_caption_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caption_type", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCaptionType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The type of Closed Caption to add", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 3 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The Closed Caption data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The size of @data in bytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The size of @data in bytes", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCaptionMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_caption_meta" gst_buffer_add_video_caption_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CUInt ->                                -- caption_type : TInterface (Name {namespace = "GstVideo", name = "VideoCaptionType"})+    Ptr Word8 ->                            -- data : TCArray False (-1) 3 (TBasicType TUInt8)+    Word64 ->                               -- size : TBasicType TUInt64+    IO (Ptr GstVideo.VideoCaptionMeta.VideoCaptionMeta)++{- |+Attaches 'GI.GstVideo.Structs.VideoCaptionMeta.VideoCaptionMeta' metadata to /@buffer@/ with the given+parameters.++/Since: 1.16/+-}+bufferAddVideoCaptionMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> GstVideo.Enums.VideoCaptionType+    {- ^ /@captionType@/: The type of Closed Caption to add -}+    -> ByteString+    {- ^ /@data@/: The Closed Caption data -}+    -> m GstVideo.VideoCaptionMeta.VideoCaptionMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoCaptionMeta.VideoCaptionMeta' on /@buffer@/. -}+bufferAddVideoCaptionMeta buffer captionType data_ = liftIO $ do+    let size = fromIntegral $ B.length data_+    buffer' <- unsafeManagedPtrGetPtr buffer+    let captionType' = (fromIntegral . fromEnum) captionType+    data_' <- packByteString data_+    result <- gst_buffer_add_video_caption_meta buffer' captionType' data_' size+    checkUnexpectedReturnNULL "bufferAddVideoCaptionMeta" result+    result' <- (newPtr GstVideo.VideoCaptionMeta.VideoCaptionMeta) result+    touchManagedPtr buffer+    freeMem data_'+    return result'+++-- function gst_buffer_add_video_affine_transformation_meta+-- Args : [Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoAffineTransformationMeta"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_buffer_add_video_affine_transformation_meta" gst_buffer_add_video_affine_transformation_meta :: +    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    IO (Ptr GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta)++{- |+Attaches GstVideoAffineTransformationMeta metadata to /@buffer@/ with+the given parameters.++/Since: 1.8/+-}+bufferAddVideoAffineTransformationMeta ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@buffer@/: a 'GI.Gst.Structs.Buffer.Buffer' -}+    -> m GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoAffineTransformationMeta.VideoAffineTransformationMeta' on /@buffer@/. -}+bufferAddVideoAffineTransformationMeta buffer = liftIO $ do+    buffer' <- unsafeManagedPtrGetPtr buffer+    result <- gst_buffer_add_video_affine_transformation_meta buffer'+    checkUnexpectedReturnNULL "bufferAddVideoAffineTransformationMeta" result+    result' <- (newPtr GstVideo.VideoAffineTransformationMeta.VideoAffineTransformationMeta) result+    touchManagedPtr buffer+    return result'+++
+ GI/GstVideo/Interfaces.hs view
@@ -0,0 +1,49 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces+    (     module GI.GstVideo.Interfaces.ColorBalance,+    module GI.GstVideo.Interfaces.Navigation,+    module GI.GstVideo.Interfaces.VideoDirection,+    module GI.GstVideo.Interfaces.VideoOrientation,+    module GI.GstVideo.Interfaces.VideoOverlay,+++    ) where++import GI.GstVideo.Interfaces.ColorBalance+import GI.GstVideo.Interfaces.Navigation+import GI.GstVideo.Interfaces.VideoDirection+import GI.GstVideo.Interfaces.VideoOrientation+import GI.GstVideo.Interfaces.VideoOverlay++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+++
+ GI/GstVideo/Interfaces/ColorBalance.hs view
@@ -0,0 +1,482 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++This interface is implemented by elements which can perform some color+balance operation on video frames they process. For example, modifying+the brightness, contrast, hue or saturation.++Example elements are \'xvimagesink\' and \'colorbalance\'+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces.ColorBalance+    ( ++-- * Exported types+    ColorBalance(..)                        ,+    noColorBalance                          ,+    IsColorBalance                          ,+    toColorBalance                          ,+++ -- * Methods+-- ** getBalanceType #method:getBalanceType#++#if ENABLE_OVERLOADING+    ColorBalanceGetBalanceTypeMethodInfo    ,+#endif+    colorBalanceGetBalanceType              ,+++-- ** getValue #method:getValue#++#if ENABLE_OVERLOADING+    ColorBalanceGetValueMethodInfo          ,+#endif+    colorBalanceGetValue                    ,+++-- ** listChannels #method:listChannels#++#if ENABLE_OVERLOADING+    ColorBalanceListChannelsMethodInfo      ,+#endif+    colorBalanceListChannels                ,+++-- ** setValue #method:setValue#++#if ENABLE_OVERLOADING+    ColorBalanceSetValueMethodInfo          ,+#endif+    colorBalanceSetValue                    ,+++-- ** valueChanged #method:valueChanged#++#if ENABLE_OVERLOADING+    ColorBalanceValueChangedMethodInfo      ,+#endif+    colorBalanceValueChanged                ,+++++ -- * Signals+-- ** valueChanged #signal:valueChanged#++    C_ColorBalanceValueChangedCallback      ,+    ColorBalanceValueChangedCallback        ,+#if ENABLE_OVERLOADING+    ColorBalanceValueChangedSignalInfo      ,+#endif+    afterColorBalanceValueChanged           ,+    genClosure_ColorBalanceValueChanged     ,+    mk_ColorBalanceValueChangedCallback     ,+    noColorBalanceValueChangedCallback      ,+    onColorBalanceValueChanged              ,+    wrap_ColorBalanceValueChangedCallback   ,+++++    ) 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.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Objects.ColorBalanceChannel as GstVideo.ColorBalanceChannel++-- interface ColorBalance +-- | Memory-managed wrapper type.+newtype ColorBalance = ColorBalance (ManagedPtr ColorBalance)+-- | A convenience alias for `Nothing` :: `Maybe` `ColorBalance`.+noColorBalance :: Maybe ColorBalance+noColorBalance = Nothing++-- signal ColorBalance::value-changed+{- |+Fired when the value of the indicated channel has changed.+-}+type ColorBalanceValueChangedCallback =+    GstVideo.ColorBalanceChannel.ColorBalanceChannel+    {- ^ /@channel@/: The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' -}+    -> Int32+    {- ^ /@value@/: The new value -}+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `ColorBalanceValueChangedCallback`@.+noColorBalanceValueChangedCallback :: Maybe ColorBalanceValueChangedCallback+noColorBalanceValueChangedCallback = Nothing++-- | Type for the callback on the (unwrapped) C side.+type C_ColorBalanceValueChangedCallback =+    Ptr () ->                               -- object+    Ptr GstVideo.ColorBalanceChannel.ColorBalanceChannel ->+    Int32 ->+    Ptr () ->                               -- user_data+    IO ()++-- | Generate a function pointer callable from C code, from a `C_ColorBalanceValueChangedCallback`.+foreign import ccall "wrapper"+    mk_ColorBalanceValueChangedCallback :: C_ColorBalanceValueChangedCallback -> IO (FunPtr C_ColorBalanceValueChangedCallback)++-- | Wrap the callback into a `GClosure`.+genClosure_ColorBalanceValueChanged :: MonadIO m => ColorBalanceValueChangedCallback -> m (GClosure C_ColorBalanceValueChangedCallback)+genClosure_ColorBalanceValueChanged cb = liftIO $ do+    let cb' = wrap_ColorBalanceValueChangedCallback cb+    mk_ColorBalanceValueChangedCallback cb' >>= B.GClosure.newGClosure+++-- | Wrap a `ColorBalanceValueChangedCallback` into a `C_ColorBalanceValueChangedCallback`.+wrap_ColorBalanceValueChangedCallback ::+    ColorBalanceValueChangedCallback ->+    C_ColorBalanceValueChangedCallback+wrap_ColorBalanceValueChangedCallback _cb _ channel value _ = do+    channel' <- (newObject GstVideo.ColorBalanceChannel.ColorBalanceChannel) channel+    _cb  channel' value+++{- |+Connect a signal handler for the “@value-changed@” signal, to be run before the default handler.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Signals.on' colorBalance #valueChanged callback+@+-}+onColorBalanceValueChanged :: (IsColorBalance a, MonadIO m) => a -> ColorBalanceValueChangedCallback -> m SignalHandlerId+onColorBalanceValueChanged obj cb = liftIO $ do+    let cb' = wrap_ColorBalanceValueChangedCallback cb+    cb'' <- mk_ColorBalanceValueChangedCallback cb'+    connectSignalFunPtr obj "value-changed" cb'' SignalConnectBefore++{- |+Connect a signal handler for the “@value-changed@” signal, to be run after the default handler.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Signals.after' colorBalance #valueChanged callback+@+-}+afterColorBalanceValueChanged :: (IsColorBalance a, MonadIO m) => a -> ColorBalanceValueChangedCallback -> m SignalHandlerId+afterColorBalanceValueChanged obj cb = liftIO $ do+    let cb' = wrap_ColorBalanceValueChangedCallback cb+    cb'' <- mk_ColorBalanceValueChangedCallback cb'+    connectSignalFunPtr obj "value-changed" cb'' SignalConnectAfter+++#if ENABLE_OVERLOADING+data ColorBalanceValueChangedSignalInfo+instance SignalInfo ColorBalanceValueChangedSignalInfo where+    type HaskellCallbackType ColorBalanceValueChangedSignalInfo = ColorBalanceValueChangedCallback+    connectSignal _ obj cb connectMode = do+        let cb' = wrap_ColorBalanceValueChangedCallback cb+        cb'' <- mk_ColorBalanceValueChangedCallback cb'+        connectSignalFunPtr obj "value-changed" cb'' connectMode++type instance O.SignalList ColorBalance = ColorBalanceSignalList+type ColorBalanceSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("valueChanged", ColorBalanceValueChangedSignalInfo)] :: [(Symbol, *)])++#endif++foreign import ccall "gst_color_balance_get_type"+    c_gst_color_balance_get_type :: IO GType++instance GObject ColorBalance where+    gobjectType = c_gst_color_balance_get_type+    ++-- | Type class for types which can be safely cast to `ColorBalance`, for instance with `toColorBalance`.+class (GObject o, O.IsDescendantOf ColorBalance o) => IsColorBalance o+instance (GObject o, O.IsDescendantOf ColorBalance o) => IsColorBalance o++instance O.HasParentTypes ColorBalance+type instance O.ParentTypes ColorBalance = '[GObject.Object.Object]++-- | Cast to `ColorBalance`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toColorBalance :: (MonadIO m, IsColorBalance o) => o -> m ColorBalance+toColorBalance = liftIO . unsafeCastTo ColorBalance++#if ENABLE_OVERLOADING+instance O.HasAttributeList ColorBalance+type instance O.AttributeList ColorBalance = ColorBalanceAttributeList+type ColorBalanceAttributeList = ('[ ] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveColorBalanceMethod (t :: Symbol) (o :: *) :: * where+    ResolveColorBalanceMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveColorBalanceMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveColorBalanceMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveColorBalanceMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveColorBalanceMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveColorBalanceMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveColorBalanceMethod "listChannels" o = ColorBalanceListChannelsMethodInfo+    ResolveColorBalanceMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveColorBalanceMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveColorBalanceMethod "ref" o = GObject.Object.ObjectRefMethodInfo+    ResolveColorBalanceMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveColorBalanceMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveColorBalanceMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveColorBalanceMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveColorBalanceMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveColorBalanceMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo+    ResolveColorBalanceMethod "valueChanged" o = ColorBalanceValueChangedMethodInfo+    ResolveColorBalanceMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveColorBalanceMethod "getBalanceType" o = ColorBalanceGetBalanceTypeMethodInfo+    ResolveColorBalanceMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveColorBalanceMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveColorBalanceMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveColorBalanceMethod "getValue" o = ColorBalanceGetValueMethodInfo+    ResolveColorBalanceMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveColorBalanceMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveColorBalanceMethod "setValue" o = ColorBalanceSetValueMethodInfo+    ResolveColorBalanceMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveColorBalanceMethod t ColorBalance, O.MethodInfo info ColorBalance p) => OL.IsLabel t (ColorBalance -> 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++-- method ColorBalance::get_balance_type+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "balance", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalance"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstColorBalance implementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "ColorBalanceType"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_color_balance_get_balance_type" gst_color_balance_get_balance_type :: +    Ptr ColorBalance ->                     -- balance : TInterface (Name {namespace = "GstVideo", name = "ColorBalance"})+    IO CUInt++{- |+Get the 'GI.GstVideo.Enums.ColorBalanceType' of this implementation.+-}+colorBalanceGetBalanceType ::+    (B.CallStack.HasCallStack, MonadIO m, IsColorBalance a) =>+    a+    {- ^ /@balance@/: The 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' implementation -}+    -> m GstVideo.Enums.ColorBalanceType+    {- ^ __Returns:__ A the 'GI.GstVideo.Enums.ColorBalanceType'. -}+colorBalanceGetBalanceType balance = liftIO $ do+    balance' <- unsafeManagedPtrCastPtr balance+    result <- gst_color_balance_get_balance_type balance'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr balance+    return result'++#if ENABLE_OVERLOADING+data ColorBalanceGetBalanceTypeMethodInfo+instance (signature ~ (m GstVideo.Enums.ColorBalanceType), MonadIO m, IsColorBalance a) => O.MethodInfo ColorBalanceGetBalanceTypeMethodInfo a signature where+    overloadedMethod _ = colorBalanceGetBalanceType++#endif++-- method ColorBalance::get_value+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "balance", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalance"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalance instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalanceChannel instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt)+-- throws : False+-- Skip return : False++foreign import ccall "gst_color_balance_get_value" gst_color_balance_get_value :: +    Ptr ColorBalance ->                     -- balance : TInterface (Name {namespace = "GstVideo", name = "ColorBalance"})+    Ptr GstVideo.ColorBalanceChannel.ColorBalanceChannel -> -- channel : TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"})+    IO Int32++{- |+Retrieve the current value of the indicated channel, between min_value+and max_value.++See Also: The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'.@/min_value/@ and+        'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'.@/max_value/@ members of the+        'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' object.+-}+colorBalanceGetValue ::+    (B.CallStack.HasCallStack, MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) =>+    a+    {- ^ /@balance@/: A 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' instance -}+    -> b+    {- ^ /@channel@/: A 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' instance -}+    -> m Int32+    {- ^ __Returns:__ The current value of the channel. -}+colorBalanceGetValue balance channel = liftIO $ do+    balance' <- unsafeManagedPtrCastPtr balance+    channel' <- unsafeManagedPtrCastPtr channel+    result <- gst_color_balance_get_value balance' channel'+    touchManagedPtr balance+    touchManagedPtr channel+    return result++#if ENABLE_OVERLOADING+data ColorBalanceGetValueMethodInfo+instance (signature ~ (b -> m Int32), MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) => O.MethodInfo ColorBalanceGetValueMethodInfo a signature where+    overloadedMethod _ = colorBalanceGetValue++#endif++-- method ColorBalance::list_channels+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "balance", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalance"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalance instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TGList (TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"})))+-- throws : False+-- Skip return : False++foreign import ccall "gst_color_balance_list_channels" gst_color_balance_list_channels :: +    Ptr ColorBalance ->                     -- balance : TInterface (Name {namespace = "GstVideo", name = "ColorBalance"})+    IO (Ptr (GList (Ptr GstVideo.ColorBalanceChannel.ColorBalanceChannel)))++{- |+Retrieve a list of the available channels.+-}+colorBalanceListChannels ::+    (B.CallStack.HasCallStack, MonadIO m, IsColorBalance a) =>+    a+    {- ^ /@balance@/: A 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' instance -}+    -> m [GstVideo.ColorBalanceChannel.ColorBalanceChannel]+    {- ^ __Returns:__ A+         GList containing pointers to 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'+         objects. The list is owned by the 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance'+         instance and must not be freed. -}+colorBalanceListChannels balance = liftIO $ do+    balance' <- unsafeManagedPtrCastPtr balance+    result <- gst_color_balance_list_channels balance'+    result' <- unpackGList result+    result'' <- mapM (newObject GstVideo.ColorBalanceChannel.ColorBalanceChannel) result'+    touchManagedPtr balance+    return result''++#if ENABLE_OVERLOADING+data ColorBalanceListChannelsMethodInfo+instance (signature ~ (m [GstVideo.ColorBalanceChannel.ColorBalanceChannel]), MonadIO m, IsColorBalance a) => O.MethodInfo ColorBalanceListChannelsMethodInfo a signature where+    overloadedMethod _ = colorBalanceListChannels++#endif++-- method ColorBalance::set_value+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "balance", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalance"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalance instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalanceChannel instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new value for the channel.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_color_balance_set_value" gst_color_balance_set_value :: +    Ptr ColorBalance ->                     -- balance : TInterface (Name {namespace = "GstVideo", name = "ColorBalance"})+    Ptr GstVideo.ColorBalanceChannel.ColorBalanceChannel -> -- channel : TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"})+    Int32 ->                                -- value : TBasicType TInt+    IO ()++{- |+Sets the current value of the channel to the passed value, which must+be between min_value and max_value.++See Also: The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'.@/min_value/@ and+        'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'.@/max_value/@ members of the+        'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' object.+-}+colorBalanceSetValue ::+    (B.CallStack.HasCallStack, MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) =>+    a+    {- ^ /@balance@/: A 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' instance -}+    -> b+    {- ^ /@channel@/: A 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' instance -}+    -> Int32+    {- ^ /@value@/: The new value for the channel. -}+    -> m ()+colorBalanceSetValue balance channel value = liftIO $ do+    balance' <- unsafeManagedPtrCastPtr balance+    channel' <- unsafeManagedPtrCastPtr channel+    gst_color_balance_set_value balance' channel' value+    touchManagedPtr balance+    touchManagedPtr channel+    return ()++#if ENABLE_OVERLOADING+data ColorBalanceSetValueMethodInfo+instance (signature ~ (b -> Int32 -> m ()), MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) => O.MethodInfo ColorBalanceSetValueMethodInfo a signature where+    overloadedMethod _ = colorBalanceSetValue++#endif++-- method ColorBalance::value_changed+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "balance", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalance"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalance instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "channel", argType = TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstColorBalanceChannel whose value has changed", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The new value of the channel", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_color_balance_value_changed" gst_color_balance_value_changed :: +    Ptr ColorBalance ->                     -- balance : TInterface (Name {namespace = "GstVideo", name = "ColorBalance"})+    Ptr GstVideo.ColorBalanceChannel.ColorBalanceChannel -> -- channel : TInterface (Name {namespace = "GstVideo", name = "ColorBalanceChannel"})+    Int32 ->                                -- value : TBasicType TInt+    IO ()++{- |+A helper function called by implementations of the GstColorBalance+interface. It fires the 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance'::@/value-changed/@ signal on the+instance, and the 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel'::@/value-changed/@ signal on the+channel object.+-}+colorBalanceValueChanged ::+    (B.CallStack.HasCallStack, MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) =>+    a+    {- ^ /@balance@/: A 'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' instance -}+    -> b+    {- ^ /@channel@/: A 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' whose value has changed -}+    -> Int32+    {- ^ /@value@/: The new value of the channel -}+    -> m ()+colorBalanceValueChanged balance channel value = liftIO $ do+    balance' <- unsafeManagedPtrCastPtr balance+    channel' <- unsafeManagedPtrCastPtr channel+    gst_color_balance_value_changed balance' channel' value+    touchManagedPtr balance+    touchManagedPtr channel+    return ()++#if ENABLE_OVERLOADING+data ColorBalanceValueChangedMethodInfo+instance (signature ~ (b -> Int32 -> m ()), MonadIO m, IsColorBalance a, GstVideo.ColorBalanceChannel.IsColorBalanceChannel b) => O.MethodInfo ColorBalanceValueChangedMethodInfo a signature where+    overloadedMethod _ = colorBalanceValueChanged++#endif++
+ GI/GstVideo/Interfaces/ColorBalance.hs-boot view
@@ -0,0 +1,47 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Interfaces.ColorBalance 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++newtype ColorBalance = ColorBalance (ManagedPtr ColorBalance)+#if ENABLE_OVERLOADING+data ColorBalanceValueChangedSignalInfo+#endif+instance GObject ColorBalance where+class (GObject o, O.IsDescendantOf ColorBalance o) => IsColorBalance o+instance (GObject o, O.IsDescendantOf ColorBalance o) => IsColorBalance o+instance O.HasParentTypes ColorBalance+#if ENABLE_OVERLOADING+data ColorBalanceGetBalanceTypeMethodInfo+#endif+#if ENABLE_OVERLOADING+data ColorBalanceGetValueMethodInfo+#endif+#if ENABLE_OVERLOADING+data ColorBalanceListChannelsMethodInfo+#endif+#if ENABLE_OVERLOADING+data ColorBalanceSetValueMethodInfo+#endif+#if ENABLE_OVERLOADING+data ColorBalanceValueChangedMethodInfo+#endif
+ GI/GstVideo/Interfaces/Navigation.hs view
@@ -0,0 +1,1201 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++The Navigation interface is used for creating and injecting navigation related+events such as mouse button presses, cursor motion and key presses. The associated+library also provides methods for parsing received events, and for sending and+receiving navigation related bus events. One main usecase is DVD menu navigation.++The main parts of the API are:++* The GstNavigation interface, implemented by elements which provide an application+  with the ability to create and inject navigation events into the pipeline.+* GstNavigation event handling API. GstNavigation events are created in response to+  calls on a GstNavigation interface implementation, and sent in the pipeline. Upstream+  elements can use the navigation event API functions to parse the contents of received+  messages.++* GstNavigation message handling API. GstNavigation messages may be sent on the message+  bus to inform applications of navigation related changes in the pipeline, such as the+  mouse moving over a clickable region, or the set of available angles changing.++The GstNavigation message functions provide functions for creating and parsing+custom bus messages for signaling GstNavigation changes.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces.Navigation+    ( ++-- * Exported types+    Navigation(..)                          ,+    noNavigation                            ,+    IsNavigation                            ,+++ -- * Methods+-- ** eventGetType #method:eventGetType#++    navigationEventGetType                  ,+++-- ** eventParseCommand #method:eventParseCommand#++    navigationEventParseCommand             ,+++-- ** eventParseKeyEvent #method:eventParseKeyEvent#++    navigationEventParseKeyEvent            ,+++-- ** eventParseMouseButtonEvent #method:eventParseMouseButtonEvent#++    navigationEventParseMouseButtonEvent    ,+++-- ** eventParseMouseMoveEvent #method:eventParseMouseMoveEvent#++    navigationEventParseMouseMoveEvent      ,+++-- ** messageGetType #method:messageGetType#++    navigationMessageGetType                ,+++-- ** messageNewAnglesChanged #method:messageNewAnglesChanged#++    navigationMessageNewAnglesChanged       ,+++-- ** messageNewCommandsChanged #method:messageNewCommandsChanged#++    navigationMessageNewCommandsChanged     ,+++-- ** messageNewEvent #method:messageNewEvent#++    navigationMessageNewEvent               ,+++-- ** messageNewMouseOver #method:messageNewMouseOver#++    navigationMessageNewMouseOver           ,+++-- ** messageParseAnglesChanged #method:messageParseAnglesChanged#++    navigationMessageParseAnglesChanged     ,+++-- ** messageParseEvent #method:messageParseEvent#++    navigationMessageParseEvent             ,+++-- ** messageParseMouseOver #method:messageParseMouseOver#++    navigationMessageParseMouseOver         ,+++-- ** queryGetType #method:queryGetType#++    navigationQueryGetType                  ,+++-- ** queryNewAngles #method:queryNewAngles#++    navigationQueryNewAngles                ,+++-- ** queryNewCommands #method:queryNewCommands#++    navigationQueryNewCommands              ,+++-- ** queryParseAngles #method:queryParseAngles#++    navigationQueryParseAngles              ,+++-- ** queryParseCommandsLength #method:queryParseCommandsLength#++    navigationQueryParseCommandsLength      ,+++-- ** queryParseCommandsNth #method:queryParseCommandsNth#++    navigationQueryParseCommandsNth         ,+++-- ** querySetAngles #method:querySetAngles#++    navigationQuerySetAngles                ,+++-- ** querySetCommandsv #method:querySetCommandsv#++    navigationQuerySetCommandsv             ,+++-- ** sendCommand #method:sendCommand#++#if ENABLE_OVERLOADING+    NavigationSendCommandMethodInfo         ,+#endif+    navigationSendCommand                   ,+++-- ** sendEvent #method:sendEvent#++#if ENABLE_OVERLOADING+    NavigationSendEventMethodInfo           ,+#endif+    navigationSendEvent                     ,+++-- ** sendKeyEvent #method:sendKeyEvent#++#if ENABLE_OVERLOADING+    NavigationSendKeyEventMethodInfo        ,+#endif+    navigationSendKeyEvent                  ,+++-- ** sendMouseEvent #method:sendMouseEvent#++#if ENABLE_OVERLOADING+    NavigationSendMouseEventMethodInfo      ,+#endif+    navigationSendMouseEvent                ,+++++    ) 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.Gst.Objects.Object as Gst.Object+import qualified GI.Gst.Structs.Event as Gst.Event+import qualified GI.Gst.Structs.Message as Gst.Message+import qualified GI.Gst.Structs.Query as Gst.Query+import qualified GI.Gst.Structs.Structure as Gst.Structure+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- interface Navigation +-- | Memory-managed wrapper type.+newtype Navigation = Navigation (ManagedPtr Navigation)+-- | A convenience alias for `Nothing` :: `Maybe` `Navigation`.+noNavigation :: Maybe Navigation+noNavigation = Nothing++#if ENABLE_OVERLOADING+type instance O.SignalList Navigation = NavigationSignalList+type NavigationSignalList = ('[ ] :: [(Symbol, *)])++#endif++-- | Type class for types which implement `Navigation`.+class ManagedPtrNewtype a => IsNavigation a+instance IsNavigation Navigation+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr Navigation where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing+++#if ENABLE_OVERLOADING+type family ResolveNavigationMethod (t :: Symbol) (o :: *) :: * where+    ResolveNavigationMethod "sendCommand" o = NavigationSendCommandMethodInfo+    ResolveNavigationMethod "sendEvent" o = NavigationSendEventMethodInfo+    ResolveNavigationMethod "sendKeyEvent" o = NavigationSendKeyEventMethodInfo+    ResolveNavigationMethod "sendMouseEvent" o = NavigationSendMouseEventMethodInfo+    ResolveNavigationMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveNavigationMethod t Navigation, O.MethodInfo info Navigation p) => OL.IsLabel t (Navigation -> 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++-- method Navigation::send_command+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "navigation", argType = TInterface (Name {namespace = "GstVideo", name = "Navigation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The navigation interface instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "command", argType = TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The command to issue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_send_command" gst_navigation_send_command :: +    Ptr Navigation ->                       -- navigation : TInterface (Name {namespace = "GstVideo", name = "Navigation"})+    CUInt ->                                -- command : TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"})+    IO ()++{- |+Sends the indicated command to the navigation interface.+-}+navigationSendCommand ::+    (B.CallStack.HasCallStack, MonadIO m, IsNavigation a) =>+    a+    {- ^ /@navigation@/: The navigation interface instance -}+    -> GstVideo.Enums.NavigationCommand+    {- ^ /@command@/: The command to issue -}+    -> m ()+navigationSendCommand navigation command = liftIO $ do+    navigation' <- unsafeManagedPtrCastPtr navigation+    let command' = (fromIntegral . fromEnum) command+    gst_navigation_send_command navigation' command'+    touchManagedPtr navigation+    return ()++#if ENABLE_OVERLOADING+data NavigationSendCommandMethodInfo+instance (signature ~ (GstVideo.Enums.NavigationCommand -> m ()), MonadIO m, IsNavigation a) => O.MethodInfo NavigationSendCommandMethodInfo a signature where+    overloadedMethod _ = navigationSendCommand++#endif++-- method Navigation::send_event+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "navigation", argType = TInterface (Name {namespace = "GstVideo", name = "Navigation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "structure", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_send_event" gst_navigation_send_event :: +    Ptr Navigation ->                       -- navigation : TInterface (Name {namespace = "GstVideo", name = "Navigation"})+    Ptr Gst.Structure.Structure ->          -- structure : TInterface (Name {namespace = "Gst", name = "Structure"})+    IO ()++{- |+/No description available in the introspection data./+-}+navigationSendEvent ::+    (B.CallStack.HasCallStack, MonadIO m, IsNavigation a) =>+    a+    -> Gst.Structure.Structure+    -> m ()+navigationSendEvent navigation structure = liftIO $ do+    navigation' <- unsafeManagedPtrCastPtr navigation+    structure' <- unsafeManagedPtrGetPtr structure+    gst_navigation_send_event navigation' structure'+    touchManagedPtr navigation+    touchManagedPtr structure+    return ()++#if ENABLE_OVERLOADING+data NavigationSendEventMethodInfo+instance (signature ~ (Gst.Structure.Structure -> m ()), MonadIO m, IsNavigation a) => O.MethodInfo NavigationSendEventMethodInfo a signature where+    overloadedMethod _ = navigationSendEvent++#endif++-- method Navigation::send_key_event+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "navigation", argType = TInterface (Name {namespace = "GstVideo", name = "Navigation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The navigation interface instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The type of the key event. Recognised values are \"key-press\" and\n\"key-release\"", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Character representation of the key. This is typically as produced\nby XKeysymToString.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_send_key_event" gst_navigation_send_key_event :: +    Ptr Navigation ->                       -- navigation : TInterface (Name {namespace = "GstVideo", name = "Navigation"})+    CString ->                              -- event : TBasicType TUTF8+    CString ->                              -- key : TBasicType TUTF8+    IO ()++{- |+/No description available in the introspection data./+-}+navigationSendKeyEvent ::+    (B.CallStack.HasCallStack, MonadIO m, IsNavigation a) =>+    a+    {- ^ /@navigation@/: The navigation interface instance -}+    -> T.Text+    {- ^ /@event@/: The type of the key event. Recognised values are \"key-press\" and+\"key-release\" -}+    -> T.Text+    {- ^ /@key@/: Character representation of the key. This is typically as produced+by XKeysymToString. -}+    -> m ()+navigationSendKeyEvent navigation event key = liftIO $ do+    navigation' <- unsafeManagedPtrCastPtr navigation+    event' <- textToCString event+    key' <- textToCString key+    gst_navigation_send_key_event navigation' event' key'+    touchManagedPtr navigation+    freeMem event'+    freeMem key'+    return ()++#if ENABLE_OVERLOADING+data NavigationSendKeyEventMethodInfo+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsNavigation a) => O.MethodInfo NavigationSendKeyEventMethodInfo a signature where+    overloadedMethod _ = navigationSendKeyEvent++#endif++-- method Navigation::send_mouse_event+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "navigation", argType = TInterface (Name {namespace = "GstVideo", name = "Navigation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The navigation interface instance", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The type of mouse event, as a text string. Recognised values are\n\"mouse-button-press\", \"mouse-button-release\" and \"mouse-move\".", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The button number of the button being pressed or released. Pass 0\nfor mouse-move events.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The x coordinate of the mouse event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The y coordinate of the mouse event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_send_mouse_event" gst_navigation_send_mouse_event :: +    Ptr Navigation ->                       -- navigation : TInterface (Name {namespace = "GstVideo", name = "Navigation"})+    CString ->                              -- event : TBasicType TUTF8+    Int32 ->                                -- button : TBasicType TInt+    CDouble ->                              -- x : TBasicType TDouble+    CDouble ->                              -- y : TBasicType TDouble+    IO ()++{- |+Sends a mouse event to the navigation interface. Mouse event coordinates+are sent relative to the display space of the related output area. This is+usually the size in pixels of the window associated with the element+implementing the 'GI.GstVideo.Interfaces.Navigation.Navigation' interface.+-}+navigationSendMouseEvent ::+    (B.CallStack.HasCallStack, MonadIO m, IsNavigation a) =>+    a+    {- ^ /@navigation@/: The navigation interface instance -}+    -> T.Text+    {- ^ /@event@/: The type of mouse event, as a text string. Recognised values are+\"mouse-button-press\", \"mouse-button-release\" and \"mouse-move\". -}+    -> Int32+    {- ^ /@button@/: The button number of the button being pressed or released. Pass 0+for mouse-move events. -}+    -> Double+    {- ^ /@x@/: The x coordinate of the mouse event. -}+    -> Double+    {- ^ /@y@/: The y coordinate of the mouse event. -}+    -> m ()+navigationSendMouseEvent navigation event button x y = liftIO $ do+    navigation' <- unsafeManagedPtrCastPtr navigation+    event' <- textToCString event+    let x' = realToFrac x+    let y' = realToFrac y+    gst_navigation_send_mouse_event navigation' event' button x' y'+    touchManagedPtr navigation+    freeMem event'+    return ()++#if ENABLE_OVERLOADING+data NavigationSendMouseEventMethodInfo+instance (signature ~ (T.Text -> Int32 -> Double -> Double -> m ()), MonadIO m, IsNavigation a) => O.MethodInfo NavigationSendMouseEventMethodInfo a signature where+    overloadedMethod _ = navigationSendMouseEvent++#endif++-- method Navigation::event_get_type+-- method type : MemberFunction+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "NavigationEventType"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_event_get_type" gst_navigation_event_get_type :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    IO CUInt++{- |+Inspect a 'GI.Gst.Structs.Event.Event' and return the 'GI.GstVideo.Enums.NavigationEventType' of the event, or+@/GST_NAVIGATION_EVENT_INVALID/@ if the event is not a 'GI.GstVideo.Interfaces.Navigation.Navigation' event.+-}+navigationEventGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to inspect. -}+    -> m GstVideo.Enums.NavigationEventType+navigationEventGetType event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    result <- gst_navigation_event_get_type event'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr event+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::event_parse_command+-- method type : MemberFunction+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "command", argType = TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to GstNavigationCommand to receive the\n    type of the navigation event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_event_parse_command" gst_navigation_event_parse_command :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr CUInt ->                            -- command : TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"})+    IO CInt++{- |+Inspect a 'GI.GstVideo.Interfaces.Navigation.Navigation' command event and retrieve the enum value of the+associated command.+-}+navigationEventParseCommand ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to inspect. -}+    -> m ((Bool, GstVideo.Enums.NavigationCommand))+    {- ^ __Returns:__ TRUE if the navigation command could be extracted, otherwise FALSE. -}+navigationEventParseCommand event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    command <- allocMem :: IO (Ptr CUInt)+    result <- gst_navigation_event_parse_command event' command+    let result' = (/= 0) result+    command' <- peek command+    let command'' = (toEnum . fromIntegral) command'+    touchManagedPtr event+    freeMem command+    return (result', command'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::event_parse_key_event+-- method type : MemberFunction+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to a location to receive\n    the string identifying the key press. The returned string is owned by the\n    event, and valid only until the event is unreffed.", 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_navigation_event_parse_key_event" gst_navigation_event_parse_key_event :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr CString ->                          -- key : TBasicType TUTF8+    IO CInt++{- |+/No description available in the introspection data./+-}+navigationEventParseKeyEvent ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to inspect. -}+    -> m ((Bool, T.Text))+navigationEventParseKeyEvent event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    key <- allocMem :: IO (Ptr CString)+    result <- gst_navigation_event_parse_key_event event' key+    let result' = (/= 0) result+    key' <- peek key+    key'' <- cstringToText key'+    touchManagedPtr event+    freeMem key+    return (result', key'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::event_parse_mouse_button_event+-- method type : MemberFunction+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a gint that will receive the button\n    number associated with the event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a gdouble to receive the x coordinate of the\n    mouse button event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a gdouble to receive the y coordinate of the\n    mouse button event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_event_parse_mouse_button_event" gst_navigation_event_parse_mouse_button_event :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr Int32 ->                            -- button : TBasicType TInt+    Ptr CDouble ->                          -- x : TBasicType TDouble+    Ptr CDouble ->                          -- y : TBasicType TDouble+    IO CInt++{- |+Retrieve the details of either a 'GI.GstVideo.Interfaces.Navigation.Navigation' mouse button press event or+a mouse button release event. Determine which type the event is using+'GI.GstVideo.Functions.navigationEventGetType' to retrieve the 'GI.GstVideo.Enums.NavigationEventType'.+-}+navigationEventParseMouseButtonEvent ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to inspect. -}+    -> m ((Bool, Int32, Double, Double))+    {- ^ __Returns:__ TRUE if the button number and both coordinates could be extracted,+    otherwise FALSE. -}+navigationEventParseMouseButtonEvent event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    button <- allocMem :: IO (Ptr Int32)+    x <- allocMem :: IO (Ptr CDouble)+    y <- allocMem :: IO (Ptr CDouble)+    result <- gst_navigation_event_parse_mouse_button_event event' button x y+    let result' = (/= 0) result+    button' <- peek button+    x' <- peek x+    let x'' = realToFrac x'+    y' <- peek y+    let y'' = realToFrac y'+    touchManagedPtr event+    freeMem button+    freeMem x+    freeMem y+    return (result', button', x'', y'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::event_parse_mouse_move_event+-- method type : MemberFunction+-- Args : [Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstEvent to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a gdouble to receive the x coordinate of the\n    mouse movement.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a gdouble to receive the y coordinate of the\n    mouse movement.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_event_parse_mouse_move_event" gst_navigation_event_parse_mouse_move_event :: +    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    Ptr CDouble ->                          -- x : TBasicType TDouble+    Ptr CDouble ->                          -- y : TBasicType TDouble+    IO CInt++{- |+Inspect a 'GI.GstVideo.Interfaces.Navigation.Navigation' mouse movement event and extract the coordinates+of the event.+-}+navigationEventParseMouseMoveEvent ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Event.Event+    {- ^ /@event@/: A 'GI.Gst.Structs.Event.Event' to inspect. -}+    -> m ((Bool, Double, Double))+    {- ^ __Returns:__ TRUE if both coordinates could be extracted, otherwise FALSE. -}+navigationEventParseMouseMoveEvent event = liftIO $ do+    event' <- unsafeManagedPtrGetPtr event+    x <- allocMem :: IO (Ptr CDouble)+    y <- allocMem :: IO (Ptr CDouble)+    result <- gst_navigation_event_parse_mouse_move_event event' x y+    let result' = (/= 0) result+    x' <- peek x+    let x'' = realToFrac x'+    y' <- peek y+    let y'' = realToFrac y'+    touchManagedPtr event+    freeMem x+    freeMem y+    return (result', x'', y'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_get_type+-- method type : MemberFunction+-- Args : [Arg {argCName = "message", argType = TInterface (Name {namespace = "Gst", name = "Message"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstMessage to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "NavigationMessageType"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_get_type" gst_navigation_message_get_type :: +    Ptr Gst.Message.Message ->              -- message : TInterface (Name {namespace = "Gst", name = "Message"})+    IO CUInt++{- |+Check a bus message to see if it is a 'GI.GstVideo.Interfaces.Navigation.Navigation' event, and return+the 'GI.GstVideo.Enums.NavigationMessageType' identifying the type of the message if so.+-}+navigationMessageGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Message.Message+    {- ^ /@message@/: A 'GI.Gst.Structs.Message.Message' to inspect. -}+    -> m GstVideo.Enums.NavigationMessageType+    {- ^ __Returns:__ The type of the 'GI.Gst.Structs.Message.Message', or+@/GST_NAVIGATION_MESSAGE_INVALID/@ if the message is not a 'GI.GstVideo.Interfaces.Navigation.Navigation'+notification. -}+navigationMessageGetType message = liftIO $ do+    message' <- unsafeManagedPtrGetPtr message+    result <- gst_navigation_message_get_type message'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr message+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_new_angles_changed+-- method type : MemberFunction+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "Gst", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstObject to set as source of the new message.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cur_angle", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The currently selected angle.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_angles", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The number of viewing angles now available.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Message"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_new_angles_changed" gst_navigation_message_new_angles_changed :: +    Ptr Gst.Object.Object ->                -- src : TInterface (Name {namespace = "Gst", name = "Object"})+    Word32 ->                               -- cur_angle : TBasicType TUInt+    Word32 ->                               -- n_angles : TBasicType TUInt+    IO (Ptr Gst.Message.Message)++{- |+Creates a new 'GI.GstVideo.Interfaces.Navigation.Navigation' message with type+@/GST_NAVIGATION_MESSAGE_ANGLES_CHANGED/@ for notifying an application+that the current angle, or current number of angles available in a+multiangle video has changed.+-}+navigationMessageNewAnglesChanged ::+    (B.CallStack.HasCallStack, MonadIO m, Gst.Object.IsObject a) =>+    a+    {- ^ /@src@/: A 'GI.Gst.Objects.Object.Object' to set as source of the new message. -}+    -> Word32+    {- ^ /@curAngle@/: The currently selected angle. -}+    -> Word32+    {- ^ /@nAngles@/: The number of viewing angles now available. -}+    -> m Gst.Message.Message+    {- ^ __Returns:__ The new 'GI.Gst.Structs.Message.Message'. -}+navigationMessageNewAnglesChanged src curAngle nAngles = liftIO $ do+    src' <- unsafeManagedPtrCastPtr src+    result <- gst_navigation_message_new_angles_changed src' curAngle nAngles+    checkUnexpectedReturnNULL "navigationMessageNewAnglesChanged" result+    result' <- (wrapBoxed Gst.Message.Message) result+    touchManagedPtr src+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_new_commands_changed+-- method type : MemberFunction+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "Gst", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstObject to set as source of the new message.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Message"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_new_commands_changed" gst_navigation_message_new_commands_changed :: +    Ptr Gst.Object.Object ->                -- src : TInterface (Name {namespace = "Gst", name = "Object"})+    IO (Ptr Gst.Message.Message)++{- |+Creates a new 'GI.GstVideo.Interfaces.Navigation.Navigation' message with type+@/GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED/@+-}+navigationMessageNewCommandsChanged ::+    (B.CallStack.HasCallStack, MonadIO m, Gst.Object.IsObject a) =>+    a+    {- ^ /@src@/: A 'GI.Gst.Objects.Object.Object' to set as source of the new message. -}+    -> m Gst.Message.Message+    {- ^ __Returns:__ The new 'GI.Gst.Structs.Message.Message'. -}+navigationMessageNewCommandsChanged src = liftIO $ do+    src' <- unsafeManagedPtrCastPtr src+    result <- gst_navigation_message_new_commands_changed src'+    checkUnexpectedReturnNULL "navigationMessageNewCommandsChanged" result+    result' <- (wrapBoxed Gst.Message.Message) result+    touchManagedPtr src+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_new_event+-- method type : MemberFunction+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "Gst", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstObject to set as source of the new message.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A navigation #GstEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Message"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_new_event" gst_navigation_message_new_event :: +    Ptr Gst.Object.Object ->                -- src : TInterface (Name {namespace = "Gst", name = "Object"})+    Ptr Gst.Event.Event ->                  -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    IO (Ptr Gst.Message.Message)++{- |+Creates a new 'GI.GstVideo.Interfaces.Navigation.Navigation' message with type+@/GST_NAVIGATION_MESSAGE_EVENT/@.++/Since: 1.6/+-}+navigationMessageNewEvent ::+    (B.CallStack.HasCallStack, MonadIO m, Gst.Object.IsObject a) =>+    a+    {- ^ /@src@/: A 'GI.Gst.Objects.Object.Object' to set as source of the new message. -}+    -> Gst.Event.Event+    {- ^ /@event@/: A navigation 'GI.Gst.Structs.Event.Event' -}+    -> m Gst.Message.Message+    {- ^ __Returns:__ The new 'GI.Gst.Structs.Message.Message'. -}+navigationMessageNewEvent src event = liftIO $ do+    src' <- unsafeManagedPtrCastPtr src+    event' <- unsafeManagedPtrGetPtr event+    result <- gst_navigation_message_new_event src' event'+    checkUnexpectedReturnNULL "navigationMessageNewEvent" result+    result' <- (wrapBoxed Gst.Message.Message) result+    touchManagedPtr src+    touchManagedPtr event+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_new_mouse_over+-- method type : MemberFunction+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "Gst", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstObject to set as source of the new message.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "active", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if the mouse has entered a clickable area of the display.\n%FALSE if it over a non-clickable area.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Message"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_new_mouse_over" gst_navigation_message_new_mouse_over :: +    Ptr Gst.Object.Object ->                -- src : TInterface (Name {namespace = "Gst", name = "Object"})+    CInt ->                                 -- active : TBasicType TBoolean+    IO (Ptr Gst.Message.Message)++{- |+Creates a new 'GI.GstVideo.Interfaces.Navigation.Navigation' message with type+@/GST_NAVIGATION_MESSAGE_MOUSE_OVER/@.+-}+navigationMessageNewMouseOver ::+    (B.CallStack.HasCallStack, MonadIO m, Gst.Object.IsObject a) =>+    a+    {- ^ /@src@/: A 'GI.Gst.Objects.Object.Object' to set as source of the new message. -}+    -> Bool+    {- ^ /@active@/: 'True' if the mouse has entered a clickable area of the display.+'False' if it over a non-clickable area. -}+    -> m Gst.Message.Message+    {- ^ __Returns:__ The new 'GI.Gst.Structs.Message.Message'. -}+navigationMessageNewMouseOver src active = liftIO $ do+    src' <- unsafeManagedPtrCastPtr src+    let active' = (fromIntegral . fromEnum) active+    result <- gst_navigation_message_new_mouse_over src' active'+    checkUnexpectedReturnNULL "navigationMessageNewMouseOver" result+    result' <- (wrapBoxed Gst.Message.Message) result+    touchManagedPtr src+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_parse_angles_changed+-- method type : MemberFunction+-- Args : [Arg {argCName = "message", argType = TInterface (Name {namespace = "Gst", name = "Message"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstMessage to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cur_angle", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to a #guint to receive the new\n    current angle number, or NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "n_angles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to a #guint to receive the new angle\n    count, or NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_parse_angles_changed" gst_navigation_message_parse_angles_changed :: +    Ptr Gst.Message.Message ->              -- message : TInterface (Name {namespace = "Gst", name = "Message"})+    Ptr Word32 ->                           -- cur_angle : TBasicType TUInt+    Ptr Word32 ->                           -- n_angles : TBasicType TUInt+    IO CInt++{- |+Parse a 'GI.GstVideo.Interfaces.Navigation.Navigation' message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED+and extract the /@curAngle@/ and /@nAngles@/ parameters.+-}+navigationMessageParseAnglesChanged ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Message.Message+    {- ^ /@message@/: A 'GI.Gst.Structs.Message.Message' to inspect. -}+    -> m ((Bool, Word32, Word32))+    {- ^ __Returns:__ 'True' if the message could be successfully parsed. 'False' if not. -}+navigationMessageParseAnglesChanged message = liftIO $ do+    message' <- unsafeManagedPtrGetPtr message+    curAngle <- allocMem :: IO (Ptr Word32)+    nAngles <- allocMem :: IO (Ptr Word32)+    result <- gst_navigation_message_parse_angles_changed message' curAngle nAngles+    let result' = (/= 0) result+    curAngle' <- peek curAngle+    nAngles' <- peek nAngles+    touchManagedPtr message+    freeMem curAngle+    freeMem nAngles+    return (result', curAngle', nAngles')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_parse_event+-- method type : MemberFunction+-- Args : [Arg {argCName = "message", argType = TInterface (Name {namespace = "Gst", name = "Message"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstMessage to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface (Name {namespace = "Gst", name = "Event"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to a #GstEvent to receive\n    the contained navigation event.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_parse_event" gst_navigation_message_parse_event :: +    Ptr Gst.Message.Message ->              -- message : TInterface (Name {namespace = "Gst", name = "Message"})+    Ptr (Ptr Gst.Event.Event) ->            -- event : TInterface (Name {namespace = "Gst", name = "Event"})+    IO CInt++{- |+Parse a 'GI.GstVideo.Interfaces.Navigation.Navigation' message of type @/GST_NAVIGATION_MESSAGE_EVENT/@+and extract contained 'GI.Gst.Structs.Event.Event'. The caller must unref the /@event@/ when done+with it.++/Since: 1.6/+-}+navigationMessageParseEvent ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Message.Message+    {- ^ /@message@/: A 'GI.Gst.Structs.Message.Message' to inspect. -}+    -> m ((Bool, Gst.Event.Event))+    {- ^ __Returns:__ 'True' if the message could be successfully parsed. 'False' if not. -}+navigationMessageParseEvent message = liftIO $ do+    message' <- unsafeManagedPtrGetPtr message+    event <- allocMem :: IO (Ptr (Ptr Gst.Event.Event))+    result <- gst_navigation_message_parse_event message' event+    let result' = (/= 0) result+    event' <- peek event+    event'' <- (wrapBoxed Gst.Event.Event) event'+    touchManagedPtr message+    freeMem event+    return (result', event'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::message_parse_mouse_over+-- method type : MemberFunction+-- Args : [Arg {argCName = "message", argType = TInterface (Name {namespace = "Gst", name = "Message"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstMessage to inspect.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "active", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A pointer to a gboolean to receive the\n    active/inactive state, or NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_message_parse_mouse_over" gst_navigation_message_parse_mouse_over :: +    Ptr Gst.Message.Message ->              -- message : TInterface (Name {namespace = "Gst", name = "Message"})+    Ptr CInt ->                             -- active : TBasicType TBoolean+    IO CInt++{- |+Parse a 'GI.GstVideo.Interfaces.Navigation.Navigation' message of type @/GST_NAVIGATION_MESSAGE_MOUSE_OVER/@+and extract the active\/inactive flag. If the mouse over event is marked+active, it indicates that the mouse is over a clickable area.+-}+navigationMessageParseMouseOver ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Message.Message+    {- ^ /@message@/: A 'GI.Gst.Structs.Message.Message' to inspect. -}+    -> m ((Bool, Bool))+    {- ^ __Returns:__ 'True' if the message could be successfully parsed. 'False' if not. -}+navigationMessageParseMouseOver message = liftIO $ do+    message' <- unsafeManagedPtrGetPtr message+    active <- allocMem :: IO (Ptr CInt)+    result <- gst_navigation_message_parse_mouse_over message' active+    let result' = (/= 0) result+    active' <- peek active+    let active'' = (/= 0) active'+    touchManagedPtr message+    freeMem active+    return (result', active'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_get_type+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The query to inspect", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "NavigationQueryType"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_get_type" gst_navigation_query_get_type :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    IO CUInt++{- |+Inspect a 'GI.Gst.Structs.Query.Query' and return the 'GI.GstVideo.Enums.NavigationQueryType' associated with+it if it is a 'GI.GstVideo.Interfaces.Navigation.Navigation' query.+-}+navigationQueryGetType ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: The query to inspect -}+    -> m GstVideo.Enums.NavigationQueryType+    {- ^ __Returns:__ The 'GI.GstVideo.Enums.NavigationQueryType' of the query, or+@/GST_NAVIGATION_QUERY_INVALID/@ -}+navigationQueryGetType query = liftIO $ do+    query' <- unsafeManagedPtrGetPtr query+    result <- gst_navigation_query_get_type query'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr query+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_new_angles+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Query"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_new_angles" gst_navigation_query_new_angles :: +    IO (Ptr Gst.Query.Query)++{- |+Create a new 'GI.GstVideo.Interfaces.Navigation.Navigation' angles query. When executed, it will+query the pipeline for the set of currently available angles, which may be+greater than one in a multiangle video.+-}+navigationQueryNewAngles ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.Query.Query+    {- ^ __Returns:__ The new query. -}+navigationQueryNewAngles  = liftIO $ do+    result <- gst_navigation_query_new_angles+    checkUnexpectedReturnNULL "navigationQueryNewAngles" result+    result' <- (wrapBoxed Gst.Query.Query) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_new_commands+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Query"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_new_commands" gst_navigation_query_new_commands :: +    IO (Ptr Gst.Query.Query)++{- |+Create a new 'GI.GstVideo.Interfaces.Navigation.Navigation' commands query. When executed, it will+query the pipeline for the set of currently available commands.+-}+navigationQueryNewCommands ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.Query.Query+    {- ^ __Returns:__ The new query. -}+navigationQueryNewCommands  = liftIO $ do+    result <- gst_navigation_query_new_commands+    checkUnexpectedReturnNULL "navigationQueryNewCommands" result+    result' <- (wrapBoxed Gst.Query.Query) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_parse_angles+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstQuery", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cur_angle", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a #guint into which to store the\n    currently selected angle value from the query, or NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "n_angles", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Pointer to a #guint into which to store the\n    number of angles value from the query, or NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_parse_angles" gst_navigation_query_parse_angles :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    Ptr Word32 ->                           -- cur_angle : TBasicType TUInt+    Ptr Word32 ->                           -- n_angles : TBasicType TUInt+    IO CInt++{- |+Parse the current angle number in the 'GI.GstVideo.Interfaces.Navigation.Navigation' angles /@query@/ into the+@/guint/@ pointed to by the /@curAngle@/ variable, and the number of available+angles into the @/guint/@ pointed to by the /@nAngles@/ variable.+-}+navigationQueryParseAngles ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: a 'GI.Gst.Structs.Query.Query' -}+    -> m ((Bool, Word32, Word32))+    {- ^ __Returns:__ 'True' if the query could be successfully parsed. 'False' if not. -}+navigationQueryParseAngles query = liftIO $ do+    query' <- unsafeManagedPtrGetPtr query+    curAngle <- allocMem :: IO (Ptr Word32)+    nAngles <- allocMem :: IO (Ptr Word32)+    result <- gst_navigation_query_parse_angles query' curAngle nAngles+    let result' = (/= 0) result+    curAngle' <- peek curAngle+    nAngles' <- peek nAngles+    touchManagedPtr query+    freeMem curAngle+    freeMem nAngles+    return (result', curAngle', nAngles')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_parse_commands_length+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstQuery", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_cmds", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of commands in this query.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_parse_commands_length" gst_navigation_query_parse_commands_length :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    Ptr Word32 ->                           -- n_cmds : TBasicType TUInt+    IO CInt++{- |+Parse the number of commands in the 'GI.GstVideo.Interfaces.Navigation.Navigation' commands /@query@/.+-}+navigationQueryParseCommandsLength ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: a 'GI.Gst.Structs.Query.Query' -}+    -> m ((Bool, Word32))+    {- ^ __Returns:__ 'True' if the query could be successfully parsed. 'False' if not. -}+navigationQueryParseCommandsLength query = liftIO $ do+    query' <- unsafeManagedPtrGetPtr query+    nCmds <- allocMem :: IO (Ptr Word32)+    result <- gst_navigation_query_parse_commands_length query' nCmds+    let result' = (/= 0) result+    nCmds' <- peek nCmds+    touchManagedPtr query+    freeMem nCmds+    return (result', nCmds')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_parse_commands_nth+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstQuery", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the nth command to retrieve.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cmd", argType = TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to store the nth command into.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_parse_commands_nth" gst_navigation_query_parse_commands_nth :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    Word32 ->                               -- nth : TBasicType TUInt+    Ptr CUInt ->                            -- cmd : TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"})+    IO CInt++{- |+Parse the 'GI.GstVideo.Interfaces.Navigation.Navigation' command query and retrieve the /@nth@/ command from+it into /@cmd@/. If the list contains less elements than /@nth@/, /@cmd@/ will be+set to @/GST_NAVIGATION_COMMAND_INVALID/@.+-}+navigationQueryParseCommandsNth ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: a 'GI.Gst.Structs.Query.Query' -}+    -> Word32+    {- ^ /@nth@/: the nth command to retrieve. -}+    -> m ((Bool, GstVideo.Enums.NavigationCommand))+    {- ^ __Returns:__ 'True' if the query could be successfully parsed. 'False' if not. -}+navigationQueryParseCommandsNth query nth = liftIO $ do+    query' <- unsafeManagedPtrGetPtr query+    cmd <- allocMem :: IO (Ptr CUInt)+    result <- gst_navigation_query_parse_commands_nth query' nth cmd+    let result' = (/= 0) result+    cmd' <- peek cmd+    let cmd'' = (toEnum . fromIntegral) cmd'+    touchManagedPtr query+    freeMem cmd+    return (result', cmd'')++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_set_angles+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstQuery", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cur_angle", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the current viewing angle to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_angles", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of viewing angles to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_set_angles" gst_navigation_query_set_angles :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    Word32 ->                               -- cur_angle : TBasicType TUInt+    Word32 ->                               -- n_angles : TBasicType TUInt+    IO ()++{- |+Set the 'GI.GstVideo.Interfaces.Navigation.Navigation' angles query result field in /@query@/.+-}+navigationQuerySetAngles ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: a 'GI.Gst.Structs.Query.Query' -}+    -> Word32+    {- ^ /@curAngle@/: the current viewing angle to set. -}+    -> Word32+    {- ^ /@nAngles@/: the number of viewing angles to set. -}+    -> m ()+navigationQuerySetAngles query curAngle nAngles = liftIO $ do+    query' <- unsafeManagedPtrGetPtr query+    gst_navigation_query_set_angles query' curAngle nAngles+    touchManagedPtr query+    return ()++#if ENABLE_OVERLOADING+#endif++-- method Navigation::query_set_commandsv+-- method type : MemberFunction+-- Args : [Arg {argCName = "query", argType = TInterface (Name {namespace = "Gst", name = "Query"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstQuery", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_cmds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of commands to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cmds", argType = TCArray False (-1) 1 (TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An array containing @n_cmds\n    @GstNavigationCommand values.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "n_cmds", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of commands to set.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_navigation_query_set_commandsv" gst_navigation_query_set_commandsv :: +    Ptr Gst.Query.Query ->                  -- query : TInterface (Name {namespace = "Gst", name = "Query"})+    Int32 ->                                -- n_cmds : TBasicType TInt+    Ptr CUInt ->                            -- cmds : TCArray False (-1) 1 (TInterface (Name {namespace = "GstVideo", name = "NavigationCommand"}))+    IO ()++{- |+Set the 'GI.GstVideo.Interfaces.Navigation.Navigation' command query result fields in /@query@/. The number+of commands passed must be equal to /@nCommands@/.+-}+navigationQuerySetCommandsv ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Query.Query+    {- ^ /@query@/: a 'GI.Gst.Structs.Query.Query' -}+    -> [GstVideo.Enums.NavigationCommand]+    {- ^ /@cmds@/: An array containing /@nCmds@/+    /@gstNavigationCommand@/ values. -}+    -> m ()+navigationQuerySetCommandsv query cmds = liftIO $ do+    let nCmds = fromIntegral $ length cmds+    query' <- unsafeManagedPtrGetPtr query+    let cmds' = map (fromIntegral . fromEnum) cmds+    cmds'' <- packStorableArray cmds'+    gst_navigation_query_set_commandsv query' nCmds cmds''+    touchManagedPtr query+    freeMem cmds''+    return ()++#if ENABLE_OVERLOADING+#endif++
+ GI/GstVideo/Interfaces/Navigation.hs-boot view
@@ -0,0 +1,39 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Interfaces.Navigation 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++newtype Navigation = Navigation (ManagedPtr Navigation)+class ManagedPtrNewtype a => IsNavigation a+instance WrappedPtr Navigation where+#if ENABLE_OVERLOADING+data NavigationSendCommandMethodInfo+#endif+#if ENABLE_OVERLOADING+data NavigationSendEventMethodInfo+#endif+#if ENABLE_OVERLOADING+data NavigationSendKeyEventMethodInfo+#endif+#if ENABLE_OVERLOADING+data NavigationSendMouseEventMethodInfo+#endif
+ GI/GstVideo/Interfaces/VideoDirection.hs view
@@ -0,0 +1,194 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++The interface allows unified access to control flipping and rotation+operations of video-sources or operators.++/Since: 1.10/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces.VideoDirection+    ( ++-- * Exported types+    VideoDirection(..)                      ,+    noVideoDirection                        ,+    IsVideoDirection                        ,+    toVideoDirection                        ,+++ -- * Properties+-- ** videoDirection #attr:videoDirection#+{- | /No description available in the introspection data./+-}+#if ENABLE_OVERLOADING+    VideoDirectionVideoDirectionPropertyInfo,+#endif+    constructVideoDirectionVideoDirection   ,+    getVideoDirectionVideoDirection         ,+    setVideoDirectionVideoDirection         ,+#if ENABLE_OVERLOADING+    videoDirectionVideoDirection            ,+#endif+++++    ) 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.GstVideo.Enums as GstVideo.Enums++-- interface VideoDirection +-- | Memory-managed wrapper type.+newtype VideoDirection = VideoDirection (ManagedPtr VideoDirection)+-- | A convenience alias for `Nothing` :: `Maybe` `VideoDirection`.+noVideoDirection :: Maybe VideoDirection+noVideoDirection = Nothing++#if ENABLE_OVERLOADING+type instance O.SignalList VideoDirection = VideoDirectionSignalList+type VideoDirectionSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])++#endif++foreign import ccall "gst_video_direction_get_type"+    c_gst_video_direction_get_type :: IO GType++instance GObject VideoDirection where+    gobjectType = c_gst_video_direction_get_type+    ++-- | Type class for types which can be safely cast to `VideoDirection`, for instance with `toVideoDirection`.+class (GObject o, O.IsDescendantOf VideoDirection o) => IsVideoDirection o+instance (GObject o, O.IsDescendantOf VideoDirection o) => IsVideoDirection o++instance O.HasParentTypes VideoDirection+type instance O.ParentTypes VideoDirection = '[GObject.Object.Object]++-- | Cast to `VideoDirection`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoDirection :: (MonadIO m, IsVideoDirection o) => o -> m VideoDirection+toVideoDirection = liftIO . unsafeCastTo VideoDirection++-- VVV Prop "video-direction"+   -- Type: TInterface (Name {namespace = "GstVideo", name = "VideoOrientationMethod"})+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@video-direction@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoDirection #videoDirection+@+-}+getVideoDirectionVideoDirection :: (MonadIO m, IsVideoDirection o) => o -> m GstVideo.Enums.VideoOrientationMethod+getVideoDirectionVideoDirection obj = liftIO $ B.Properties.getObjectPropertyEnum obj "video-direction"++{- |+Set the value of the “@video-direction@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoDirection [ #videoDirection 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoDirectionVideoDirection :: (MonadIO m, IsVideoDirection o) => o -> GstVideo.Enums.VideoOrientationMethod -> m ()+setVideoDirectionVideoDirection obj val = liftIO $ B.Properties.setObjectPropertyEnum obj "video-direction" val++{- |+Construct a `GValueConstruct` with valid value for the “@video-direction@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoDirectionVideoDirection :: (IsVideoDirection o) => GstVideo.Enums.VideoOrientationMethod -> IO (GValueConstruct o)+constructVideoDirectionVideoDirection val = B.Properties.constructObjectPropertyEnum "video-direction" val++#if ENABLE_OVERLOADING+data VideoDirectionVideoDirectionPropertyInfo+instance AttrInfo VideoDirectionVideoDirectionPropertyInfo where+    type AttrAllowedOps VideoDirectionVideoDirectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint VideoDirectionVideoDirectionPropertyInfo = (~) GstVideo.Enums.VideoOrientationMethod+    type AttrBaseTypeConstraint VideoDirectionVideoDirectionPropertyInfo = IsVideoDirection+    type AttrGetType VideoDirectionVideoDirectionPropertyInfo = GstVideo.Enums.VideoOrientationMethod+    type AttrLabel VideoDirectionVideoDirectionPropertyInfo = "video-direction"+    type AttrOrigin VideoDirectionVideoDirectionPropertyInfo = VideoDirection+    attrGet _ = getVideoDirectionVideoDirection+    attrSet _ = setVideoDirectionVideoDirection+    attrConstruct _ = constructVideoDirectionVideoDirection+    attrClear _ = undefined+#endif++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoDirection+type instance O.AttributeList VideoDirection = VideoDirectionAttributeList+type VideoDirectionAttributeList = ('[ '("videoDirection", VideoDirectionVideoDirectionPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+videoDirectionVideoDirection :: AttrLabelProxy "videoDirection"+videoDirectionVideoDirection = AttrLabelProxy++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoDirectionMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoDirectionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoDirectionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoDirectionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoDirectionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoDirectionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoDirectionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoDirectionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoDirectionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoDirectionMethod "ref" o = GObject.Object.ObjectRefMethodInfo+    ResolveVideoDirectionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoDirectionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoDirectionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoDirectionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoDirectionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoDirectionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo+    ResolveVideoDirectionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoDirectionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoDirectionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoDirectionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoDirectionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoDirectionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoDirectionMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoDirectionMethod t VideoDirection, O.MethodInfo info VideoDirection p) => OL.IsLabel t (VideoDirection -> 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++
+ GI/GstVideo/Interfaces/VideoDirection.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Interfaces.VideoDirection 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++newtype VideoDirection = VideoDirection (ManagedPtr VideoDirection)+instance GObject VideoDirection where+class (GObject o, O.IsDescendantOf VideoDirection o) => IsVideoDirection o+instance (GObject o, O.IsDescendantOf VideoDirection o) => IsVideoDirection o+instance O.HasParentTypes VideoDirection+#if ENABLE_OVERLOADING+data VideoDirectionVideoDirectionPropertyInfo+#endif
+ GI/GstVideo/Interfaces/VideoOrientation.hs view
@@ -0,0 +1,470 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++The interface allows unified access to control flipping and autocenter+operation of video-sources or operators.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces.VideoOrientation+    ( ++-- * Exported types+    VideoOrientation(..)                    ,+    noVideoOrientation                      ,+    IsVideoOrientation                      ,+++ -- * Methods+-- ** getHcenter #method:getHcenter#++#if ENABLE_OVERLOADING+    VideoOrientationGetHcenterMethodInfo    ,+#endif+    videoOrientationGetHcenter              ,+++-- ** getHflip #method:getHflip#++#if ENABLE_OVERLOADING+    VideoOrientationGetHflipMethodInfo      ,+#endif+    videoOrientationGetHflip                ,+++-- ** getVcenter #method:getVcenter#++#if ENABLE_OVERLOADING+    VideoOrientationGetVcenterMethodInfo    ,+#endif+    videoOrientationGetVcenter              ,+++-- ** getVflip #method:getVflip#++#if ENABLE_OVERLOADING+    VideoOrientationGetVflipMethodInfo      ,+#endif+    videoOrientationGetVflip                ,+++-- ** setHcenter #method:setHcenter#++#if ENABLE_OVERLOADING+    VideoOrientationSetHcenterMethodInfo    ,+#endif+    videoOrientationSetHcenter              ,+++-- ** setHflip #method:setHflip#++#if ENABLE_OVERLOADING+    VideoOrientationSetHflipMethodInfo      ,+#endif+    videoOrientationSetHflip                ,+++-- ** setVcenter #method:setVcenter#++#if ENABLE_OVERLOADING+    VideoOrientationSetVcenterMethodInfo    ,+#endif+    videoOrientationSetVcenter              ,+++-- ** setVflip #method:setVflip#++#if ENABLE_OVERLOADING+    VideoOrientationSetVflipMethodInfo      ,+#endif+    videoOrientationSetVflip                ,+++++    ) 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+++-- interface VideoOrientation +-- | Memory-managed wrapper type.+newtype VideoOrientation = VideoOrientation (ManagedPtr VideoOrientation)+-- | A convenience alias for `Nothing` :: `Maybe` `VideoOrientation`.+noVideoOrientation :: Maybe VideoOrientation+noVideoOrientation = Nothing++#if ENABLE_OVERLOADING+type instance O.SignalList VideoOrientation = VideoOrientationSignalList+type VideoOrientationSignalList = ('[ ] :: [(Symbol, *)])++#endif++-- | Type class for types which implement `VideoOrientation`.+class ManagedPtrNewtype a => IsVideoOrientation a+instance IsVideoOrientation VideoOrientation+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoOrientation where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing+++#if ENABLE_OVERLOADING+type family ResolveVideoOrientationMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoOrientationMethod "getHcenter" o = VideoOrientationGetHcenterMethodInfo+    ResolveVideoOrientationMethod "getHflip" o = VideoOrientationGetHflipMethodInfo+    ResolveVideoOrientationMethod "getVcenter" o = VideoOrientationGetVcenterMethodInfo+    ResolveVideoOrientationMethod "getVflip" o = VideoOrientationGetVflipMethodInfo+    ResolveVideoOrientationMethod "setHcenter" o = VideoOrientationSetHcenterMethodInfo+    ResolveVideoOrientationMethod "setHflip" o = VideoOrientationSetHflipMethodInfo+    ResolveVideoOrientationMethod "setVcenter" o = VideoOrientationSetVcenterMethodInfo+    ResolveVideoOrientationMethod "setVflip" o = VideoOrientationSetVflipMethodInfo+    ResolveVideoOrientationMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoOrientationMethod t VideoOrientation, O.MethodInfo info VideoOrientation p) => OL.IsLabel t (VideoOrientation -> 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++-- method VideoOrientation::get_hcenter+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "center", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_orientation_get_hcenter" gst_video_orientation_get_hcenter :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Ptr Int32 ->                            -- center : TBasicType TInt+    IO CInt++{- |+Get the horizontal centering offset from the given object.+-}+videoOrientationGetHcenter ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> m ((Bool, Int32))+    {- ^ __Returns:__ 'True' in case the element supports centering -}+videoOrientationGetHcenter videoOrientation = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    center <- allocMem :: IO (Ptr Int32)+    result <- gst_video_orientation_get_hcenter videoOrientation' center+    let result' = (/= 0) result+    center' <- peek center+    touchManagedPtr videoOrientation+    freeMem center+    return (result', center')++#if ENABLE_OVERLOADING+data VideoOrientationGetHcenterMethodInfo+instance (signature ~ (m ((Bool, Int32))), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationGetHcenterMethodInfo a signature where+    overloadedMethod _ = videoOrientationGetHcenter++#endif++-- method VideoOrientation::get_hflip+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flip", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_orientation_get_hflip" gst_video_orientation_get_hflip :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Ptr CInt ->                             -- flip : TBasicType TBoolean+    IO CInt++{- |+Get the horizontal flipping state ('True' for flipped) from the given object.+-}+videoOrientationGetHflip ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> m ((Bool, Bool))+    {- ^ __Returns:__ 'True' in case the element supports flipping -}+videoOrientationGetHflip videoOrientation = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    flip <- allocMem :: IO (Ptr CInt)+    result <- gst_video_orientation_get_hflip videoOrientation' flip+    let result' = (/= 0) result+    flip' <- peek flip+    let flip'' = (/= 0) flip'+    touchManagedPtr videoOrientation+    freeMem flip+    return (result', flip'')++#if ENABLE_OVERLOADING+data VideoOrientationGetHflipMethodInfo+instance (signature ~ (m ((Bool, Bool))), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationGetHflipMethodInfo a signature where+    overloadedMethod _ = videoOrientationGetHflip++#endif++-- method VideoOrientation::get_vcenter+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "center", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_orientation_get_vcenter" gst_video_orientation_get_vcenter :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Ptr Int32 ->                            -- center : TBasicType TInt+    IO CInt++{- |+Get the vertical centering offset from the given object.+-}+videoOrientationGetVcenter ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> m ((Bool, Int32))+    {- ^ __Returns:__ 'True' in case the element supports centering -}+videoOrientationGetVcenter videoOrientation = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    center <- allocMem :: IO (Ptr Int32)+    result <- gst_video_orientation_get_vcenter videoOrientation' center+    let result' = (/= 0) result+    center' <- peek center+    touchManagedPtr videoOrientation+    freeMem center+    return (result', center')++#if ENABLE_OVERLOADING+data VideoOrientationGetVcenterMethodInfo+instance (signature ~ (m ((Bool, Int32))), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationGetVcenterMethodInfo a signature where+    overloadedMethod _ = videoOrientationGetVcenter++#endif++-- method VideoOrientation::get_vflip+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flip", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the result", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_orientation_get_vflip" gst_video_orientation_get_vflip :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Ptr CInt ->                             -- flip : TBasicType TBoolean+    IO CInt++{- |+Get the vertical flipping state ('True' for flipped) from the given object.+-}+videoOrientationGetVflip ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> m ((Bool, Bool))+    {- ^ __Returns:__ 'True' in case the element supports flipping -}+videoOrientationGetVflip videoOrientation = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    flip <- allocMem :: IO (Ptr CInt)+    result <- gst_video_orientation_get_vflip videoOrientation' flip+    let result' = (/= 0) result+    flip' <- peek flip+    let flip'' = (/= 0) flip'+    touchManagedPtr videoOrientation+    freeMem flip+    return (result', flip'')++#if ENABLE_OVERLOADING+data VideoOrientationGetVflipMethodInfo+instance (signature ~ (m ((Bool, Bool))), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationGetVflipMethodInfo a signature where+    overloadedMethod _ = videoOrientationGetVflip++#endif++-- method VideoOrientation::set_hcenter+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "center", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "centering offset", 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_video_orientation_set_hcenter" gst_video_orientation_set_hcenter :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Int32 ->                                -- center : TBasicType TInt+    IO CInt++{- |+Set the horizontal centering offset for the given object.+-}+videoOrientationSetHcenter ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> Int32+    {- ^ /@center@/: centering offset -}+    -> m Bool+    {- ^ __Returns:__ 'True' in case the element supports centering -}+videoOrientationSetHcenter videoOrientation center = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    result <- gst_video_orientation_set_hcenter videoOrientation' center+    let result' = (/= 0) result+    touchManagedPtr videoOrientation+    return result'++#if ENABLE_OVERLOADING+data VideoOrientationSetHcenterMethodInfo+instance (signature ~ (Int32 -> m Bool), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationSetHcenterMethodInfo a signature where+    overloadedMethod _ = videoOrientationSetHcenter++#endif++-- method VideoOrientation::set_hflip+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flip", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "use flipping", 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_video_orientation_set_hflip" gst_video_orientation_set_hflip :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    CInt ->                                 -- flip : TBasicType TBoolean+    IO CInt++{- |+Set the horizontal flipping state ('True' for flipped) for the given object.+-}+videoOrientationSetHflip ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> Bool+    {- ^ /@flip@/: use flipping -}+    -> m Bool+    {- ^ __Returns:__ 'True' in case the element supports flipping -}+videoOrientationSetHflip videoOrientation flip = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    let flip' = (fromIntegral . fromEnum) flip+    result <- gst_video_orientation_set_hflip videoOrientation' flip'+    let result' = (/= 0) result+    touchManagedPtr videoOrientation+    return result'++#if ENABLE_OVERLOADING+data VideoOrientationSetHflipMethodInfo+instance (signature ~ (Bool -> m Bool), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationSetHflipMethodInfo a signature where+    overloadedMethod _ = videoOrientationSetHflip++#endif++-- method VideoOrientation::set_vcenter+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "center", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "centering offset", 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_video_orientation_set_vcenter" gst_video_orientation_set_vcenter :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    Int32 ->                                -- center : TBasicType TInt+    IO CInt++{- |+Set the vertical centering offset for the given object.+-}+videoOrientationSetVcenter ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> Int32+    {- ^ /@center@/: centering offset -}+    -> m Bool+    {- ^ __Returns:__ 'True' in case the element supports centering -}+videoOrientationSetVcenter videoOrientation center = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    result <- gst_video_orientation_set_vcenter videoOrientation' center+    let result' = (/= 0) result+    touchManagedPtr videoOrientation+    return result'++#if ENABLE_OVERLOADING+data VideoOrientationSetVcenterMethodInfo+instance (signature ~ (Int32 -> m Bool), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationSetVcenterMethodInfo a signature where+    overloadedMethod _ = videoOrientationSetVcenter++#endif++-- method VideoOrientation::set_vflip+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "video_orientation", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoOrientation interface of a #GstElement", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flip", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "use flipping", 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_video_orientation_set_vflip" gst_video_orientation_set_vflip :: +    Ptr VideoOrientation ->                 -- video_orientation : TInterface (Name {namespace = "GstVideo", name = "VideoOrientation"})+    CInt ->                                 -- flip : TBasicType TBoolean+    IO CInt++{- |+Set the vertical flipping state ('True' for flipped) for the given object.+-}+videoOrientationSetVflip ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOrientation a) =>+    a+    {- ^ /@videoOrientation@/: 'GI.GstVideo.Interfaces.VideoOrientation.VideoOrientation' interface of a 'GI.Gst.Objects.Element.Element' -}+    -> Bool+    {- ^ /@flip@/: use flipping -}+    -> m Bool+    {- ^ __Returns:__ 'True' in case the element supports flipping -}+videoOrientationSetVflip videoOrientation flip = liftIO $ do+    videoOrientation' <- unsafeManagedPtrCastPtr videoOrientation+    let flip' = (fromIntegral . fromEnum) flip+    result <- gst_video_orientation_set_vflip videoOrientation' flip'+    let result' = (/= 0) result+    touchManagedPtr videoOrientation+    return result'++#if ENABLE_OVERLOADING+data VideoOrientationSetVflipMethodInfo+instance (signature ~ (Bool -> m Bool), MonadIO m, IsVideoOrientation a) => O.MethodInfo VideoOrientationSetVflipMethodInfo a signature where+    overloadedMethod _ = videoOrientationSetVflip++#endif++
+ GI/GstVideo/Interfaces/VideoOrientation.hs-boot view
@@ -0,0 +1,51 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Interfaces.VideoOrientation 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++newtype VideoOrientation = VideoOrientation (ManagedPtr VideoOrientation)+class ManagedPtrNewtype a => IsVideoOrientation a+instance WrappedPtr VideoOrientation where+#if ENABLE_OVERLOADING+data VideoOrientationGetHcenterMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationGetHflipMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationGetVcenterMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationGetVflipMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationSetHcenterMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationSetHflipMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationSetVcenterMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOrientationSetVflipMethodInfo+#endif
+ GI/GstVideo/Interfaces/VideoOverlay.hs view
@@ -0,0 +1,695 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++The 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' interface is used for 2 main purposes :++* To get a grab on the Window where the video sink element is going to render.+  This is achieved by either being informed about the Window identifier that+  the video sink element generated, or by forcing the video sink element to use+  a specific Window identifier for rendering.+* To force a redrawing of the latest video frame the video sink element+  displayed on the Window. Indeed if the 'GI.Gst.Objects.Pipeline.Pipeline' is in @/GST_STATE_PAUSED/@+  state, moving the Window around will damage its content. Application+  developers will want to handle the Expose events themselves and force the+  video sink element to refresh the Window\'s content.++Using the Window created by the video sink is probably the simplest scenario,+in some cases, though, it might not be flexible enough for application+developers if they need to catch events such as mouse moves and button+clicks.++Setting a specific Window identifier on the video sink element is the most+flexible solution but it has some issues. Indeed the application needs to set+its Window identifier at the right time to avoid internal Window creation+from the video sink element. To solve this issue a 'GI.Gst.Structs.Message.Message' is posted on+the bus to inform the application that it should set the Window identifier+immediately. Here is an example on how to do that correctly:+>+>static GstBusSyncReply+>create_window (GstBus * bus, GstMessage * message, GstPipeline * pipeline)+>{+> // ignore anything but 'prepare-window-handle' element messages+> if (!gst_is_video_overlay_prepare_window_handle_message (message))+>   return GST_BUS_PASS;+>+> win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0);+>+> XSetWindowBackgroundPixmap (disp, win, None);+>+> XMapRaised (disp, win);+>+> XSync (disp, FALSE);+>+> gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message)),+>     win);+>+> gst_message_unref (message);+>+> return GST_BUS_DROP;+>}+>...+>int+>main (int argc, char **argv)+>{+>...+> bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));+> gst_bus_set_sync_handler (bus, (GstBusSyncHandler) create_window, pipeline,+>        NULL);+>...+>}+++== Two basic usage scenarios++There are two basic usage scenarios: in the simplest case, the application+uses @/playbin/@ or @/plasink/@ or knows exactly what particular element is used+for video output, which is usually the case when the application creates+the videosink to use (e.g. @/xvimagesink/@, @/ximagesink/@, etc.) itself; in this+case, the application can just create the videosink element, create and+realize the window to render the video on and then+call 'GI.GstVideo.Interfaces.VideoOverlay.videoOverlaySetWindowHandle' directly with the XID or native+window handle, before starting up the pipeline.+As @/playbin/@ and @/playsink/@ implement the video overlay interface and proxy+it transparently to the actual video sink even if it is created later, this+case also applies when using these elements.++In the other and more common case, the application does not know in advance+what GStreamer video sink element will be used for video output. This is+usually the case when an element such as @/autovideosink/@ is used.+In this case, the video sink element itself is created+asynchronously from a GStreamer streaming thread some time after the+pipeline has been started up. When that happens, however, the video sink+will need to know right then whether to render onto an already existing+application window or whether to create its own window. This is when it+posts a prepare-window-handle message, and that is also why this message needs+to be handled in a sync bus handler which will be called from the streaming+thread directly (because the video sink will need an answer right then).++As response to the prepare-window-handle element message in the bus sync+handler, the application may use 'GI.GstVideo.Interfaces.VideoOverlay.videoOverlaySetWindowHandle' to tell+the video sink to render onto an existing window surface. At this point the+application should already have obtained the window handle \/ XID, so it+just needs to set it. It is generally not advisable to call any GUI toolkit+functions or window system functions from the streaming thread in which the+prepare-window-handle message is handled, because most GUI toolkits and+windowing systems are not thread-safe at all and a lot of care would be+required to co-ordinate the toolkit and window system calls of the+different threads (Gtk+ users please note: prior to Gtk+ 2.18+@/GDK_WINDOW_XID()/@ was just a simple structure access, so generally fine to do+within the bus sync handler; this macro was changed to a function call in+Gtk+ 2.18 and later, which is likely to cause problems when called from a+sync handler; see below for a better approach without @/GDK_WINDOW_XID()/@+used in the callback).++== GstVideoOverlay and Gtk+++>+>#include &lt;gst/video/videooverlay.h&gt;+>#include &lt;gtk/gtk.h&gt;+>#ifdef GDK_WINDOWING_X11+>#include &lt;gdk/gdkx.h&gt;  // for GDK_WINDOW_XID+>#endif+>#ifdef GDK_WINDOWING_WIN32+>#include &lt;gdk/gdkwin32.h&gt;  // for GDK_WINDOW_HWND+>#endif+>...+>static guintptr video_window_handle = 0;+>...+>static GstBusSyncReply+>bus_sync_handler (GstBus * bus, GstMessage * message, gpointer user_data)+>{+> // ignore anything but 'prepare-window-handle' element messages+> if (!gst_is_video_overlay_prepare_window_handle_message (message))+>   return GST_BUS_PASS;+>+> if (video_window_handle != 0) {+>   GstVideoOverlay *overlay;+>+>   // GST_MESSAGE_SRC (message) will be the video sink element+>   overlay = GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message));+>   gst_video_overlay_set_window_handle (overlay, video_window_handle);+> } else {+>   g_warning ("Should have obtained video_window_handle by now!");+> }+>+> gst_message_unref (message);+> return GST_BUS_DROP;+>}+>...+>static void+>video_widget_realize_cb (GtkWidget * widget, gpointer data)+>{+>#if GTK_CHECK_VERSION(2,18,0)+>  // Tell Gtk+/Gdk to create a native window for this widget instead of+>  // drawing onto the parent widget.+>  // This is here just for pedagogical purposes, GDK_WINDOW_XID will call+>  // it as well in newer Gtk versions+>  if (!gdk_window_ensure_native (widget->window))+>    g_error ("Couldn't create native window needed for GstVideoOverlay!");+>#endif+>+>#ifdef GDK_WINDOWING_X11+>  {+>    gulong xid = GDK_WINDOW_XID (gtk_widget_get_window (video_window));+>    video_window_handle = xid;+>  }+>#endif+>#ifdef GDK_WINDOWING_WIN32+>  {+>    HWND wnd = GDK_WINDOW_HWND (gtk_widget_get_window (video_window));+>    video_window_handle = (guintptr) wnd;+>  }+>#endif+>}+>...+>int+>main (int argc, char **argv)+>{+>  GtkWidget *video_window;+>  GtkWidget *app_window;+>  ...+>  app_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);+>  ...+>  video_window = gtk_drawing_area_new ();+>  g_signal_connect (video_window, "realize",+>      G_CALLBACK (video_widget_realize_cb), NULL);+>  gtk_widget_set_double_buffered (video_window, FALSE);+>  ...+>  // usually the video_window will not be directly embedded into the+>  // application window like this, but there will be many other widgets+>  // and the video window will be embedded in one of them instead+>  gtk_container_add (GTK_CONTAINER (ap_window), video_window);+>  ...+>  // show the GUI+>  gtk_widget_show_all (app_window);+>+>  // realize window now so that the video window gets created and we can+>  // obtain its XID/HWND before the pipeline is started up and the videosink+>  // asks for the XID/HWND of the window to render onto+>  gtk_widget_realize (video_window);+>+>  // we should have the XID/HWND now+>  g_assert (video_window_handle != 0);+>  ...+>  // set up sync handler for setting the xid once the pipeline is started+>  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));+>  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, NULL,+>      NULL);+>  gst_object_unref (bus);+>  ...+>  gst_element_set_state (pipeline, GST_STATE_PLAYING);+>  ...+>}+++== GstVideoOverlay and Qt++>+>#include &lt;glib.h&gt;+>#include &lt;gst/gst.h&gt;+>#include &lt;gst/video/videooverlay.h&gt;+>+>#include &lt;QApplication&gt;+>#include &lt;QTimer&gt;+>#include &lt;QWidget&gt;+>+>int main(int argc, char *argv[])+>{+>  if (!g_thread_supported ())+>    g_thread_init (NULL);+>+>  gst_init (&argc, &argv);+>  QApplication app(argc, argv);+>  app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit ()));+>+>  // prepare the pipeline+>+>  GstElement *pipeline = gst_pipeline_new ("xvoverlay");+>  GstElement *src = gst_element_factory_make ("videotestsrc", NULL);+>  GstElement *sink = gst_element_factory_make ("xvimagesink", NULL);+>  gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);+>  gst_element_link (src, sink);+>+>  // prepare the ui+>+>  QWidget window;+>  window.resize(320, 240);+>  window.show();+>+>  WId xwinid = window.winId();+>  gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink), xwinid);+>+>  // run the pipeline+>+>  GstStateChangeReturn sret = gst_element_set_state (pipeline,+>      GST_STATE_PLAYING);+>  if (sret == GST_STATE_CHANGE_FAILURE) {+>    gst_element_set_state (pipeline, GST_STATE_NULL);+>    gst_object_unref (pipeline);+>    // Exit application+>    QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit()));+>  }+>+>  int ret = app.exec();+>+>  window.hide();+>  gst_element_set_state (pipeline, GST_STATE_NULL);+>  gst_object_unref (pipeline);+>+>  return ret;+>}++-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Interfaces.VideoOverlay+    ( ++-- * Exported types+    VideoOverlay(..)                        ,+    noVideoOverlay                          ,+    IsVideoOverlay                          ,+++ -- * Methods+-- ** expose #method:expose#++#if ENABLE_OVERLOADING+    VideoOverlayExposeMethodInfo            ,+#endif+    videoOverlayExpose                      ,+++-- ** gotWindowHandle #method:gotWindowHandle#++#if ENABLE_OVERLOADING+    VideoOverlayGotWindowHandleMethodInfo   ,+#endif+    videoOverlayGotWindowHandle             ,+++-- ** handleEvents #method:handleEvents#++#if ENABLE_OVERLOADING+    VideoOverlayHandleEventsMethodInfo      ,+#endif+    videoOverlayHandleEvents                ,+++-- ** prepareWindowHandle #method:prepareWindowHandle#++#if ENABLE_OVERLOADING+    VideoOverlayPrepareWindowHandleMethodInfo,+#endif+    videoOverlayPrepareWindowHandle         ,+++-- ** setProperty #method:setProperty#++    videoOverlaySetProperty                 ,+++-- ** setRenderRectangle #method:setRenderRectangle#++#if ENABLE_OVERLOADING+    VideoOverlaySetRenderRectangleMethodInfo,+#endif+    videoOverlaySetRenderRectangle          ,+++-- ** setWindowHandle #method:setWindowHandle#++#if ENABLE_OVERLOADING+    VideoOverlaySetWindowHandleMethodInfo   ,+#endif+    videoOverlaySetWindowHandle             ,+++++    ) 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++-- interface VideoOverlay +-- | Memory-managed wrapper type.+newtype VideoOverlay = VideoOverlay (ManagedPtr VideoOverlay)+-- | A convenience alias for `Nothing` :: `Maybe` `VideoOverlay`.+noVideoOverlay :: Maybe VideoOverlay+noVideoOverlay = Nothing++#if ENABLE_OVERLOADING+type instance O.SignalList VideoOverlay = VideoOverlaySignalList+type VideoOverlaySignalList = ('[ ] :: [(Symbol, *)])++#endif++-- | Type class for types which implement `VideoOverlay`.+class ManagedPtrNewtype a => IsVideoOverlay a+instance IsVideoOverlay VideoOverlay+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoOverlay where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing+++#if ENABLE_OVERLOADING+type family ResolveVideoOverlayMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoOverlayMethod "expose" o = VideoOverlayExposeMethodInfo+    ResolveVideoOverlayMethod "gotWindowHandle" o = VideoOverlayGotWindowHandleMethodInfo+    ResolveVideoOverlayMethod "handleEvents" o = VideoOverlayHandleEventsMethodInfo+    ResolveVideoOverlayMethod "prepareWindowHandle" o = VideoOverlayPrepareWindowHandleMethodInfo+    ResolveVideoOverlayMethod "setRenderRectangle" o = VideoOverlaySetRenderRectangleMethodInfo+    ResolveVideoOverlayMethod "setWindowHandle" o = VideoOverlaySetWindowHandleMethodInfo+    ResolveVideoOverlayMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoOverlayMethod t VideoOverlay, O.MethodInfo info VideoOverlay p) => OL.IsLabel t (VideoOverlay -> 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++-- method VideoOverlay::expose+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay to expose.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_expose" gst_video_overlay_expose :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    IO ()++{- |+Tell an overlay that it has been exposed. This will redraw the current frame+in the drawable even if the pipeline is PAUSED.+-}+videoOverlayExpose ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' to expose. -}+    -> m ()+videoOverlayExpose overlay = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    gst_video_overlay_expose overlay'+    touchManagedPtr overlay+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayExposeMethodInfo+instance (signature ~ (m ()), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlayExposeMethodInfo a signature where+    overloadedMethod _ = videoOverlayExpose++#endif++-- method VideoOverlay::got_window_handle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay which got a window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handle", argType = TBasicType TUIntPtr, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a platform-specific handle referencing the window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_got_window_handle" gst_video_overlay_got_window_handle :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    CUIntPtr ->                             -- handle : TBasicType TUIntPtr+    IO ()++{- |+This will post a \"have-window-handle\" element message on the bus.++This function should only be used by video overlay plugin developers.+-}+videoOverlayGotWindowHandle ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' which got a window -}+    -> CUIntPtr+    {- ^ /@handle@/: a platform-specific handle referencing the window -}+    -> m ()+videoOverlayGotWindowHandle overlay handle = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    gst_video_overlay_got_window_handle overlay' handle+    touchManagedPtr overlay+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayGotWindowHandleMethodInfo+instance (signature ~ (CUIntPtr -> m ()), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlayGotWindowHandleMethodInfo a signature where+    overloadedMethod _ = videoOverlayGotWindowHandle++#endif++-- method VideoOverlay::handle_events+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay to expose.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handle_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #gboolean indicating if events should be handled or not.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_handle_events" gst_video_overlay_handle_events :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    CInt ->                                 -- handle_events : TBasicType TBoolean+    IO ()++{- |+Tell an overlay that it should handle events from the window system. These+events are forwarded upstream as navigation events. In some window system,+events are not propagated in the window hierarchy if a client is listening+for them. This method allows you to disable events handling completely+from the 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay'.+-}+videoOverlayHandleEvents ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' to expose. -}+    -> Bool+    {- ^ /@handleEvents@/: a 'Bool' indicating if events should be handled or not. -}+    -> m ()+videoOverlayHandleEvents overlay handleEvents = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    let handleEvents' = (fromIntegral . fromEnum) handleEvents+    gst_video_overlay_handle_events overlay' handleEvents'+    touchManagedPtr overlay+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayHandleEventsMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlayHandleEventsMethodInfo a signature where+    overloadedMethod _ = videoOverlayHandleEvents++#endif++-- method VideoOverlay::prepare_window_handle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay which does not yet have an Window handle set", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_prepare_window_handle" gst_video_overlay_prepare_window_handle :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    IO ()++{- |+This will post a \"prepare-window-handle\" element message on the bus+to give applications an opportunity to call+'GI.GstVideo.Interfaces.VideoOverlay.videoOverlaySetWindowHandle' before a plugin creates its own+window.++This function should only be used by video overlay plugin developers.+-}+videoOverlayPrepareWindowHandle ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' which does not yet have an Window handle set -}+    -> m ()+videoOverlayPrepareWindowHandle overlay = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    gst_video_overlay_prepare_window_handle overlay'+    touchManagedPtr overlay+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayPrepareWindowHandleMethodInfo+instance (signature ~ (m ()), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlayPrepareWindowHandleMethodInfo a signature where+    overloadedMethod _ = videoOverlayPrepareWindowHandle++#endif++-- method VideoOverlay::set_render_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the horizontal offset of the render area inside the window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the vertical offset of the render area inside the window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width of the render area inside the window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the height of the render area inside the window", 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_video_overlay_set_render_rectangle" gst_video_overlay_set_render_rectangle :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    Int32 ->                                -- x : TBasicType TInt+    Int32 ->                                -- y : TBasicType TInt+    Int32 ->                                -- width : TBasicType TInt+    Int32 ->                                -- height : TBasicType TInt+    IO CInt++{- |+Configure a subregion as a video target within the window set by+'GI.GstVideo.Interfaces.VideoOverlay.videoOverlaySetWindowHandle'. If this is not used or not supported+the video will fill the area of the window set as the overlay to 100%.+By specifying the rectangle, the video can be overlayed to a specific region+of that window only. After setting the new rectangle one should call+'GI.GstVideo.Interfaces.VideoOverlay.videoOverlayExpose' to force a redraw. To unset the region pass -1 for+the /@width@/ and /@height@/ parameters.++This method is needed for non fullscreen video overlay in UI toolkits that+do not support subwindows.+-}+videoOverlaySetRenderRectangle ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' -}+    -> Int32+    {- ^ /@x@/: the horizontal offset of the render area inside the window -}+    -> Int32+    {- ^ /@y@/: the vertical offset of the render area inside the window -}+    -> Int32+    {- ^ /@width@/: the width of the render area inside the window -}+    -> Int32+    {- ^ /@height@/: the height of the render area inside the window -}+    -> m Bool+    {- ^ __Returns:__ 'False' if not supported by the sink. -}+videoOverlaySetRenderRectangle overlay x y width height = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    result <- gst_video_overlay_set_render_rectangle overlay' x y width height+    let result' = (/= 0) result+    touchManagedPtr overlay+    return result'++#if ENABLE_OVERLOADING+data VideoOverlaySetRenderRectangleMethodInfo+instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> m Bool), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlaySetRenderRectangleMethodInfo a signature where+    overloadedMethod _ = videoOverlaySetRenderRectangle++#endif++-- method VideoOverlay::set_window_handle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "overlay", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlay to set the window on.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handle", argType = TBasicType TUIntPtr, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a handle referencing the window.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_set_window_handle" gst_video_overlay_set_window_handle :: +    Ptr VideoOverlay ->                     -- overlay : TInterface (Name {namespace = "GstVideo", name = "VideoOverlay"})+    CUIntPtr ->                             -- handle : TBasicType TUIntPtr+    IO ()++{- |+This will call the video overlay\'s set_window_handle method. You+should use this method to tell to an overlay to display video output to a+specific window (e.g. an XWindow on X11). Passing 0 as the  /@handle@/ will+tell the overlay to stop using that window and create an internal one.+-}+videoOverlaySetWindowHandle ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoOverlay a) =>+    a+    {- ^ /@overlay@/: a 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay' to set the window on. -}+    -> CUIntPtr+    {- ^ /@handle@/: a handle referencing the window. -}+    -> m ()+videoOverlaySetWindowHandle overlay handle = liftIO $ do+    overlay' <- unsafeManagedPtrCastPtr overlay+    gst_video_overlay_set_window_handle overlay' handle+    touchManagedPtr overlay+    return ()++#if ENABLE_OVERLOADING+data VideoOverlaySetWindowHandleMethodInfo+instance (signature ~ (CUIntPtr -> m ()), MonadIO m, IsVideoOverlay a) => O.MethodInfo VideoOverlaySetWindowHandleMethodInfo a signature where+    overloadedMethod _ = videoOverlaySetWindowHandle++#endif++-- method VideoOverlay::set_property+-- method type : MemberFunction+-- Args : [Arg {argCName = "object", argType = TInterface (Name {namespace = "GObject", name = "Object"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The instance on which the property is set", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "last_prop_id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The highest property ID.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The property ID", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GValue to be set", 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_video_overlay_set_property" gst_video_overlay_set_property :: +    Ptr GObject.Object.Object ->            -- object : TInterface (Name {namespace = "GObject", name = "Object"})+    Int32 ->                                -- last_prop_id : TBasicType TInt+    Word32 ->                               -- property_id : TBasicType TUInt+    Ptr GValue ->                           -- value : TInterface (Name {namespace = "GObject", name = "Value"})+    IO CInt++{- |+This helper shall be used by classes implementing the 'GI.GstVideo.Interfaces.VideoOverlay.VideoOverlay'+interface that want the render rectangle to be controllable using+properties. This helper will parse and set the render rectangle calling+'GI.GstVideo.Interfaces.VideoOverlay.videoOverlaySetRenderRectangle'.+-}+videoOverlaySetProperty ::+    (B.CallStack.HasCallStack, MonadIO m, GObject.Object.IsObject a) =>+    a+    {- ^ /@object@/: The instance on which the property is set -}+    -> Int32+    {- ^ /@lastPropId@/: The highest property ID. -}+    -> Word32+    {- ^ /@propertyId@/: The property ID -}+    -> GValue+    {- ^ /@value@/: The 'GI.GObject.Structs.Value.Value' to be set -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the /@propertyId@/ matches the GstVideoOverlay property++Since 1.14 -}+videoOverlaySetProperty object lastPropId propertyId value = liftIO $ do+    object' <- unsafeManagedPtrCastPtr object+    value' <- unsafeManagedPtrGetPtr value+    result <- gst_video_overlay_set_property object' lastPropId propertyId value'+    let result' = (/= 0) result+    touchManagedPtr object+    touchManagedPtr value+    return result'++#if ENABLE_OVERLOADING+#endif++
+ GI/GstVideo/Interfaces/VideoOverlay.hs-boot view
@@ -0,0 +1,45 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Interfaces.VideoOverlay 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++newtype VideoOverlay = VideoOverlay (ManagedPtr VideoOverlay)+class ManagedPtrNewtype a => IsVideoOverlay a+instance WrappedPtr VideoOverlay where+#if ENABLE_OVERLOADING+data VideoOverlayExposeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayGotWindowHandleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayHandleEventsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayPrepareWindowHandleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlaySetRenderRectangleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlaySetWindowHandleMethodInfo+#endif
+ GI/GstVideo/Objects.hs view
@@ -0,0 +1,59 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects+    (     module GI.GstVideo.Objects.ColorBalanceChannel,+    module GI.GstVideo.Objects.VideoAggregator,+    module GI.GstVideo.Objects.VideoAggregatorConvertPad,+    module GI.GstVideo.Objects.VideoAggregatorPad,+    module GI.GstVideo.Objects.VideoBufferPool,+    module GI.GstVideo.Objects.VideoDecoder ,+    module GI.GstVideo.Objects.VideoEncoder ,+    module GI.GstVideo.Objects.VideoFilter  ,+    module GI.GstVideo.Objects.VideoMultiviewFlagsSet,+    module GI.GstVideo.Objects.VideoSink    ,+++    ) where++import GI.GstVideo.Objects.ColorBalanceChannel+import GI.GstVideo.Objects.VideoAggregator+import GI.GstVideo.Objects.VideoAggregatorConvertPad+import GI.GstVideo.Objects.VideoAggregatorPad+import GI.GstVideo.Objects.VideoBufferPool+import GI.GstVideo.Objects.VideoDecoder+import GI.GstVideo.Objects.VideoEncoder+import GI.GstVideo.Objects.VideoFilter+import GI.GstVideo.Objects.VideoMultiviewFlagsSet+import GI.GstVideo.Objects.VideoSink++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+++
+ GI/GstVideo/Objects/ColorBalanceChannel.hs view
@@ -0,0 +1,217 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++The 'GI.GstVideo.Objects.ColorBalanceChannel.ColorBalanceChannel' object represents a parameter+for modifying the color balance implemented by an element providing the+'GI.GstVideo.Interfaces.ColorBalance.ColorBalance' interface. For example, Hue or Saturation.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.ColorBalanceChannel+    ( ++-- * Exported types+    ColorBalanceChannel(..)                 ,+    IsColorBalanceChannel                   ,+    toColorBalanceChannel                   ,+    noColorBalanceChannel                   ,+++ -- * Signals+-- ** valueChanged #signal:valueChanged#++    C_ColorBalanceChannelValueChangedCallback,+    ColorBalanceChannelValueChangedCallback ,+#if ENABLE_OVERLOADING+    ColorBalanceChannelValueChangedSignalInfo,+#endif+    afterColorBalanceChannelValueChanged    ,+    genClosure_ColorBalanceChannelValueChanged,+    mk_ColorBalanceChannelValueChangedCallback,+    noColorBalanceChannelValueChangedCallback,+    onColorBalanceChannelValueChanged       ,+    wrap_ColorBalanceChannelValueChangedCallback,+++++    ) 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++-- | Memory-managed wrapper type.+newtype ColorBalanceChannel = ColorBalanceChannel (ManagedPtr ColorBalanceChannel)+foreign import ccall "gst_color_balance_channel_get_type"+    c_gst_color_balance_channel_get_type :: IO GType++instance GObject ColorBalanceChannel where+    gobjectType = c_gst_color_balance_channel_get_type+    ++-- | Type class for types which can be safely cast to `ColorBalanceChannel`, for instance with `toColorBalanceChannel`.+class (GObject o, O.IsDescendantOf ColorBalanceChannel o) => IsColorBalanceChannel o+instance (GObject o, O.IsDescendantOf ColorBalanceChannel o) => IsColorBalanceChannel o++instance O.HasParentTypes ColorBalanceChannel+type instance O.ParentTypes ColorBalanceChannel = '[GObject.Object.Object]++-- | Cast to `ColorBalanceChannel`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toColorBalanceChannel :: (MonadIO m, IsColorBalanceChannel o) => o -> m ColorBalanceChannel+toColorBalanceChannel = liftIO . unsafeCastTo ColorBalanceChannel++-- | A convenience alias for `Nothing` :: `Maybe` `ColorBalanceChannel`.+noColorBalanceChannel :: Maybe ColorBalanceChannel+noColorBalanceChannel = Nothing++#if ENABLE_OVERLOADING+type family ResolveColorBalanceChannelMethod (t :: Symbol) (o :: *) :: * where+    ResolveColorBalanceChannelMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveColorBalanceChannelMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveColorBalanceChannelMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveColorBalanceChannelMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveColorBalanceChannelMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveColorBalanceChannelMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveColorBalanceChannelMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveColorBalanceChannelMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveColorBalanceChannelMethod "ref" o = GObject.Object.ObjectRefMethodInfo+    ResolveColorBalanceChannelMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveColorBalanceChannelMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveColorBalanceChannelMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveColorBalanceChannelMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveColorBalanceChannelMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveColorBalanceChannelMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo+    ResolveColorBalanceChannelMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveColorBalanceChannelMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveColorBalanceChannelMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveColorBalanceChannelMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveColorBalanceChannelMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveColorBalanceChannelMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveColorBalanceChannelMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveColorBalanceChannelMethod t ColorBalanceChannel, O.MethodInfo info ColorBalanceChannel p) => OL.IsLabel t (ColorBalanceChannel -> 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++-- signal ColorBalanceChannel::value-changed+{- |+Fired when the value of the indicated channel has changed.+-}+type ColorBalanceChannelValueChangedCallback =+    Int32+    {- ^ /@value@/: The new value -}+    -> IO ()++-- | A convenience synonym for @`Nothing` :: `Maybe` `ColorBalanceChannelValueChangedCallback`@.+noColorBalanceChannelValueChangedCallback :: Maybe ColorBalanceChannelValueChangedCallback+noColorBalanceChannelValueChangedCallback = Nothing++-- | Type for the callback on the (unwrapped) C side.+type C_ColorBalanceChannelValueChangedCallback =+    Ptr () ->                               -- object+    Int32 ->+    Ptr () ->                               -- user_data+    IO ()++-- | Generate a function pointer callable from C code, from a `C_ColorBalanceChannelValueChangedCallback`.+foreign import ccall "wrapper"+    mk_ColorBalanceChannelValueChangedCallback :: C_ColorBalanceChannelValueChangedCallback -> IO (FunPtr C_ColorBalanceChannelValueChangedCallback)++-- | Wrap the callback into a `GClosure`.+genClosure_ColorBalanceChannelValueChanged :: MonadIO m => ColorBalanceChannelValueChangedCallback -> m (GClosure C_ColorBalanceChannelValueChangedCallback)+genClosure_ColorBalanceChannelValueChanged cb = liftIO $ do+    let cb' = wrap_ColorBalanceChannelValueChangedCallback cb+    mk_ColorBalanceChannelValueChangedCallback cb' >>= B.GClosure.newGClosure+++-- | Wrap a `ColorBalanceChannelValueChangedCallback` into a `C_ColorBalanceChannelValueChangedCallback`.+wrap_ColorBalanceChannelValueChangedCallback ::+    ColorBalanceChannelValueChangedCallback ->+    C_ColorBalanceChannelValueChangedCallback+wrap_ColorBalanceChannelValueChangedCallback _cb _ value _ = do+    _cb  value+++{- |+Connect a signal handler for the “@value-changed@” signal, to be run before the default handler.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Signals.on' colorBalanceChannel #valueChanged callback+@+-}+onColorBalanceChannelValueChanged :: (IsColorBalanceChannel a, MonadIO m) => a -> ColorBalanceChannelValueChangedCallback -> m SignalHandlerId+onColorBalanceChannelValueChanged obj cb = liftIO $ do+    let cb' = wrap_ColorBalanceChannelValueChangedCallback cb+    cb'' <- mk_ColorBalanceChannelValueChangedCallback cb'+    connectSignalFunPtr obj "value-changed" cb'' SignalConnectBefore++{- |+Connect a signal handler for the “@value-changed@” signal, to be run after the default handler.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Signals.after' colorBalanceChannel #valueChanged callback+@+-}+afterColorBalanceChannelValueChanged :: (IsColorBalanceChannel a, MonadIO m) => a -> ColorBalanceChannelValueChangedCallback -> m SignalHandlerId+afterColorBalanceChannelValueChanged obj cb = liftIO $ do+    let cb' = wrap_ColorBalanceChannelValueChangedCallback cb+    cb'' <- mk_ColorBalanceChannelValueChangedCallback cb'+    connectSignalFunPtr obj "value-changed" cb'' SignalConnectAfter+++#if ENABLE_OVERLOADING+instance O.HasAttributeList ColorBalanceChannel+type instance O.AttributeList ColorBalanceChannel = ColorBalanceChannelAttributeList+type ColorBalanceChannelAttributeList = ('[ ] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+data ColorBalanceChannelValueChangedSignalInfo+instance SignalInfo ColorBalanceChannelValueChangedSignalInfo where+    type HaskellCallbackType ColorBalanceChannelValueChangedSignalInfo = ColorBalanceChannelValueChangedCallback+    connectSignal _ obj cb connectMode = do+        let cb' = wrap_ColorBalanceChannelValueChangedCallback cb+        cb'' <- mk_ColorBalanceChannelValueChangedCallback cb'+        connectSignalFunPtr obj "value-changed" cb'' connectMode++type instance O.SignalList ColorBalanceChannel = ColorBalanceChannelSignalList+type ColorBalanceChannelSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("valueChanged", ColorBalanceChannelValueChangedSignalInfo)] :: [(Symbol, *)])++#endif++
+ GI/GstVideo/Objects/ColorBalanceChannel.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.ColorBalanceChannel 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++newtype ColorBalanceChannel = ColorBalanceChannel (ManagedPtr ColorBalanceChannel)+instance GObject ColorBalanceChannel where+class (GObject o, O.IsDescendantOf ColorBalanceChannel o) => IsColorBalanceChannel o+instance (GObject o, O.IsDescendantOf ColorBalanceChannel o) => IsColorBalanceChannel o+instance O.HasParentTypes ColorBalanceChannel+#if ENABLE_OVERLOADING+data ColorBalanceChannelValueChangedSignalInfo+#endif
+ GI/GstVideo/Objects/VideoAggregator.hs view
@@ -0,0 +1,224 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++VideoAggregator can accept AYUV, ARGB and BGRA video streams. For each of the requested+sink pads it will compare the incoming geometry and framerate to define the+output parameters. Indeed output video frames will have the geometry of the+biggest incoming video stream and the framerate of the fastest incoming one.++VideoAggregator will do colorspace conversion.++Zorder for each input stream can be configured on the+'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad'.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoAggregator+    ( ++-- * Exported types+    VideoAggregator(..)                     ,+    IsVideoAggregator                       ,+    toVideoAggregator                       ,+    noVideoAggregator                       ,+++    ) 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 qualified GI.Gst.Objects.Element as Gst.Element+import qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.GstBase.Objects.Aggregator as GstBase.Aggregator++-- | Memory-managed wrapper type.+newtype VideoAggregator = VideoAggregator (ManagedPtr VideoAggregator)+foreign import ccall "gst_video_aggregator_get_type"+    c_gst_video_aggregator_get_type :: IO GType++instance GObject VideoAggregator where+    gobjectType = c_gst_video_aggregator_get_type+    ++-- | Type class for types which can be safely cast to `VideoAggregator`, for instance with `toVideoAggregator`.+class (GObject o, O.IsDescendantOf VideoAggregator o) => IsVideoAggregator o+instance (GObject o, O.IsDescendantOf VideoAggregator o) => IsVideoAggregator o++instance O.HasParentTypes VideoAggregator+type instance O.ParentTypes VideoAggregator = '[GstBase.Aggregator.Aggregator, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoAggregator`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoAggregator :: (MonadIO m, IsVideoAggregator o) => o -> m VideoAggregator+toVideoAggregator = liftIO . unsafeCastTo VideoAggregator++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAggregator`.+noVideoAggregator :: Maybe VideoAggregator+noVideoAggregator = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoAggregatorMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAggregatorMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo+    ResolveVideoAggregatorMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoAggregatorMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo+    ResolveVideoAggregatorMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo+    ResolveVideoAggregatorMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo+    ResolveVideoAggregatorMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoAggregatorMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoAggregatorMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo+    ResolveVideoAggregatorMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo+    ResolveVideoAggregatorMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo+    ResolveVideoAggregatorMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo+    ResolveVideoAggregatorMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoAggregatorMethod "finishBuffer" o = GstBase.Aggregator.AggregatorFinishBufferMethodInfo+    ResolveVideoAggregatorMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoAggregatorMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo+    ResolveVideoAggregatorMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo+    ResolveVideoAggregatorMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo+    ResolveVideoAggregatorMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoAggregatorMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoAggregatorMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoAggregatorMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoAggregatorMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoAggregatorMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoAggregatorMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoAggregatorMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo+    ResolveVideoAggregatorMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo+    ResolveVideoAggregatorMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo+    ResolveVideoAggregatorMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo+    ResolveVideoAggregatorMethod "link" o = Gst.Element.ElementLinkMethodInfo+    ResolveVideoAggregatorMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo+    ResolveVideoAggregatorMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo+    ResolveVideoAggregatorMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo+    ResolveVideoAggregatorMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo+    ResolveVideoAggregatorMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo+    ResolveVideoAggregatorMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo+    ResolveVideoAggregatorMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo+    ResolveVideoAggregatorMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo+    ResolveVideoAggregatorMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoAggregatorMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoAggregatorMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo+    ResolveVideoAggregatorMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo+    ResolveVideoAggregatorMethod "query" o = Gst.Element.ElementQueryMethodInfo+    ResolveVideoAggregatorMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo+    ResolveVideoAggregatorMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo+    ResolveVideoAggregatorMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo+    ResolveVideoAggregatorMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoAggregatorMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoAggregatorMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo+    ResolveVideoAggregatorMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoAggregatorMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo+    ResolveVideoAggregatorMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo+    ResolveVideoAggregatorMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo+    ResolveVideoAggregatorMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoAggregatorMethod "seek" o = Gst.Element.ElementSeekMethodInfo+    ResolveVideoAggregatorMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo+    ResolveVideoAggregatorMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo+    ResolveVideoAggregatorMethod "simpleGetNextTime" o = GstBase.Aggregator.AggregatorSimpleGetNextTimeMethodInfo+    ResolveVideoAggregatorMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoAggregatorMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoAggregatorMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoAggregatorMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo+    ResolveVideoAggregatorMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoAggregatorMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoAggregatorMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo+    ResolveVideoAggregatorMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo+    ResolveVideoAggregatorMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoAggregatorMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoAggregatorMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoAggregatorMethod "getAllocator" o = GstBase.Aggregator.AggregatorGetAllocatorMethodInfo+    ResolveVideoAggregatorMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo+    ResolveVideoAggregatorMethod "getBufferPool" o = GstBase.Aggregator.AggregatorGetBufferPoolMethodInfo+    ResolveVideoAggregatorMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo+    ResolveVideoAggregatorMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo+    ResolveVideoAggregatorMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo+    ResolveVideoAggregatorMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo+    ResolveVideoAggregatorMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo+    ResolveVideoAggregatorMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo+    ResolveVideoAggregatorMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo+    ResolveVideoAggregatorMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoAggregatorMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoAggregatorMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoAggregatorMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo+    ResolveVideoAggregatorMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoAggregatorMethod "getLatency" o = GstBase.Aggregator.AggregatorGetLatencyMethodInfo+    ResolveVideoAggregatorMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo+    ResolveVideoAggregatorMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoAggregatorMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo+    ResolveVideoAggregatorMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo+    ResolveVideoAggregatorMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoAggregatorMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoAggregatorMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoAggregatorMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoAggregatorMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo+    ResolveVideoAggregatorMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo+    ResolveVideoAggregatorMethod "getState" o = Gst.Element.ElementGetStateMethodInfo+    ResolveVideoAggregatorMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo+    ResolveVideoAggregatorMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoAggregatorMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo+    ResolveVideoAggregatorMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo+    ResolveVideoAggregatorMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo+    ResolveVideoAggregatorMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo+    ResolveVideoAggregatorMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoAggregatorMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoAggregatorMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoAggregatorMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoAggregatorMethod "setLatency" o = GstBase.Aggregator.AggregatorSetLatencyMethodInfo+    ResolveVideoAggregatorMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo+    ResolveVideoAggregatorMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoAggregatorMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoAggregatorMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoAggregatorMethod "setSrcCaps" o = GstBase.Aggregator.AggregatorSetSrcCapsMethodInfo+    ResolveVideoAggregatorMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo+    ResolveVideoAggregatorMethod "setState" o = Gst.Element.ElementSetStateMethodInfo+    ResolveVideoAggregatorMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAggregatorMethod t VideoAggregator, O.MethodInfo info VideoAggregator p) => OL.IsLabel t (VideoAggregator -> 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 VideoAggregator+type instance O.AttributeList VideoAggregator = VideoAggregatorAttributeList+type VideoAggregatorAttributeList = ('[ '("latency", GstBase.Aggregator.AggregatorLatencyPropertyInfo), '("minUpstreamLatency", GstBase.Aggregator.AggregatorMinUpstreamLatencyPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("startTime", GstBase.Aggregator.AggregatorStartTimePropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoAggregator = VideoAggregatorSignalList+type VideoAggregatorSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++#endif++
+ GI/GstVideo/Objects/VideoAggregator.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoAggregator 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++newtype VideoAggregator = VideoAggregator (ManagedPtr VideoAggregator)+instance GObject VideoAggregator where+class (GObject o, O.IsDescendantOf VideoAggregator o) => IsVideoAggregator o+instance (GObject o, O.IsDescendantOf VideoAggregator o) => IsVideoAggregator o+instance O.HasParentTypes VideoAggregator
+ GI/GstVideo/Objects/VideoAggregatorConvertPad.hs view
@@ -0,0 +1,364 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++An implementation of GstPad that can be used with 'GI.GstVideo.Objects.VideoAggregator.VideoAggregator'.++See 'GI.GstVideo.Objects.VideoAggregator.VideoAggregator' for more details.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoAggregatorConvertPad+    ( ++-- * Exported types+    VideoAggregatorConvertPad(..)           ,+    IsVideoAggregatorConvertPad             ,+    toVideoAggregatorConvertPad             ,+    noVideoAggregatorConvertPad             ,+++ -- * Methods+-- ** updateConversionInfo #method:updateConversionInfo#++#if ENABLE_OVERLOADING+    VideoAggregatorConvertPadUpdateConversionInfoMethodInfo,+#endif+    videoAggregatorConvertPadUpdateConversionInfo,+++++ -- * Properties+-- ** converterConfig #attr:converterConfig#+{- | /No description available in the introspection data./+-}+#if ENABLE_OVERLOADING+    VideoAggregatorConvertPadConverterConfigPropertyInfo,+#endif+    clearVideoAggregatorConvertPadConverterConfig,+    constructVideoAggregatorConvertPadConverterConfig,+    getVideoAggregatorConvertPadConverterConfig,+    setVideoAggregatorConvertPadConverterConfig,+#if ENABLE_OVERLOADING+    videoAggregatorConvertPadConverterConfig,+#endif+++++    ) 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 qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.Gst.Objects.Pad as Gst.Pad+import qualified GI.Gst.Structs.Structure as Gst.Structure+import qualified GI.GstBase.Objects.AggregatorPad as GstBase.AggregatorPad+import {-# SOURCE #-} qualified GI.GstVideo.Objects.VideoAggregatorPad as GstVideo.VideoAggregatorPad++-- | Memory-managed wrapper type.+newtype VideoAggregatorConvertPad = VideoAggregatorConvertPad (ManagedPtr VideoAggregatorConvertPad)+foreign import ccall "gst_video_aggregator_convert_pad_get_type"+    c_gst_video_aggregator_convert_pad_get_type :: IO GType++instance GObject VideoAggregatorConvertPad where+    gobjectType = c_gst_video_aggregator_convert_pad_get_type+    ++-- | Type class for types which can be safely cast to `VideoAggregatorConvertPad`, for instance with `toVideoAggregatorConvertPad`.+class (GObject o, O.IsDescendantOf VideoAggregatorConvertPad o) => IsVideoAggregatorConvertPad o+instance (GObject o, O.IsDescendantOf VideoAggregatorConvertPad o) => IsVideoAggregatorConvertPad o++instance O.HasParentTypes VideoAggregatorConvertPad+type instance O.ParentTypes VideoAggregatorConvertPad = '[GstVideo.VideoAggregatorPad.VideoAggregatorPad, GstBase.AggregatorPad.AggregatorPad, Gst.Pad.Pad, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoAggregatorConvertPad`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoAggregatorConvertPad :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m VideoAggregatorConvertPad+toVideoAggregatorConvertPad = liftIO . unsafeCastTo VideoAggregatorConvertPad++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAggregatorConvertPad`.+noVideoAggregatorConvertPad :: Maybe VideoAggregatorConvertPad+noVideoAggregatorConvertPad = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoAggregatorConvertPadMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAggregatorConvertPadMethod "activateMode" o = Gst.Pad.PadActivateModeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "addProbe" o = Gst.Pad.PadAddProbeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "canLink" o = Gst.Pad.PadCanLinkMethodInfo+    ResolveVideoAggregatorConvertPadMethod "chain" o = Gst.Pad.PadChainMethodInfo+    ResolveVideoAggregatorConvertPadMethod "chainList" o = Gst.Pad.PadChainListMethodInfo+    ResolveVideoAggregatorConvertPadMethod "checkReconfigure" o = Gst.Pad.PadCheckReconfigureMethodInfo+    ResolveVideoAggregatorConvertPadMethod "createStreamId" o = Gst.Pad.PadCreateStreamIdMethodInfo+    ResolveVideoAggregatorConvertPadMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoAggregatorConvertPadMethod "dropBuffer" o = GstBase.AggregatorPad.AggregatorPadDropBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "eventDefault" o = Gst.Pad.PadEventDefaultMethodInfo+    ResolveVideoAggregatorConvertPadMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "forward" o = Gst.Pad.PadForwardMethodInfo+    ResolveVideoAggregatorConvertPadMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasBuffer" o = GstBase.AggregatorPad.AggregatorPadHasBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasCurrentBuffer" o = GstVideo.VideoAggregatorPad.VideoAggregatorPadHasCurrentBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "hasCurrentCaps" o = Gst.Pad.PadHasCurrentCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isActive" o = Gst.Pad.PadIsActiveMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isBlocked" o = Gst.Pad.PadIsBlockedMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isBlocking" o = Gst.Pad.PadIsBlockingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isEos" o = GstBase.AggregatorPad.AggregatorPadIsEosMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "isLinked" o = Gst.Pad.PadIsLinkedMethodInfo+    ResolveVideoAggregatorConvertPadMethod "iterateInternalLinks" o = Gst.Pad.PadIterateInternalLinksMethodInfo+    ResolveVideoAggregatorConvertPadMethod "iterateInternalLinksDefault" o = Gst.Pad.PadIterateInternalLinksDefaultMethodInfo+    ResolveVideoAggregatorConvertPadMethod "link" o = Gst.Pad.PadLinkMethodInfo+    ResolveVideoAggregatorConvertPadMethod "linkFull" o = Gst.Pad.PadLinkFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "linkMaybeGhosting" o = Gst.Pad.PadLinkMaybeGhostingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "linkMaybeGhostingFull" o = Gst.Pad.PadLinkMaybeGhostingFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "markReconfigure" o = Gst.Pad.PadMarkReconfigureMethodInfo+    ResolveVideoAggregatorConvertPadMethod "needsReconfigure" o = Gst.Pad.PadNeedsReconfigureMethodInfo+    ResolveVideoAggregatorConvertPadMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoAggregatorConvertPadMethod "pauseTask" o = Gst.Pad.PadPauseTaskMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peekBuffer" o = GstBase.AggregatorPad.AggregatorPadPeekBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQuery" o = Gst.Pad.PadPeerQueryMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQueryAcceptCaps" o = Gst.Pad.PadPeerQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQueryCaps" o = Gst.Pad.PadPeerQueryCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQueryConvert" o = Gst.Pad.PadPeerQueryConvertMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQueryDuration" o = Gst.Pad.PadPeerQueryDurationMethodInfo+    ResolveVideoAggregatorConvertPadMethod "peerQueryPosition" o = Gst.Pad.PadPeerQueryPositionMethodInfo+    ResolveVideoAggregatorConvertPadMethod "popBuffer" o = GstBase.AggregatorPad.AggregatorPadPopBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "proxyQueryAcceptCaps" o = Gst.Pad.PadProxyQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "proxyQueryCaps" o = Gst.Pad.PadProxyQueryCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "pullRange" o = Gst.Pad.PadPullRangeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "push" o = Gst.Pad.PadPushMethodInfo+    ResolveVideoAggregatorConvertPadMethod "pushEvent" o = Gst.Pad.PadPushEventMethodInfo+    ResolveVideoAggregatorConvertPadMethod "pushList" o = Gst.Pad.PadPushListMethodInfo+    ResolveVideoAggregatorConvertPadMethod "query" o = Gst.Pad.PadQueryMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryAcceptCaps" o = Gst.Pad.PadQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryCaps" o = Gst.Pad.PadQueryCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryConvert" o = Gst.Pad.PadQueryConvertMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryDefault" o = Gst.Pad.PadQueryDefaultMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryDuration" o = Gst.Pad.PadQueryDurationMethodInfo+    ResolveVideoAggregatorConvertPadMethod "queryPosition" o = Gst.Pad.PadQueryPositionMethodInfo+    ResolveVideoAggregatorConvertPadMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoAggregatorConvertPadMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoAggregatorConvertPadMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "removeProbe" o = Gst.Pad.PadRemoveProbeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "sendEvent" o = Gst.Pad.PadSendEventMethodInfo+    ResolveVideoAggregatorConvertPadMethod "startTask" o = Gst.Pad.PadStartTaskMethodInfo+    ResolveVideoAggregatorConvertPadMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoAggregatorConvertPadMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoAggregatorConvertPadMethod "stickyEventsForeach" o = Gst.Pad.PadStickyEventsForeachMethodInfo+    ResolveVideoAggregatorConvertPadMethod "stopTask" o = Gst.Pad.PadStopTaskMethodInfo+    ResolveVideoAggregatorConvertPadMethod "storeStickyEvent" o = Gst.Pad.PadStoreStickyEventMethodInfo+    ResolveVideoAggregatorConvertPadMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoAggregatorConvertPadMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoAggregatorConvertPadMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "unlink" o = Gst.Pad.PadUnlinkMethodInfo+    ResolveVideoAggregatorConvertPadMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoAggregatorConvertPadMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoAggregatorConvertPadMethod "updateConversionInfo" o = VideoAggregatorConvertPadUpdateConversionInfoMethodInfo+    ResolveVideoAggregatorConvertPadMethod "useFixedCaps" o = Gst.Pad.PadUseFixedCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getAllowedCaps" o = Gst.Pad.PadGetAllowedCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getCurrentBuffer" o = GstVideo.VideoAggregatorPad.VideoAggregatorPadGetCurrentBufferMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getCurrentCaps" o = Gst.Pad.PadGetCurrentCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getDirection" o = Gst.Pad.PadGetDirectionMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getElementPrivate" o = Gst.Pad.PadGetElementPrivateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getLastFlowReturn" o = Gst.Pad.PadGetLastFlowReturnMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getOffset" o = Gst.Pad.PadGetOffsetMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getPadTemplate" o = Gst.Pad.PadGetPadTemplateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getPadTemplateCaps" o = Gst.Pad.PadGetPadTemplateCapsMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getParentElement" o = Gst.Pad.PadGetParentElementMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getPeer" o = Gst.Pad.PadGetPeerMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getPreparedFrame" o = GstVideo.VideoAggregatorPad.VideoAggregatorPadGetPreparedFrameMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getRange" o = Gst.Pad.PadGetRangeMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getStickyEvent" o = Gst.Pad.PadGetStickyEventMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getStream" o = Gst.Pad.PadGetStreamMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getStreamId" o = Gst.Pad.PadGetStreamIdMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getTaskState" o = Gst.Pad.PadGetTaskStateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setActivateFunctionFull" o = Gst.Pad.PadSetActivateFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setActivatemodeFunctionFull" o = Gst.Pad.PadSetActivatemodeFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setActive" o = Gst.Pad.PadSetActiveMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setChainFunctionFull" o = Gst.Pad.PadSetChainFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setChainListFunctionFull" o = Gst.Pad.PadSetChainListFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setElementPrivate" o = Gst.Pad.PadSetElementPrivateMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setEventFullFunctionFull" o = Gst.Pad.PadSetEventFullFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setEventFunctionFull" o = Gst.Pad.PadSetEventFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setGetrangeFunctionFull" o = Gst.Pad.PadSetGetrangeFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setIterateInternalLinksFunctionFull" o = Gst.Pad.PadSetIterateInternalLinksFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setLinkFunctionFull" o = Gst.Pad.PadSetLinkFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setNeedsAlpha" o = GstVideo.VideoAggregatorPad.VideoAggregatorPadSetNeedsAlphaMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setOffset" o = Gst.Pad.PadSetOffsetMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setQueryFunctionFull" o = Gst.Pad.PadSetQueryFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod "setUnlinkFunctionFull" o = Gst.Pad.PadSetUnlinkFunctionFullMethodInfo+    ResolveVideoAggregatorConvertPadMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAggregatorConvertPadMethod t VideoAggregatorConvertPad, O.MethodInfo info VideoAggregatorConvertPad p) => OL.IsLabel t (VideoAggregatorConvertPad -> 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++-- VVV Prop "converter-config"+   -- Type: TInterface (Name {namespace = "Gst", name = "Structure"})+   -- Flags: [PropertyReadable,PropertyWritable]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@converter-config@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAggregatorConvertPad #converterConfig+@+-}+getVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m (Maybe Gst.Structure.Structure)+getVideoAggregatorConvertPadConverterConfig obj = liftIO $ B.Properties.getObjectPropertyBoxed obj "converter-config" Gst.Structure.Structure++{- |+Set the value of the “@converter-config@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAggregatorConvertPad [ #converterConfig 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> Gst.Structure.Structure -> m ()+setVideoAggregatorConvertPadConverterConfig obj val = liftIO $ B.Properties.setObjectPropertyBoxed obj "converter-config" (Just val)++{- |+Construct a `GValueConstruct` with valid value for the “@converter-config@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoAggregatorConvertPadConverterConfig :: (IsVideoAggregatorConvertPad o) => Gst.Structure.Structure -> IO (GValueConstruct o)+constructVideoAggregatorConvertPadConverterConfig val = B.Properties.constructObjectPropertyBoxed "converter-config" (Just val)++{- |+Set the value of the “@converter-config@” property to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #converterConfig+@+-}+clearVideoAggregatorConvertPadConverterConfig :: (MonadIO m, IsVideoAggregatorConvertPad o) => o -> m ()+clearVideoAggregatorConvertPadConverterConfig obj = liftIO $ B.Properties.setObjectPropertyBoxed obj "converter-config" (Nothing :: Maybe Gst.Structure.Structure)++#if ENABLE_OVERLOADING+data VideoAggregatorConvertPadConverterConfigPropertyInfo+instance AttrInfo VideoAggregatorConvertPadConverterConfigPropertyInfo where+    type AttrAllowedOps VideoAggregatorConvertPadConverterConfigPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoAggregatorConvertPadConverterConfigPropertyInfo = (~) Gst.Structure.Structure+    type AttrBaseTypeConstraint VideoAggregatorConvertPadConverterConfigPropertyInfo = IsVideoAggregatorConvertPad+    type AttrGetType VideoAggregatorConvertPadConverterConfigPropertyInfo = (Maybe Gst.Structure.Structure)+    type AttrLabel VideoAggregatorConvertPadConverterConfigPropertyInfo = "converter-config"+    type AttrOrigin VideoAggregatorConvertPadConverterConfigPropertyInfo = VideoAggregatorConvertPad+    attrGet _ = getVideoAggregatorConvertPadConverterConfig+    attrSet _ = setVideoAggregatorConvertPadConverterConfig+    attrConstruct _ = constructVideoAggregatorConvertPadConverterConfig+    attrClear _ = clearVideoAggregatorConvertPadConverterConfig+#endif++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoAggregatorConvertPad+type instance O.AttributeList VideoAggregatorConvertPad = VideoAggregatorConvertPadAttributeList+type VideoAggregatorConvertPadAttributeList = ('[ '("caps", Gst.Pad.PadCapsPropertyInfo), '("converterConfig", VideoAggregatorConvertPadConverterConfigPropertyInfo), '("direction", Gst.Pad.PadDirectionPropertyInfo), '("emitSignals", GstBase.AggregatorPad.AggregatorPadEmitSignalsPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("offset", Gst.Pad.PadOffsetPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("repeatAfterEos", GstVideo.VideoAggregatorPad.VideoAggregatorPadRepeatAfterEosPropertyInfo), '("template", Gst.Pad.PadTemplatePropertyInfo), '("zorder", GstVideo.VideoAggregatorPad.VideoAggregatorPadZorderPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+videoAggregatorConvertPadConverterConfig :: AttrLabelProxy "converterConfig"+videoAggregatorConvertPadConverterConfig = AttrLabelProxy++#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoAggregatorConvertPad = VideoAggregatorConvertPadSignalList+type VideoAggregatorConvertPadSignalList = ('[ '("bufferConsumed", GstBase.AggregatorPad.AggregatorPadBufferConsumedSignalInfo), '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("linked", Gst.Pad.PadLinkedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("unlinked", Gst.Pad.PadUnlinkedSignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoAggregatorConvertPad::update_conversion_info+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorConvertPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAggregatorPad", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_aggregator_convert_pad_update_conversion_info" gst_video_aggregator_convert_pad_update_conversion_info :: +    Ptr VideoAggregatorConvertPad ->        -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorConvertPad"})+    IO ()++{- |+Requests the pad to check and update the converter before the next usage to+update for any changes that have happened.+-}+videoAggregatorConvertPadUpdateConversionInfo ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorConvertPad a) =>+    a+    {- ^ /@pad@/: a 'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad' -}+    -> m ()+videoAggregatorConvertPadUpdateConversionInfo pad = liftIO $ do+    pad' <- unsafeManagedPtrCastPtr pad+    gst_video_aggregator_convert_pad_update_conversion_info pad'+    touchManagedPtr pad+    return ()++#if ENABLE_OVERLOADING+data VideoAggregatorConvertPadUpdateConversionInfoMethodInfo+instance (signature ~ (m ()), MonadIO m, IsVideoAggregatorConvertPad a) => O.MethodInfo VideoAggregatorConvertPadUpdateConversionInfoMethodInfo a signature where+    overloadedMethod _ = videoAggregatorConvertPadUpdateConversionInfo++#endif++
+ GI/GstVideo/Objects/VideoAggregatorConvertPad.hs-boot view
@@ -0,0 +1,35 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoAggregatorConvertPad 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++newtype VideoAggregatorConvertPad = VideoAggregatorConvertPad (ManagedPtr VideoAggregatorConvertPad)+instance GObject VideoAggregatorConvertPad where+class (GObject o, O.IsDescendantOf VideoAggregatorConvertPad o) => IsVideoAggregatorConvertPad o+instance (GObject o, O.IsDescendantOf VideoAggregatorConvertPad o) => IsVideoAggregatorConvertPad o+instance O.HasParentTypes VideoAggregatorConvertPad+#if ENABLE_OVERLOADING+data VideoAggregatorConvertPadConverterConfigPropertyInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorConvertPadUpdateConversionInfoMethodInfo+#endif
+ GI/GstVideo/Objects/VideoAggregatorPad.hs view
@@ -0,0 +1,566 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++/No description available in the introspection data./+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoAggregatorPad+    ( ++-- * Exported types+    VideoAggregatorPad(..)                  ,+    IsVideoAggregatorPad                    ,+    toVideoAggregatorPad                    ,+    noVideoAggregatorPad                    ,+++ -- * Methods+-- ** getCurrentBuffer #method:getCurrentBuffer#++#if ENABLE_OVERLOADING+    VideoAggregatorPadGetCurrentBufferMethodInfo,+#endif+    videoAggregatorPadGetCurrentBuffer      ,+++-- ** getPreparedFrame #method:getPreparedFrame#++#if ENABLE_OVERLOADING+    VideoAggregatorPadGetPreparedFrameMethodInfo,+#endif+    videoAggregatorPadGetPreparedFrame      ,+++-- ** hasCurrentBuffer #method:hasCurrentBuffer#++#if ENABLE_OVERLOADING+    VideoAggregatorPadHasCurrentBufferMethodInfo,+#endif+    videoAggregatorPadHasCurrentBuffer      ,+++-- ** setNeedsAlpha #method:setNeedsAlpha#++#if ENABLE_OVERLOADING+    VideoAggregatorPadSetNeedsAlphaMethodInfo,+#endif+    videoAggregatorPadSetNeedsAlpha         ,+++++ -- * Properties+-- ** repeatAfterEos #attr:repeatAfterEos#+{- | /No description available in the introspection data./+-}+#if ENABLE_OVERLOADING+    VideoAggregatorPadRepeatAfterEosPropertyInfo,+#endif+    constructVideoAggregatorPadRepeatAfterEos,+    getVideoAggregatorPadRepeatAfterEos     ,+    setVideoAggregatorPadRepeatAfterEos     ,+#if ENABLE_OVERLOADING+    videoAggregatorPadRepeatAfterEos        ,+#endif+++-- ** zorder #attr:zorder#+{- | /No description available in the introspection data./+-}+#if ENABLE_OVERLOADING+    VideoAggregatorPadZorderPropertyInfo    ,+#endif+    constructVideoAggregatorPadZorder       ,+    getVideoAggregatorPadZorder             ,+    setVideoAggregatorPadZorder             ,+#if ENABLE_OVERLOADING+    videoAggregatorPadZorder                ,+#endif+++++    ) 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 qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.Gst.Objects.Pad as Gst.Pad+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.GstBase.Objects.AggregatorPad as GstBase.AggregatorPad+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame++-- | Memory-managed wrapper type.+newtype VideoAggregatorPad = VideoAggregatorPad (ManagedPtr VideoAggregatorPad)+foreign import ccall "gst_video_aggregator_pad_get_type"+    c_gst_video_aggregator_pad_get_type :: IO GType++instance GObject VideoAggregatorPad where+    gobjectType = c_gst_video_aggregator_pad_get_type+    ++-- | Type class for types which can be safely cast to `VideoAggregatorPad`, for instance with `toVideoAggregatorPad`.+class (GObject o, O.IsDescendantOf VideoAggregatorPad o) => IsVideoAggregatorPad o+instance (GObject o, O.IsDescendantOf VideoAggregatorPad o) => IsVideoAggregatorPad o++instance O.HasParentTypes VideoAggregatorPad+type instance O.ParentTypes VideoAggregatorPad = '[GstBase.AggregatorPad.AggregatorPad, Gst.Pad.Pad, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoAggregatorPad`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoAggregatorPad :: (MonadIO m, IsVideoAggregatorPad o) => o -> m VideoAggregatorPad+toVideoAggregatorPad = liftIO . unsafeCastTo VideoAggregatorPad++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAggregatorPad`.+noVideoAggregatorPad :: Maybe VideoAggregatorPad+noVideoAggregatorPad = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoAggregatorPadMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAggregatorPadMethod "activateMode" o = Gst.Pad.PadActivateModeMethodInfo+    ResolveVideoAggregatorPadMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoAggregatorPadMethod "addProbe" o = Gst.Pad.PadAddProbeMethodInfo+    ResolveVideoAggregatorPadMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoAggregatorPadMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoAggregatorPadMethod "canLink" o = Gst.Pad.PadCanLinkMethodInfo+    ResolveVideoAggregatorPadMethod "chain" o = Gst.Pad.PadChainMethodInfo+    ResolveVideoAggregatorPadMethod "chainList" o = Gst.Pad.PadChainListMethodInfo+    ResolveVideoAggregatorPadMethod "checkReconfigure" o = Gst.Pad.PadCheckReconfigureMethodInfo+    ResolveVideoAggregatorPadMethod "createStreamId" o = Gst.Pad.PadCreateStreamIdMethodInfo+    ResolveVideoAggregatorPadMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoAggregatorPadMethod "dropBuffer" o = GstBase.AggregatorPad.AggregatorPadDropBufferMethodInfo+    ResolveVideoAggregatorPadMethod "eventDefault" o = Gst.Pad.PadEventDefaultMethodInfo+    ResolveVideoAggregatorPadMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoAggregatorPadMethod "forward" o = Gst.Pad.PadForwardMethodInfo+    ResolveVideoAggregatorPadMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoAggregatorPadMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoAggregatorPadMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoAggregatorPadMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoAggregatorPadMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoAggregatorPadMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoAggregatorPadMethod "hasBuffer" o = GstBase.AggregatorPad.AggregatorPadHasBufferMethodInfo+    ResolveVideoAggregatorPadMethod "hasCurrentBuffer" o = VideoAggregatorPadHasCurrentBufferMethodInfo+    ResolveVideoAggregatorPadMethod "hasCurrentCaps" o = Gst.Pad.PadHasCurrentCapsMethodInfo+    ResolveVideoAggregatorPadMethod "isActive" o = Gst.Pad.PadIsActiveMethodInfo+    ResolveVideoAggregatorPadMethod "isBlocked" o = Gst.Pad.PadIsBlockedMethodInfo+    ResolveVideoAggregatorPadMethod "isBlocking" o = Gst.Pad.PadIsBlockingMethodInfo+    ResolveVideoAggregatorPadMethod "isEos" o = GstBase.AggregatorPad.AggregatorPadIsEosMethodInfo+    ResolveVideoAggregatorPadMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoAggregatorPadMethod "isLinked" o = Gst.Pad.PadIsLinkedMethodInfo+    ResolveVideoAggregatorPadMethod "iterateInternalLinks" o = Gst.Pad.PadIterateInternalLinksMethodInfo+    ResolveVideoAggregatorPadMethod "iterateInternalLinksDefault" o = Gst.Pad.PadIterateInternalLinksDefaultMethodInfo+    ResolveVideoAggregatorPadMethod "link" o = Gst.Pad.PadLinkMethodInfo+    ResolveVideoAggregatorPadMethod "linkFull" o = Gst.Pad.PadLinkFullMethodInfo+    ResolveVideoAggregatorPadMethod "linkMaybeGhosting" o = Gst.Pad.PadLinkMaybeGhostingMethodInfo+    ResolveVideoAggregatorPadMethod "linkMaybeGhostingFull" o = Gst.Pad.PadLinkMaybeGhostingFullMethodInfo+    ResolveVideoAggregatorPadMethod "markReconfigure" o = Gst.Pad.PadMarkReconfigureMethodInfo+    ResolveVideoAggregatorPadMethod "needsReconfigure" o = Gst.Pad.PadNeedsReconfigureMethodInfo+    ResolveVideoAggregatorPadMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoAggregatorPadMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoAggregatorPadMethod "pauseTask" o = Gst.Pad.PadPauseTaskMethodInfo+    ResolveVideoAggregatorPadMethod "peekBuffer" o = GstBase.AggregatorPad.AggregatorPadPeekBufferMethodInfo+    ResolveVideoAggregatorPadMethod "peerQuery" o = Gst.Pad.PadPeerQueryMethodInfo+    ResolveVideoAggregatorPadMethod "peerQueryAcceptCaps" o = Gst.Pad.PadPeerQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorPadMethod "peerQueryCaps" o = Gst.Pad.PadPeerQueryCapsMethodInfo+    ResolveVideoAggregatorPadMethod "peerQueryConvert" o = Gst.Pad.PadPeerQueryConvertMethodInfo+    ResolveVideoAggregatorPadMethod "peerQueryDuration" o = Gst.Pad.PadPeerQueryDurationMethodInfo+    ResolveVideoAggregatorPadMethod "peerQueryPosition" o = Gst.Pad.PadPeerQueryPositionMethodInfo+    ResolveVideoAggregatorPadMethod "popBuffer" o = GstBase.AggregatorPad.AggregatorPadPopBufferMethodInfo+    ResolveVideoAggregatorPadMethod "proxyQueryAcceptCaps" o = Gst.Pad.PadProxyQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorPadMethod "proxyQueryCaps" o = Gst.Pad.PadProxyQueryCapsMethodInfo+    ResolveVideoAggregatorPadMethod "pullRange" o = Gst.Pad.PadPullRangeMethodInfo+    ResolveVideoAggregatorPadMethod "push" o = Gst.Pad.PadPushMethodInfo+    ResolveVideoAggregatorPadMethod "pushEvent" o = Gst.Pad.PadPushEventMethodInfo+    ResolveVideoAggregatorPadMethod "pushList" o = Gst.Pad.PadPushListMethodInfo+    ResolveVideoAggregatorPadMethod "query" o = Gst.Pad.PadQueryMethodInfo+    ResolveVideoAggregatorPadMethod "queryAcceptCaps" o = Gst.Pad.PadQueryAcceptCapsMethodInfo+    ResolveVideoAggregatorPadMethod "queryCaps" o = Gst.Pad.PadQueryCapsMethodInfo+    ResolveVideoAggregatorPadMethod "queryConvert" o = Gst.Pad.PadQueryConvertMethodInfo+    ResolveVideoAggregatorPadMethod "queryDefault" o = Gst.Pad.PadQueryDefaultMethodInfo+    ResolveVideoAggregatorPadMethod "queryDuration" o = Gst.Pad.PadQueryDurationMethodInfo+    ResolveVideoAggregatorPadMethod "queryPosition" o = Gst.Pad.PadQueryPositionMethodInfo+    ResolveVideoAggregatorPadMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoAggregatorPadMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoAggregatorPadMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoAggregatorPadMethod "removeProbe" o = Gst.Pad.PadRemoveProbeMethodInfo+    ResolveVideoAggregatorPadMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoAggregatorPadMethod "sendEvent" o = Gst.Pad.PadSendEventMethodInfo+    ResolveVideoAggregatorPadMethod "startTask" o = Gst.Pad.PadStartTaskMethodInfo+    ResolveVideoAggregatorPadMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoAggregatorPadMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoAggregatorPadMethod "stickyEventsForeach" o = Gst.Pad.PadStickyEventsForeachMethodInfo+    ResolveVideoAggregatorPadMethod "stopTask" o = Gst.Pad.PadStopTaskMethodInfo+    ResolveVideoAggregatorPadMethod "storeStickyEvent" o = Gst.Pad.PadStoreStickyEventMethodInfo+    ResolveVideoAggregatorPadMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoAggregatorPadMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoAggregatorPadMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoAggregatorPadMethod "unlink" o = Gst.Pad.PadUnlinkMethodInfo+    ResolveVideoAggregatorPadMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoAggregatorPadMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoAggregatorPadMethod "useFixedCaps" o = Gst.Pad.PadUseFixedCapsMethodInfo+    ResolveVideoAggregatorPadMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoAggregatorPadMethod "getAllowedCaps" o = Gst.Pad.PadGetAllowedCapsMethodInfo+    ResolveVideoAggregatorPadMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoAggregatorPadMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoAggregatorPadMethod "getCurrentBuffer" o = VideoAggregatorPadGetCurrentBufferMethodInfo+    ResolveVideoAggregatorPadMethod "getCurrentCaps" o = Gst.Pad.PadGetCurrentCapsMethodInfo+    ResolveVideoAggregatorPadMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoAggregatorPadMethod "getDirection" o = Gst.Pad.PadGetDirectionMethodInfo+    ResolveVideoAggregatorPadMethod "getElementPrivate" o = Gst.Pad.PadGetElementPrivateMethodInfo+    ResolveVideoAggregatorPadMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoAggregatorPadMethod "getLastFlowReturn" o = Gst.Pad.PadGetLastFlowReturnMethodInfo+    ResolveVideoAggregatorPadMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoAggregatorPadMethod "getOffset" o = Gst.Pad.PadGetOffsetMethodInfo+    ResolveVideoAggregatorPadMethod "getPadTemplate" o = Gst.Pad.PadGetPadTemplateMethodInfo+    ResolveVideoAggregatorPadMethod "getPadTemplateCaps" o = Gst.Pad.PadGetPadTemplateCapsMethodInfo+    ResolveVideoAggregatorPadMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoAggregatorPadMethod "getParentElement" o = Gst.Pad.PadGetParentElementMethodInfo+    ResolveVideoAggregatorPadMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoAggregatorPadMethod "getPeer" o = Gst.Pad.PadGetPeerMethodInfo+    ResolveVideoAggregatorPadMethod "getPreparedFrame" o = VideoAggregatorPadGetPreparedFrameMethodInfo+    ResolveVideoAggregatorPadMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoAggregatorPadMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoAggregatorPadMethod "getRange" o = Gst.Pad.PadGetRangeMethodInfo+    ResolveVideoAggregatorPadMethod "getStickyEvent" o = Gst.Pad.PadGetStickyEventMethodInfo+    ResolveVideoAggregatorPadMethod "getStream" o = Gst.Pad.PadGetStreamMethodInfo+    ResolveVideoAggregatorPadMethod "getStreamId" o = Gst.Pad.PadGetStreamIdMethodInfo+    ResolveVideoAggregatorPadMethod "getTaskState" o = Gst.Pad.PadGetTaskStateMethodInfo+    ResolveVideoAggregatorPadMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoAggregatorPadMethod "setActivateFunctionFull" o = Gst.Pad.PadSetActivateFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setActivatemodeFunctionFull" o = Gst.Pad.PadSetActivatemodeFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setActive" o = Gst.Pad.PadSetActiveMethodInfo+    ResolveVideoAggregatorPadMethod "setChainFunctionFull" o = Gst.Pad.PadSetChainFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setChainListFunctionFull" o = Gst.Pad.PadSetChainListFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoAggregatorPadMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoAggregatorPadMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoAggregatorPadMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoAggregatorPadMethod "setElementPrivate" o = Gst.Pad.PadSetElementPrivateMethodInfo+    ResolveVideoAggregatorPadMethod "setEventFullFunctionFull" o = Gst.Pad.PadSetEventFullFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setEventFunctionFull" o = Gst.Pad.PadSetEventFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setGetrangeFunctionFull" o = Gst.Pad.PadSetGetrangeFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setIterateInternalLinksFunctionFull" o = Gst.Pad.PadSetIterateInternalLinksFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setLinkFunctionFull" o = Gst.Pad.PadSetLinkFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoAggregatorPadMethod "setNeedsAlpha" o = VideoAggregatorPadSetNeedsAlphaMethodInfo+    ResolveVideoAggregatorPadMethod "setOffset" o = Gst.Pad.PadSetOffsetMethodInfo+    ResolveVideoAggregatorPadMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoAggregatorPadMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoAggregatorPadMethod "setQueryFunctionFull" o = Gst.Pad.PadSetQueryFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod "setUnlinkFunctionFull" o = Gst.Pad.PadSetUnlinkFunctionFullMethodInfo+    ResolveVideoAggregatorPadMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAggregatorPadMethod t VideoAggregatorPad, O.MethodInfo info VideoAggregatorPad p) => OL.IsLabel t (VideoAggregatorPad -> 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++-- VVV Prop "repeat-after-eos"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@repeat-after-eos@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAggregatorPad #repeatAfterEos+@+-}+getVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Bool+getVideoAggregatorPadRepeatAfterEos obj = liftIO $ B.Properties.getObjectPropertyBool obj "repeat-after-eos"++{- |+Set the value of the “@repeat-after-eos@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAggregatorPad [ #repeatAfterEos 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAggregatorPadRepeatAfterEos :: (MonadIO m, IsVideoAggregatorPad o) => o -> Bool -> m ()+setVideoAggregatorPadRepeatAfterEos obj val = liftIO $ B.Properties.setObjectPropertyBool obj "repeat-after-eos" val++{- |+Construct a `GValueConstruct` with valid value for the “@repeat-after-eos@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoAggregatorPadRepeatAfterEos :: (IsVideoAggregatorPad o) => Bool -> IO (GValueConstruct o)+constructVideoAggregatorPadRepeatAfterEos val = B.Properties.constructObjectPropertyBool "repeat-after-eos" val++#if ENABLE_OVERLOADING+data VideoAggregatorPadRepeatAfterEosPropertyInfo+instance AttrInfo VideoAggregatorPadRepeatAfterEosPropertyInfo where+    type AttrAllowedOps VideoAggregatorPadRepeatAfterEosPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint VideoAggregatorPadRepeatAfterEosPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint VideoAggregatorPadRepeatAfterEosPropertyInfo = IsVideoAggregatorPad+    type AttrGetType VideoAggregatorPadRepeatAfterEosPropertyInfo = Bool+    type AttrLabel VideoAggregatorPadRepeatAfterEosPropertyInfo = "repeat-after-eos"+    type AttrOrigin VideoAggregatorPadRepeatAfterEosPropertyInfo = VideoAggregatorPad+    attrGet _ = getVideoAggregatorPadRepeatAfterEos+    attrSet _ = setVideoAggregatorPadRepeatAfterEos+    attrConstruct _ = constructVideoAggregatorPadRepeatAfterEos+    attrClear _ = undefined+#endif++-- VVV Prop "zorder"+   -- Type: TBasicType TUInt+   -- Flags: [PropertyReadable,PropertyWritable]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@zorder@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAggregatorPad #zorder+@+-}+getVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> m Word32+getVideoAggregatorPadZorder obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "zorder"++{- |+Set the value of the “@zorder@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAggregatorPad [ #zorder 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAggregatorPadZorder :: (MonadIO m, IsVideoAggregatorPad o) => o -> Word32 -> m ()+setVideoAggregatorPadZorder obj val = liftIO $ B.Properties.setObjectPropertyUInt32 obj "zorder" val++{- |+Construct a `GValueConstruct` with valid value for the “@zorder@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoAggregatorPadZorder :: (IsVideoAggregatorPad o) => Word32 -> IO (GValueConstruct o)+constructVideoAggregatorPadZorder val = B.Properties.constructObjectPropertyUInt32 "zorder" val++#if ENABLE_OVERLOADING+data VideoAggregatorPadZorderPropertyInfo+instance AttrInfo VideoAggregatorPadZorderPropertyInfo where+    type AttrAllowedOps VideoAggregatorPadZorderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint VideoAggregatorPadZorderPropertyInfo = (~) Word32+    type AttrBaseTypeConstraint VideoAggregatorPadZorderPropertyInfo = IsVideoAggregatorPad+    type AttrGetType VideoAggregatorPadZorderPropertyInfo = Word32+    type AttrLabel VideoAggregatorPadZorderPropertyInfo = "zorder"+    type AttrOrigin VideoAggregatorPadZorderPropertyInfo = VideoAggregatorPad+    attrGet _ = getVideoAggregatorPadZorder+    attrSet _ = setVideoAggregatorPadZorder+    attrConstruct _ = constructVideoAggregatorPadZorder+    attrClear _ = undefined+#endif++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoAggregatorPad+type instance O.AttributeList VideoAggregatorPad = VideoAggregatorPadAttributeList+type VideoAggregatorPadAttributeList = ('[ '("caps", Gst.Pad.PadCapsPropertyInfo), '("direction", Gst.Pad.PadDirectionPropertyInfo), '("emitSignals", GstBase.AggregatorPad.AggregatorPadEmitSignalsPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("offset", Gst.Pad.PadOffsetPropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("repeatAfterEos", VideoAggregatorPadRepeatAfterEosPropertyInfo), '("template", Gst.Pad.PadTemplatePropertyInfo), '("zorder", VideoAggregatorPadZorderPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+videoAggregatorPadRepeatAfterEos :: AttrLabelProxy "repeatAfterEos"+videoAggregatorPadRepeatAfterEos = AttrLabelProxy++videoAggregatorPadZorder :: AttrLabelProxy "zorder"+videoAggregatorPadZorder = AttrLabelProxy++#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoAggregatorPad = VideoAggregatorPadSignalList+type VideoAggregatorPadSignalList = ('[ '("bufferConsumed", GstBase.AggregatorPad.AggregatorPadBufferConsumedSignalInfo), '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("linked", Gst.Pad.PadLinkedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("unlinked", Gst.Pad.PadUnlinkedSignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoAggregatorPad::get_current_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAggregatorPad", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_aggregator_pad_get_current_buffer" gst_video_aggregator_pad_get_current_buffer :: +    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+Returns the currently queued buffer that is going to be used+for the current output frame.++This must only be called from the @/aggregate_frames()/@ virtual method,+or from the @/prepare_frame()/@ virtual method of the aggregator pads.++The return value is only valid until @/aggregate_frames()/@ or @/prepare_frames()/@+returns.+-}+videoAggregatorPadGetCurrentBuffer ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>+    a+    {- ^ /@pad@/: a 'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad' -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ The currently queued buffer -}+videoAggregatorPadGetCurrentBuffer pad = liftIO $ do+    pad' <- unsafeManagedPtrCastPtr pad+    result <- gst_video_aggregator_pad_get_current_buffer pad'+    checkUnexpectedReturnNULL "videoAggregatorPadGetCurrentBuffer" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr pad+    return result'++#if ENABLE_OVERLOADING+data VideoAggregatorPadGetCurrentBufferMethodInfo+instance (signature ~ (m Gst.Buffer.Buffer), MonadIO m, IsVideoAggregatorPad a) => O.MethodInfo VideoAggregatorPadGetCurrentBufferMethodInfo a signature where+    overloadedMethod _ = videoAggregatorPadGetCurrentBuffer++#endif++-- method VideoAggregatorPad::get_prepared_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAggregatorPad", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_aggregator_pad_get_prepared_frame" gst_video_aggregator_pad_get_prepared_frame :: +    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})+    IO (Ptr GstVideo.VideoFrame.VideoFrame)++{- |+Returns the currently prepared video frame that has to be aggregated into+the current output frame.++This must only be called from the @/aggregate_frames()/@ virtual method,+or from the @/prepare_frame()/@ virtual method of the aggregator pads.++The return value is only valid until @/aggregate_frames()/@ or @/prepare_frames()/@+returns.+-}+videoAggregatorPadGetPreparedFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>+    a+    {- ^ /@pad@/: a 'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad' -}+    -> m GstVideo.VideoFrame.VideoFrame+    {- ^ __Returns:__ The currently prepared video frame -}+videoAggregatorPadGetPreparedFrame pad = liftIO $ do+    pad' <- unsafeManagedPtrCastPtr pad+    result <- gst_video_aggregator_pad_get_prepared_frame pad'+    checkUnexpectedReturnNULL "videoAggregatorPadGetPreparedFrame" result+    result' <- (newPtr GstVideo.VideoFrame.VideoFrame) result+    touchManagedPtr pad+    return result'++#if ENABLE_OVERLOADING+data VideoAggregatorPadGetPreparedFrameMethodInfo+instance (signature ~ (m GstVideo.VideoFrame.VideoFrame), MonadIO m, IsVideoAggregatorPad a) => O.MethodInfo VideoAggregatorPadGetPreparedFrameMethodInfo a signature where+    overloadedMethod _ = videoAggregatorPadGetPreparedFrame++#endif++-- method VideoAggregatorPad::has_current_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAggregatorPad", 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_video_aggregator_pad_has_current_buffer" gst_video_aggregator_pad_has_current_buffer :: +    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})+    IO CInt++{- |+Checks if the pad currently has a buffer queued that is going to be used+for the current output frame.++This must only be called from the @/aggregate_frames()/@ virtual method,+or from the @/prepare_frame()/@ virtual method of the aggregator pads.+-}+videoAggregatorPadHasCurrentBuffer ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>+    a+    {- ^ /@pad@/: a 'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the pad has currently a buffer queued -}+videoAggregatorPadHasCurrentBuffer pad = liftIO $ do+    pad' <- unsafeManagedPtrCastPtr pad+    result <- gst_video_aggregator_pad_has_current_buffer pad'+    let result' = (/= 0) result+    touchManagedPtr pad+    return result'++#if ENABLE_OVERLOADING+data VideoAggregatorPadHasCurrentBufferMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoAggregatorPad a) => O.MethodInfo VideoAggregatorPadHasCurrentBufferMethodInfo a signature where+    overloadedMethod _ = videoAggregatorPadHasCurrentBuffer++#endif++-- method VideoAggregatorPad::set_needs_alpha+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "pad", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAggregatorPad", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needs_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if this pad requires alpha output", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_aggregator_pad_set_needs_alpha" gst_video_aggregator_pad_set_needs_alpha :: +    Ptr VideoAggregatorPad ->               -- pad : TInterface (Name {namespace = "GstVideo", name = "VideoAggregatorPad"})+    CInt ->                                 -- needs_alpha : TBasicType TBoolean+    IO ()++{- |+Allows selecting that this pad requires an output format with alpha+-}+videoAggregatorPadSetNeedsAlpha ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoAggregatorPad a) =>+    a+    {- ^ /@pad@/: a 'GI.GstVideo.Objects.VideoAggregatorPad.VideoAggregatorPad' -}+    -> Bool+    {- ^ /@needsAlpha@/: 'True' if this pad requires alpha output -}+    -> m ()+videoAggregatorPadSetNeedsAlpha pad needsAlpha = liftIO $ do+    pad' <- unsafeManagedPtrCastPtr pad+    let needsAlpha' = (fromIntegral . fromEnum) needsAlpha+    gst_video_aggregator_pad_set_needs_alpha pad' needsAlpha'+    touchManagedPtr pad+    return ()++#if ENABLE_OVERLOADING+data VideoAggregatorPadSetNeedsAlphaMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoAggregatorPad a) => O.MethodInfo VideoAggregatorPadSetNeedsAlphaMethodInfo a signature where+    overloadedMethod _ = videoAggregatorPadSetNeedsAlpha++#endif++
+ GI/GstVideo/Objects/VideoAggregatorPad.hs-boot view
@@ -0,0 +1,47 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoAggregatorPad 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++newtype VideoAggregatorPad = VideoAggregatorPad (ManagedPtr VideoAggregatorPad)+instance GObject VideoAggregatorPad where+class (GObject o, O.IsDescendantOf VideoAggregatorPad o) => IsVideoAggregatorPad o+instance (GObject o, O.IsDescendantOf VideoAggregatorPad o) => IsVideoAggregatorPad o+instance O.HasParentTypes VideoAggregatorPad+#if ENABLE_OVERLOADING+data VideoAggregatorPadRepeatAfterEosPropertyInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorPadZorderPropertyInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorPadGetCurrentBufferMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorPadGetPreparedFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorPadHasCurrentBufferMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoAggregatorPadSetNeedsAlphaMethodInfo+#endif
+ GI/GstVideo/Objects/VideoBufferPool.hs view
@@ -0,0 +1,190 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++/No description available in the introspection data./+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoBufferPool+    ( ++-- * Exported types+    VideoBufferPool(..)                     ,+    IsVideoBufferPool                       ,+    toVideoBufferPool                       ,+    noVideoBufferPool                       ,+++ -- * Methods+-- ** new #method:new#++    videoBufferPoolNew                      ,+++++    ) 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 qualified GI.Gst.Objects.BufferPool as Gst.BufferPool+import qualified GI.Gst.Objects.Object as Gst.Object++-- | Memory-managed wrapper type.+newtype VideoBufferPool = VideoBufferPool (ManagedPtr VideoBufferPool)+foreign import ccall "gst_video_buffer_pool_get_type"+    c_gst_video_buffer_pool_get_type :: IO GType++instance GObject VideoBufferPool where+    gobjectType = c_gst_video_buffer_pool_get_type+    ++-- | Type class for types which can be safely cast to `VideoBufferPool`, for instance with `toVideoBufferPool`.+class (GObject o, O.IsDescendantOf VideoBufferPool o) => IsVideoBufferPool o+instance (GObject o, O.IsDescendantOf VideoBufferPool o) => IsVideoBufferPool o++instance O.HasParentTypes VideoBufferPool+type instance O.ParentTypes VideoBufferPool = '[Gst.BufferPool.BufferPool, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoBufferPool`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoBufferPool :: (MonadIO m, IsVideoBufferPool o) => o -> m VideoBufferPool+toVideoBufferPool = liftIO . unsafeCastTo VideoBufferPool++-- | A convenience alias for `Nothing` :: `Maybe` `VideoBufferPool`.+noVideoBufferPool :: Maybe VideoBufferPool+noVideoBufferPool = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoBufferPoolMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoBufferPoolMethod "acquireBuffer" o = Gst.BufferPool.BufferPoolAcquireBufferMethodInfo+    ResolveVideoBufferPoolMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoBufferPoolMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoBufferPoolMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoBufferPoolMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoBufferPoolMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoBufferPoolMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoBufferPoolMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoBufferPoolMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoBufferPoolMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoBufferPoolMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoBufferPoolMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoBufferPoolMethod "hasOption" o = Gst.BufferPool.BufferPoolHasOptionMethodInfo+    ResolveVideoBufferPoolMethod "isActive" o = Gst.BufferPool.BufferPoolIsActiveMethodInfo+    ResolveVideoBufferPoolMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoBufferPoolMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoBufferPoolMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoBufferPoolMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoBufferPoolMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoBufferPoolMethod "releaseBuffer" o = Gst.BufferPool.BufferPoolReleaseBufferMethodInfo+    ResolveVideoBufferPoolMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoBufferPoolMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoBufferPoolMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoBufferPoolMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoBufferPoolMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoBufferPoolMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoBufferPoolMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoBufferPoolMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoBufferPoolMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoBufferPoolMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoBufferPoolMethod "getConfig" o = Gst.BufferPool.BufferPoolGetConfigMethodInfo+    ResolveVideoBufferPoolMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoBufferPoolMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoBufferPoolMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoBufferPoolMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoBufferPoolMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoBufferPoolMethod "getOptions" o = Gst.BufferPool.BufferPoolGetOptionsMethodInfo+    ResolveVideoBufferPoolMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoBufferPoolMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoBufferPoolMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoBufferPoolMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoBufferPoolMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoBufferPoolMethod "setActive" o = Gst.BufferPool.BufferPoolSetActiveMethodInfo+    ResolveVideoBufferPoolMethod "setConfig" o = Gst.BufferPool.BufferPoolSetConfigMethodInfo+    ResolveVideoBufferPoolMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoBufferPoolMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoBufferPoolMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoBufferPoolMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoBufferPoolMethod "setFlushing" o = Gst.BufferPool.BufferPoolSetFlushingMethodInfo+    ResolveVideoBufferPoolMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoBufferPoolMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoBufferPoolMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoBufferPoolMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoBufferPoolMethod t VideoBufferPool, O.MethodInfo info VideoBufferPool p) => OL.IsLabel t (VideoBufferPool -> 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 VideoBufferPool+type instance O.AttributeList VideoBufferPool = VideoBufferPoolAttributeList+type VideoBufferPoolAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoBufferPool = VideoBufferPoolSignalList+type VideoBufferPoolSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoBufferPool::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoBufferPool"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_buffer_pool_new" gst_video_buffer_pool_new :: +    IO (Ptr VideoBufferPool)++{- |+Create a new bufferpool that can allocate video frames. This bufferpool+supports all the video bufferpool options.+-}+videoBufferPoolNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m VideoBufferPool+    {- ^ __Returns:__ a new 'GI.Gst.Objects.BufferPool.BufferPool' to allocate video frames -}+videoBufferPoolNew  = liftIO $ do+    result <- gst_video_buffer_pool_new+    checkUnexpectedReturnNULL "videoBufferPoolNew" result+    result' <- (wrapObject VideoBufferPool) result+    return result'++#if ENABLE_OVERLOADING+#endif++
+ GI/GstVideo/Objects/VideoBufferPool.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoBufferPool 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++newtype VideoBufferPool = VideoBufferPool (ManagedPtr VideoBufferPool)+instance GObject VideoBufferPool where+class (GObject o, O.IsDescendantOf VideoBufferPool o) => IsVideoBufferPool o+instance (GObject o, O.IsDescendantOf VideoBufferPool o) => IsVideoBufferPool o+instance O.HasParentTypes VideoBufferPool
+ GI/GstVideo/Objects/VideoDecoder.hs view
@@ -0,0 +1,2011 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++This base class is for video decoders turning encoded data into raw video+frames.++The GstVideoDecoder base class and derived subclasses should cooperate as+follows:++== Configuration++  * Initially, GstVideoDecoder calls /@start@/ when the decoder element+    is activated, which allows the subclass to perform any global setup.++  * GstVideoDecoder calls /@setFormat@/ to inform the subclass of caps+    describing input video data that it is about to receive, including+    possibly configuration data.+    While unlikely, it might be called more than once, if changing input+    parameters require reconfiguration.++  * Incoming data buffers are processed as needed, described in Data+    Processing below.++  * GstVideoDecoder calls /@stop@/ at end of all processing.++== Data processing++    * The base class gathers input data, and optionally allows subclass+      to parse this into subsequently manageable chunks, typically+      corresponding to and referred to as \'frames\'.++    * Each input frame is provided in turn to the subclass\' /@handleFrame@/+      callback.+      The ownership of the frame is given to the /@handleFrame@/ callback.++    * If codec processing results in decoded data, the subclass should call+      /@gstVideoDecoderFinishFrame@/ to have decoded data pushed.+      downstream. Otherwise, the subclass must call+      /@gstVideoDecoderDropFrame@/, to allow the base class to do timestamp+      and offset tracking, and possibly to requeue the frame for a later+      attempt in the case of reverse playback.++== Shutdown phase++  * The GstVideoDecoder class calls /@stop@/ to inform the subclass that data+    parsing will be stopped.++== Additional Notes++  * Seeking\/Flushing++    * When the pipeline is seeked or otherwise flushed, the subclass is+      informed via a call to its /@reset@/ callback, with the hard parameter+      set to true. This indicates the subclass should drop any internal data+      queues and timestamps and prepare for a fresh set of buffers to arrive+      for parsing and decoding.++  * End Of Stream++    * At end-of-stream, the subclass /@parse@/ function may be called some final+      times with the at_eos parameter set to true, indicating that the element+      should not expect any more data to be arriving, and it should parse and+      remaining frames and call 'GI.GstVideo.Objects.VideoDecoder.videoDecoderHaveFrame' if possible.++The subclass is responsible for providing pad template caps for+source and sink pads. The pads need to be named \"sink\" and \"src\". It also+needs to provide information about the ouptput caps, when they are known.+This may be when the base class calls the subclass\' /@setFormat@/ function,+though it might be during decoding, before calling+/@gstVideoDecoderFinishFrame@/. This is done via+/@gstVideoDecoderSetOutputState@/++The subclass is also responsible for providing (presentation) timestamps+(likely based on corresponding input ones).  If that is not applicable+or possible, the base class provides limited framerate based interpolation.++Similarly, the base class provides some limited (legacy) seeking support+if specifically requested by the subclass, as full-fledged support+should rather be left to upstream demuxer, parser or alike.  This simple+approach caters for seeking and duration reporting using estimated input+bitrates. To enable it, a subclass should call+/@gstVideoDecoderSetEstimateRate@/ to enable handling of incoming+byte-streams.++The base class provides some support for reverse playback, in particular+in case incoming data is not packetized or upstream does not provide+fragments on keyframe boundaries.  However, the subclass should then be+prepared for the parsing and frame processing stage to occur separately+(in normal forward processing, the latter immediately follows the former),+The subclass also needs to ensure the parsing stage properly marks+keyframes, unless it knows the upstream elements will do so properly for+incoming data.++The bare minimum that a functional subclass needs to implement is:++  * Provide pad templates+  * Inform the base class of output caps via+     /@gstVideoDecoderSetOutputState@/++  * Parse input data, if it is not considered packetized from upstream+     Data will be provided to /@parse@/ which should invoke+     /@gstVideoDecoderAddToFrame@/ and /@gstVideoDecoderHaveFrame@/ to+     separate the data belonging to each video frame.++  * Accept data in /@handleFrame@/ and provide decoded results to+     /@gstVideoDecoderFinishFrame@/, or call /@gstVideoDecoderDropFrame@/.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoDecoder+    ( ++-- * Exported types+    VideoDecoder(..)                        ,+    IsVideoDecoder                          ,+    toVideoDecoder                          ,+    noVideoDecoder                          ,+++ -- * Methods+-- ** addToFrame #method:addToFrame#++#if ENABLE_OVERLOADING+    VideoDecoderAddToFrameMethodInfo        ,+#endif+    videoDecoderAddToFrame                  ,+++-- ** allocateOutputBuffer #method:allocateOutputBuffer#++#if ENABLE_OVERLOADING+    VideoDecoderAllocateOutputBufferMethodInfo,+#endif+    videoDecoderAllocateOutputBuffer        ,+++-- ** allocateOutputFrame #method:allocateOutputFrame#++#if ENABLE_OVERLOADING+    VideoDecoderAllocateOutputFrameMethodInfo,+#endif+    videoDecoderAllocateOutputFrame         ,+++-- ** allocateOutputFrameWithParams #method:allocateOutputFrameWithParams#++#if ENABLE_OVERLOADING+    VideoDecoderAllocateOutputFrameWithParamsMethodInfo,+#endif+    videoDecoderAllocateOutputFrameWithParams,+++-- ** dropFrame #method:dropFrame#++#if ENABLE_OVERLOADING+    VideoDecoderDropFrameMethodInfo         ,+#endif+    videoDecoderDropFrame                   ,+++-- ** finishFrame #method:finishFrame#++#if ENABLE_OVERLOADING+    VideoDecoderFinishFrameMethodInfo       ,+#endif+    videoDecoderFinishFrame                 ,+++-- ** getAllocator #method:getAllocator#++#if ENABLE_OVERLOADING+    VideoDecoderGetAllocatorMethodInfo      ,+#endif+    videoDecoderGetAllocator                ,+++-- ** getBufferPool #method:getBufferPool#++#if ENABLE_OVERLOADING+    VideoDecoderGetBufferPoolMethodInfo     ,+#endif+    videoDecoderGetBufferPool               ,+++-- ** getEstimateRate #method:getEstimateRate#++#if ENABLE_OVERLOADING+    VideoDecoderGetEstimateRateMethodInfo   ,+#endif+    videoDecoderGetEstimateRate             ,+++-- ** getFrame #method:getFrame#++#if ENABLE_OVERLOADING+    VideoDecoderGetFrameMethodInfo          ,+#endif+    videoDecoderGetFrame                    ,+++-- ** getFrames #method:getFrames#++#if ENABLE_OVERLOADING+    VideoDecoderGetFramesMethodInfo         ,+#endif+    videoDecoderGetFrames                   ,+++-- ** getLatency #method:getLatency#++#if ENABLE_OVERLOADING+    VideoDecoderGetLatencyMethodInfo        ,+#endif+    videoDecoderGetLatency                  ,+++-- ** getMaxDecodeTime #method:getMaxDecodeTime#++#if ENABLE_OVERLOADING+    VideoDecoderGetMaxDecodeTimeMethodInfo  ,+#endif+    videoDecoderGetMaxDecodeTime            ,+++-- ** getMaxErrors #method:getMaxErrors#++#if ENABLE_OVERLOADING+    VideoDecoderGetMaxErrorsMethodInfo      ,+#endif+    videoDecoderGetMaxErrors                ,+++-- ** getNeedsFormat #method:getNeedsFormat#++#if ENABLE_OVERLOADING+    VideoDecoderGetNeedsFormatMethodInfo    ,+#endif+    videoDecoderGetNeedsFormat              ,+++-- ** getOldestFrame #method:getOldestFrame#++#if ENABLE_OVERLOADING+    VideoDecoderGetOldestFrameMethodInfo    ,+#endif+    videoDecoderGetOldestFrame              ,+++-- ** getOutputState #method:getOutputState#++#if ENABLE_OVERLOADING+    VideoDecoderGetOutputStateMethodInfo    ,+#endif+    videoDecoderGetOutputState              ,+++-- ** getPacketized #method:getPacketized#++#if ENABLE_OVERLOADING+    VideoDecoderGetPacketizedMethodInfo     ,+#endif+    videoDecoderGetPacketized               ,+++-- ** getPendingFrameSize #method:getPendingFrameSize#++#if ENABLE_OVERLOADING+    VideoDecoderGetPendingFrameSizeMethodInfo,+#endif+    videoDecoderGetPendingFrameSize         ,+++-- ** getQosProportion #method:getQosProportion#++#if ENABLE_OVERLOADING+    VideoDecoderGetQosProportionMethodInfo  ,+#endif+    videoDecoderGetQosProportion            ,+++-- ** haveFrame #method:haveFrame#++#if ENABLE_OVERLOADING+    VideoDecoderHaveFrameMethodInfo         ,+#endif+    videoDecoderHaveFrame                   ,+++-- ** mergeTags #method:mergeTags#++#if ENABLE_OVERLOADING+    VideoDecoderMergeTagsMethodInfo         ,+#endif+    videoDecoderMergeTags                   ,+++-- ** negotiate #method:negotiate#++#if ENABLE_OVERLOADING+    VideoDecoderNegotiateMethodInfo         ,+#endif+    videoDecoderNegotiate                   ,+++-- ** proxyGetcaps #method:proxyGetcaps#++#if ENABLE_OVERLOADING+    VideoDecoderProxyGetcapsMethodInfo      ,+#endif+    videoDecoderProxyGetcaps                ,+++-- ** releaseFrame #method:releaseFrame#++#if ENABLE_OVERLOADING+    VideoDecoderReleaseFrameMethodInfo      ,+#endif+    videoDecoderReleaseFrame                ,+++-- ** setEstimateRate #method:setEstimateRate#++#if ENABLE_OVERLOADING+    VideoDecoderSetEstimateRateMethodInfo   ,+#endif+    videoDecoderSetEstimateRate             ,+++-- ** setInterlacedOutputState #method:setInterlacedOutputState#++#if ENABLE_OVERLOADING+    VideoDecoderSetInterlacedOutputStateMethodInfo,+#endif+    videoDecoderSetInterlacedOutputState    ,+++-- ** setLatency #method:setLatency#++#if ENABLE_OVERLOADING+    VideoDecoderSetLatencyMethodInfo        ,+#endif+    videoDecoderSetLatency                  ,+++-- ** setMaxErrors #method:setMaxErrors#++#if ENABLE_OVERLOADING+    VideoDecoderSetMaxErrorsMethodInfo      ,+#endif+    videoDecoderSetMaxErrors                ,+++-- ** setNeedsFormat #method:setNeedsFormat#++#if ENABLE_OVERLOADING+    VideoDecoderSetNeedsFormatMethodInfo    ,+#endif+    videoDecoderSetNeedsFormat              ,+++-- ** setOutputState #method:setOutputState#++#if ENABLE_OVERLOADING+    VideoDecoderSetOutputStateMethodInfo    ,+#endif+    videoDecoderSetOutputState              ,+++-- ** setPacketized #method:setPacketized#++#if ENABLE_OVERLOADING+    VideoDecoderSetPacketizedMethodInfo     ,+#endif+    videoDecoderSetPacketized               ,+++-- ** setUseDefaultPadAcceptcaps #method:setUseDefaultPadAcceptcaps#++#if ENABLE_OVERLOADING+    VideoDecoderSetUseDefaultPadAcceptcapsMethodInfo,+#endif+    videoDecoderSetUseDefaultPadAcceptcaps  ,+++++    ) 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 qualified GI.Gst.Enums as Gst.Enums+import qualified GI.Gst.Objects.Allocator as Gst.Allocator+import qualified GI.Gst.Objects.BufferPool as Gst.BufferPool+import qualified GI.Gst.Objects.Element as Gst.Element+import qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.Gst.Structs.AllocationParams as Gst.AllocationParams+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.Gst.Structs.BufferPoolAcquireParams as Gst.BufferPoolAcquireParams+import qualified GI.Gst.Structs.Caps as Gst.Caps+import qualified GI.Gst.Structs.TagList as Gst.TagList+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoCodecFrame as GstVideo.VideoCodecFrame+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoCodecState as GstVideo.VideoCodecState++-- | Memory-managed wrapper type.+newtype VideoDecoder = VideoDecoder (ManagedPtr VideoDecoder)+foreign import ccall "gst_video_decoder_get_type"+    c_gst_video_decoder_get_type :: IO GType++instance GObject VideoDecoder where+    gobjectType = c_gst_video_decoder_get_type+    ++-- | Type class for types which can be safely cast to `VideoDecoder`, for instance with `toVideoDecoder`.+class (GObject o, O.IsDescendantOf VideoDecoder o) => IsVideoDecoder o+instance (GObject o, O.IsDescendantOf VideoDecoder o) => IsVideoDecoder o++instance O.HasParentTypes VideoDecoder+type instance O.ParentTypes VideoDecoder = '[Gst.Element.Element, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoDecoder`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoDecoder :: (MonadIO m, IsVideoDecoder o) => o -> m VideoDecoder+toVideoDecoder = liftIO . unsafeCastTo VideoDecoder++-- | A convenience alias for `Nothing` :: `Maybe` `VideoDecoder`.+noVideoDecoder :: Maybe VideoDecoder+noVideoDecoder = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoDecoderMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoDecoderMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo+    ResolveVideoDecoderMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoDecoderMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo+    ResolveVideoDecoderMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo+    ResolveVideoDecoderMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo+    ResolveVideoDecoderMethod "addToFrame" o = VideoDecoderAddToFrameMethodInfo+    ResolveVideoDecoderMethod "allocateOutputBuffer" o = VideoDecoderAllocateOutputBufferMethodInfo+    ResolveVideoDecoderMethod "allocateOutputFrame" o = VideoDecoderAllocateOutputFrameMethodInfo+    ResolveVideoDecoderMethod "allocateOutputFrameWithParams" o = VideoDecoderAllocateOutputFrameWithParamsMethodInfo+    ResolveVideoDecoderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoDecoderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoDecoderMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo+    ResolveVideoDecoderMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo+    ResolveVideoDecoderMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo+    ResolveVideoDecoderMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo+    ResolveVideoDecoderMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoDecoderMethod "dropFrame" o = VideoDecoderDropFrameMethodInfo+    ResolveVideoDecoderMethod "finishFrame" o = VideoDecoderFinishFrameMethodInfo+    ResolveVideoDecoderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoDecoderMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo+    ResolveVideoDecoderMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo+    ResolveVideoDecoderMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo+    ResolveVideoDecoderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoDecoderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoDecoderMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoDecoderMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoDecoderMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoDecoderMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoDecoderMethod "haveFrame" o = VideoDecoderHaveFrameMethodInfo+    ResolveVideoDecoderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoDecoderMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo+    ResolveVideoDecoderMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo+    ResolveVideoDecoderMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo+    ResolveVideoDecoderMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo+    ResolveVideoDecoderMethod "link" o = Gst.Element.ElementLinkMethodInfo+    ResolveVideoDecoderMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo+    ResolveVideoDecoderMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo+    ResolveVideoDecoderMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo+    ResolveVideoDecoderMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo+    ResolveVideoDecoderMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo+    ResolveVideoDecoderMethod "mergeTags" o = VideoDecoderMergeTagsMethodInfo+    ResolveVideoDecoderMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo+    ResolveVideoDecoderMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo+    ResolveVideoDecoderMethod "negotiate" o = VideoDecoderNegotiateMethodInfo+    ResolveVideoDecoderMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo+    ResolveVideoDecoderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoDecoderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoDecoderMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo+    ResolveVideoDecoderMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo+    ResolveVideoDecoderMethod "proxyGetcaps" o = VideoDecoderProxyGetcapsMethodInfo+    ResolveVideoDecoderMethod "query" o = Gst.Element.ElementQueryMethodInfo+    ResolveVideoDecoderMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo+    ResolveVideoDecoderMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo+    ResolveVideoDecoderMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo+    ResolveVideoDecoderMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoDecoderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoDecoderMethod "releaseFrame" o = VideoDecoderReleaseFrameMethodInfo+    ResolveVideoDecoderMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo+    ResolveVideoDecoderMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoDecoderMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo+    ResolveVideoDecoderMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo+    ResolveVideoDecoderMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo+    ResolveVideoDecoderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoDecoderMethod "seek" o = Gst.Element.ElementSeekMethodInfo+    ResolveVideoDecoderMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo+    ResolveVideoDecoderMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo+    ResolveVideoDecoderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoDecoderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoDecoderMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoDecoderMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo+    ResolveVideoDecoderMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoDecoderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoDecoderMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo+    ResolveVideoDecoderMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo+    ResolveVideoDecoderMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoDecoderMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoDecoderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoDecoderMethod "getAllocator" o = VideoDecoderGetAllocatorMethodInfo+    ResolveVideoDecoderMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo+    ResolveVideoDecoderMethod "getBufferPool" o = VideoDecoderGetBufferPoolMethodInfo+    ResolveVideoDecoderMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo+    ResolveVideoDecoderMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo+    ResolveVideoDecoderMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo+    ResolveVideoDecoderMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo+    ResolveVideoDecoderMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo+    ResolveVideoDecoderMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo+    ResolveVideoDecoderMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo+    ResolveVideoDecoderMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoDecoderMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoDecoderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoDecoderMethod "getEstimateRate" o = VideoDecoderGetEstimateRateMethodInfo+    ResolveVideoDecoderMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo+    ResolveVideoDecoderMethod "getFrame" o = VideoDecoderGetFrameMethodInfo+    ResolveVideoDecoderMethod "getFrames" o = VideoDecoderGetFramesMethodInfo+    ResolveVideoDecoderMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoDecoderMethod "getLatency" o = VideoDecoderGetLatencyMethodInfo+    ResolveVideoDecoderMethod "getMaxDecodeTime" o = VideoDecoderGetMaxDecodeTimeMethodInfo+    ResolveVideoDecoderMethod "getMaxErrors" o = VideoDecoderGetMaxErrorsMethodInfo+    ResolveVideoDecoderMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo+    ResolveVideoDecoderMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoDecoderMethod "getNeedsFormat" o = VideoDecoderGetNeedsFormatMethodInfo+    ResolveVideoDecoderMethod "getOldestFrame" o = VideoDecoderGetOldestFrameMethodInfo+    ResolveVideoDecoderMethod "getOutputState" o = VideoDecoderGetOutputStateMethodInfo+    ResolveVideoDecoderMethod "getPacketized" o = VideoDecoderGetPacketizedMethodInfo+    ResolveVideoDecoderMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo+    ResolveVideoDecoderMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo+    ResolveVideoDecoderMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoDecoderMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoDecoderMethod "getPendingFrameSize" o = VideoDecoderGetPendingFrameSizeMethodInfo+    ResolveVideoDecoderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoDecoderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoDecoderMethod "getQosProportion" o = VideoDecoderGetQosProportionMethodInfo+    ResolveVideoDecoderMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo+    ResolveVideoDecoderMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo+    ResolveVideoDecoderMethod "getState" o = Gst.Element.ElementGetStateMethodInfo+    ResolveVideoDecoderMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo+    ResolveVideoDecoderMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoDecoderMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo+    ResolveVideoDecoderMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo+    ResolveVideoDecoderMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo+    ResolveVideoDecoderMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo+    ResolveVideoDecoderMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoDecoderMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoDecoderMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoDecoderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoDecoderMethod "setEstimateRate" o = VideoDecoderSetEstimateRateMethodInfo+    ResolveVideoDecoderMethod "setInterlacedOutputState" o = VideoDecoderSetInterlacedOutputStateMethodInfo+    ResolveVideoDecoderMethod "setLatency" o = VideoDecoderSetLatencyMethodInfo+    ResolveVideoDecoderMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo+    ResolveVideoDecoderMethod "setMaxErrors" o = VideoDecoderSetMaxErrorsMethodInfo+    ResolveVideoDecoderMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoDecoderMethod "setNeedsFormat" o = VideoDecoderSetNeedsFormatMethodInfo+    ResolveVideoDecoderMethod "setOutputState" o = VideoDecoderSetOutputStateMethodInfo+    ResolveVideoDecoderMethod "setPacketized" o = VideoDecoderSetPacketizedMethodInfo+    ResolveVideoDecoderMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoDecoderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoDecoderMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo+    ResolveVideoDecoderMethod "setState" o = Gst.Element.ElementSetStateMethodInfo+    ResolveVideoDecoderMethod "setUseDefaultPadAcceptcaps" o = VideoDecoderSetUseDefaultPadAcceptcapsMethodInfo+    ResolveVideoDecoderMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoDecoderMethod t VideoDecoder, O.MethodInfo info VideoDecoder p) => OL.IsLabel t (VideoDecoder -> 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 VideoDecoder+type instance O.AttributeList VideoDecoder = VideoDecoderAttributeList+type VideoDecoderAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoDecoder = VideoDecoderSignalList+type VideoDecoderSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoDecoder::add_to_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_bytes", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of bytes to add", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_add_to_frame" gst_video_decoder_add_to_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Int32 ->                                -- n_bytes : TBasicType TInt+    IO ()++{- |+Removes next /@nBytes@/ of input data and adds it to currently parsed frame.+-}+videoDecoderAddToFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Int32+    {- ^ /@nBytes@/: the number of bytes to add -}+    -> m ()+videoDecoderAddToFrame decoder nBytes = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    gst_video_decoder_add_to_frame decoder' nBytes+    touchManagedPtr decoder+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderAddToFrameMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderAddToFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderAddToFrame++#endif++-- method VideoDecoder::allocate_output_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_allocate_output_buffer" gst_video_decoder_allocate_output_buffer :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+Helper function that allocates a buffer to hold a video frame for /@decoder@/\'s+current 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.++You should use 'GI.GstVideo.Objects.VideoDecoder.videoDecoderAllocateOutputFrame' instead of this+function, if possible at all.+-}+videoDecoderAllocateOutputBuffer ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ allocated buffer, or NULL if no buffer could be+    allocated (e.g. when downstream is flushing or shutting down) -}+videoDecoderAllocateOutputBuffer decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_allocate_output_buffer decoder'+    checkUnexpectedReturnNULL "videoDecoderAllocateOutputBuffer" result+    result' <- (wrapBoxed Gst.Buffer.Buffer) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputBufferMethodInfo+instance (signature ~ (m Gst.Buffer.Buffer), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderAllocateOutputBufferMethodInfo a signature where+    overloadedMethod _ = videoDecoderAllocateOutputBuffer++#endif++-- method VideoDecoder::allocate_output_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_allocate_output_frame" gst_video_decoder_allocate_output_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO CInt++{- |+Helper function that allocates a buffer to hold a video frame for /@decoder@/\'s+current 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.  Subclass should already have configured video+state and set src pad caps.++The buffer allocated here is owned by the frame and you should only+keep references to the frame, not the buffer.+-}+videoDecoderAllocateOutputFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ 'GI.Gst.Enums.FlowReturnOk' if an output buffer could be allocated -}+videoDecoderAllocateOutputFrame decoder frame = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_decoder_allocate_output_frame decoder' frame'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr decoder+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderAllocateOutputFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderAllocateOutputFrame++#endif++-- method VideoDecoder::allocate_output_frame_with_params+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "params", argType = TInterface (Name {namespace = "Gst", name = "BufferPoolAcquireParams"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBufferPoolAcquireParams", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_allocate_output_frame_with_params" gst_video_decoder_allocate_output_frame_with_params :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    Ptr Gst.BufferPoolAcquireParams.BufferPoolAcquireParams -> -- params : TInterface (Name {namespace = "Gst", name = "BufferPoolAcquireParams"})+    IO CInt++{- |+Same as @/gst_video_decoder_allocate_output_frame/@ except it allows passing+'GI.Gst.Structs.BufferPoolAcquireParams.BufferPoolAcquireParams' to the sub call gst_buffer_pool_acquire_buffer.++/Since: 1.12/+-}+videoDecoderAllocateOutputFrameWithParams ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> Gst.BufferPoolAcquireParams.BufferPoolAcquireParams+    {- ^ /@params@/: a 'GI.Gst.Structs.BufferPoolAcquireParams.BufferPoolAcquireParams' -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ 'GI.Gst.Enums.FlowReturnOk' if an output buffer could be allocated -}+videoDecoderAllocateOutputFrameWithParams decoder frame params = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    frame' <- unsafeManagedPtrGetPtr frame+    params' <- unsafeManagedPtrGetPtr params+    result <- gst_video_decoder_allocate_output_frame_with_params decoder' frame' params'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr decoder+    touchManagedPtr frame+    touchManagedPtr params+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputFrameWithParamsMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> Gst.BufferPoolAcquireParams.BufferPoolAcquireParams -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderAllocateOutputFrameWithParamsMethodInfo a signature where+    overloadedMethod _ = videoDecoderAllocateOutputFrameWithParams++#endif++-- method VideoDecoder::drop_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoCodecFrame to drop", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_drop_frame" gst_video_decoder_drop_frame :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO CInt++{- |+Similar to 'GI.GstVideo.Objects.VideoDecoder.videoDecoderFinishFrame', but drops /@frame@/ in any+case and posts a QoS message with the frame\'s details on the bus.+In any case, the frame is considered finished and released.+-}+videoDecoderDropFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: the 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' to drop -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ a 'GI.Gst.Enums.FlowReturn', usually GST_FLOW_OK. -}+videoDecoderDropFrame dec frame = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    frame' <- B.ManagedPtr.disownBoxed frame+    result <- gst_video_decoder_drop_frame dec' frame'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr dec+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderDropFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderDropFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderDropFrame++#endif++-- method VideoDecoder::finish_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a decoded #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_finish_frame" gst_video_decoder_finish_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO CInt++{- |+/@frame@/ should have a valid decoded data buffer, whose metadata fields+are then appropriately set according to frame data and pushed downstream.+If no output data is provided, /@frame@/ is considered skipped.+In any case, the frame is considered finished and released.++After calling this function the output buffer of the frame is to be+considered read-only. This function will also change the metadata+of the buffer.+-}+videoDecoderFinishFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a decoded 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ a 'GI.Gst.Enums.FlowReturn' resulting from sending data downstream -}+videoDecoderFinishFrame decoder frame = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    frame' <- B.ManagedPtr.disownBoxed frame+    result <- gst_video_decoder_finish_frame decoder' frame'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr decoder+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderFinishFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderFinishFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderFinishFrame++#endif++-- method VideoDecoder::get_allocator+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface (Name {namespace = "Gst", name = "Allocator"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstAllocator\nused", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface (Name {namespace = "Gst", name = "AllocationParams"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the\n#GstAllocationParams of @allocator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_allocator" gst_video_decoder_get_allocator :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr (Ptr Gst.Allocator.Allocator) ->    -- allocator : TInterface (Name {namespace = "Gst", name = "Allocator"})+    Ptr Gst.AllocationParams.AllocationParams -> -- params : TInterface (Name {namespace = "Gst", name = "AllocationParams"})+    IO ()++{- |+Lets 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' sub-classes to know the memory /@allocator@/+used by the base class and its /@params@/.++Unref the /@allocator@/ after use it.+-}+videoDecoderGetAllocator ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m ((Gst.Allocator.Allocator, Gst.AllocationParams.AllocationParams))+videoDecoderGetAllocator decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    allocator <- allocMem :: IO (Ptr (Ptr Gst.Allocator.Allocator))+    params <- callocBoxedBytes 64 :: IO (Ptr Gst.AllocationParams.AllocationParams)+    gst_video_decoder_get_allocator decoder' allocator params+    allocator' <- peek allocator+    allocator'' <- (wrapObject Gst.Allocator.Allocator) allocator'+    params' <- (wrapBoxed Gst.AllocationParams.AllocationParams) params+    touchManagedPtr decoder+    freeMem allocator+    return (allocator'', params')++#if ENABLE_OVERLOADING+data VideoDecoderGetAllocatorMethodInfo+instance (signature ~ (m ((Gst.Allocator.Allocator, Gst.AllocationParams.AllocationParams))), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetAllocatorMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetAllocator++#endif++-- method VideoDecoder::get_buffer_pool+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "BufferPool"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_buffer_pool" gst_video_decoder_get_buffer_pool :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO (Ptr Gst.BufferPool.BufferPool)++{- |+/No description available in the introspection data./+-}+videoDecoderGetBufferPool ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Gst.BufferPool.BufferPool+    {- ^ __Returns:__ the instance of the 'GI.Gst.Objects.BufferPool.BufferPool' used+by the decoder; free it after use it -}+videoDecoderGetBufferPool decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_buffer_pool decoder'+    checkUnexpectedReturnNULL "videoDecoderGetBufferPool" result+    result' <- (wrapObject Gst.BufferPool.BufferPool) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetBufferPoolMethodInfo+instance (signature ~ (m Gst.BufferPool.BufferPool), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetBufferPoolMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetBufferPool++#endif++-- method VideoDecoder::get_estimate_rate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_estimate_rate" gst_video_decoder_get_estimate_rate :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO Int32++{- |+/No description available in the introspection data./+-}+videoDecoderGetEstimateRate ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Int32+    {- ^ __Returns:__ currently configured byte to time conversion setting -}+videoDecoderGetEstimateRate dec = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    result <- gst_video_decoder_get_estimate_rate dec'+    touchManagedPtr dec+    return result++#if ENABLE_OVERLOADING+data VideoDecoderGetEstimateRateMethodInfo+instance (signature ~ (m Int32), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetEstimateRateMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetEstimateRate++#endif++-- method VideoDecoder::get_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame_number", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "system_frame_number of a frame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_frame" gst_video_decoder_get_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Int32 ->                                -- frame_number : TBasicType TInt+    IO (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)++{- |+Get a pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoDecoderGetFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Int32+    {- ^ /@frameNumber@/: system_frame_number of a frame -}+    -> m GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ __Returns:__ pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' identified by /@frameNumber@/. -}+videoDecoderGetFrame decoder frameNumber = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_frame decoder' frameNumber+    checkUnexpectedReturnNULL "videoDecoderGetFrame" result+    result' <- (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetFrameMethodInfo+instance (signature ~ (Int32 -> m GstVideo.VideoCodecFrame.VideoCodecFrame), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetFrame++#endif++-- method VideoDecoder::get_frames+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TGList (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_frames" gst_video_decoder_get_frames :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO (Ptr (GList (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)))++{- |+Get all pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoDecoderGetFrames ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m [GstVideo.VideoCodecFrame.VideoCodecFrame]+    {- ^ __Returns:__ pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'. -}+videoDecoderGetFrames decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_frames decoder'+    result' <- unpackGList result+    result'' <- mapM (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result'+    g_list_free result+    touchManagedPtr decoder+    return result''++#if ENABLE_OVERLOADING+data VideoDecoderGetFramesMethodInfo+instance (signature ~ (m [GstVideo.VideoCodecFrame.VideoCodecFrame]), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetFramesMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetFrames++#endif++-- method VideoDecoder::get_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of variable in which to store the\n    configured minimum latency, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of variable in which to store the\n    configured mximum latency, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_latency" gst_video_decoder_get_latency :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr Word64 ->                           -- min_latency : TBasicType TUInt64+    Ptr Word64 ->                           -- max_latency : TBasicType TUInt64+    IO ()++{- |+Query the configured decoder latency. Results will be returned via+/@minLatency@/ and /@maxLatency@/.+-}+videoDecoderGetLatency ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m ((Word64, Word64))+videoDecoderGetLatency decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    minLatency <- allocMem :: IO (Ptr Word64)+    maxLatency <- allocMem :: IO (Ptr Word64)+    gst_video_decoder_get_latency decoder' minLatency maxLatency+    minLatency' <- peek minLatency+    maxLatency' <- peek maxLatency+    touchManagedPtr decoder+    freeMem minLatency+    freeMem maxLatency+    return (minLatency', maxLatency')++#if ENABLE_OVERLOADING+data VideoDecoderGetLatencyMethodInfo+instance (signature ~ (m ((Word64, Word64))), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetLatencyMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetLatency++#endif++-- method VideoDecoder::get_max_decode_time+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt64)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_max_decode_time" gst_video_decoder_get_max_decode_time :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO Int64++{- |+Determines maximum possible decoding time for /@frame@/ that will+allow it to decode and arrive in time (as determined by QoS events).+In particular, a negative result means decoding in time is no longer possible+and should therefore occur as soon\/skippy as possible.+-}+videoDecoderGetMaxDecodeTime ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m Int64+    {- ^ __Returns:__ max decoding time. -}+videoDecoderGetMaxDecodeTime decoder frame = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_decoder_get_max_decode_time decoder' frame'+    touchManagedPtr decoder+    touchManagedPtr frame+    return result++#if ENABLE_OVERLOADING+data VideoDecoderGetMaxDecodeTimeMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Int64), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetMaxDecodeTimeMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetMaxDecodeTime++#endif++-- method VideoDecoder::get_max_errors+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_max_errors" gst_video_decoder_get_max_errors :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO Int32++{- |+/No description available in the introspection data./+-}+videoDecoderGetMaxErrors ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Int32+    {- ^ __Returns:__ currently configured decoder tolerated error count. -}+videoDecoderGetMaxErrors dec = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    result <- gst_video_decoder_get_max_errors dec'+    touchManagedPtr dec+    return result++#if ENABLE_OVERLOADING+data VideoDecoderGetMaxErrorsMethodInfo+instance (signature ~ (m Int32), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetMaxErrorsMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetMaxErrors++#endif++-- method VideoDecoder::get_needs_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", 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_video_decoder_get_needs_format" gst_video_decoder_get_needs_format :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO CInt++{- |+Queries decoder required format handling.++/Since: 1.4/+-}+videoDecoderGetNeedsFormat ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if required format handling is enabled. -}+videoDecoderGetNeedsFormat dec = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    result <- gst_video_decoder_get_needs_format dec'+    let result' = (/= 0) result+    touchManagedPtr dec+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetNeedsFormatMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetNeedsFormatMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetNeedsFormat++#endif++-- method VideoDecoder::get_oldest_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_oldest_frame" gst_video_decoder_get_oldest_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)++{- |+Get the oldest pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoDecoderGetOldestFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ __Returns:__ oldest pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'. -}+videoDecoderGetOldestFrame decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_oldest_frame decoder'+    checkUnexpectedReturnNULL "videoDecoderGetOldestFrame" result+    result' <- (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetOldestFrameMethodInfo+instance (signature ~ (m GstVideo.VideoCodecFrame.VideoCodecFrame), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetOldestFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetOldestFrame++#endif++-- method VideoDecoder::get_output_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_output_state" gst_video_decoder_get_output_state :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO (Ptr GstVideo.VideoCodecState.VideoCodecState)++{- |+Get the 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' currently describing the output stream.+-}+videoDecoderGetOutputState ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m GstVideo.VideoCodecState.VideoCodecState+    {- ^ __Returns:__ 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' describing format of video data. -}+videoDecoderGetOutputState decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_output_state decoder'+    checkUnexpectedReturnNULL "videoDecoderGetOutputState" result+    result' <- (wrapBoxed GstVideo.VideoCodecState.VideoCodecState) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetOutputStateMethodInfo+instance (signature ~ (m GstVideo.VideoCodecState.VideoCodecState), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetOutputStateMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetOutputState++#endif++-- method VideoDecoder::get_packetized+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", 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_video_decoder_get_packetized" gst_video_decoder_get_packetized :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO CInt++{- |+Queries whether input data is considered packetized or not by the+base class.+-}+videoDecoderGetPacketized ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Bool+    {- ^ __Returns:__ TRUE if input data is considered packetized. -}+videoDecoderGetPacketized decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_packetized decoder'+    let result' = (/= 0) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetPacketizedMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetPacketizedMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetPacketized++#endif++-- method VideoDecoder::get_pending_frame_size+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUInt64)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_pending_frame_size" gst_video_decoder_get_pending_frame_size :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO Word64++{- |+Returns the number of bytes previously added to the current frame+by calling 'GI.GstVideo.Objects.VideoDecoder.videoDecoderAddToFrame'.++/Since: 1.4/+-}+videoDecoderGetPendingFrameSize ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Word64+    {- ^ __Returns:__ The number of bytes pending for the current frame -}+videoDecoderGetPendingFrameSize decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_pending_frame_size decoder'+    touchManagedPtr decoder+    return result++#if ENABLE_OVERLOADING+data VideoDecoderGetPendingFrameSizeMethodInfo+instance (signature ~ (m Word64), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetPendingFrameSizeMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetPendingFrameSize++#endif++-- method VideoDecoder::get_qos_proportion+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder\n    current QoS proportion, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TDouble)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_get_qos_proportion" gst_video_decoder_get_qos_proportion :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO CDouble++{- |+/No description available in the introspection data./++/Since: 1.0.3/+-}+videoDecoderGetQosProportion ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder'+    current QoS proportion, or 'Nothing' -}+    -> m Double+    {- ^ __Returns:__ The current QoS proportion. -}+videoDecoderGetQosProportion decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_get_qos_proportion decoder'+    let result' = realToFrac result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderGetQosProportionMethodInfo+instance (signature ~ (m Double), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderGetQosProportionMethodInfo a signature where+    overloadedMethod _ = videoDecoderGetQosProportion++#endif++-- method VideoDecoder::have_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_have_frame" gst_video_decoder_have_frame :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO CInt++{- |+Gathers all data collected for currently parsed frame, gathers corresponding+metadata and passes it along for further processing, i.e. /@handleFrame@/.+-}+videoDecoderHaveFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ a 'GI.Gst.Enums.FlowReturn' -}+videoDecoderHaveFrame decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_have_frame decoder'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderHaveFrameMethodInfo+instance (signature ~ (m Gst.Enums.FlowReturn), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderHaveFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderHaveFrame++#endif++-- method VideoDecoder::merge_tags+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tags", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GstTagList to merge, or NULL to unset\n    previously-set tags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "Gst", name = "TagMergeMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_merge_tags" gst_video_decoder_merge_tags :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr Gst.TagList.TagList ->              -- tags : TInterface (Name {namespace = "Gst", name = "TagList"})+    CUInt ->                                -- mode : TInterface (Name {namespace = "Gst", name = "TagMergeMode"})+    IO ()++{- |+Sets the audio decoder tags and how they should be merged with any+upstream stream tags. This will override any tags previously-set+with @/gst_audio_decoder_merge_tags()/@.++Note that this is provided for convenience, and the subclass is+not required to use this and can still do tag handling on its own.++MT safe.+-}+videoDecoderMergeTags ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Maybe (Gst.TagList.TagList)+    {- ^ /@tags@/: a 'GI.Gst.Structs.TagList.TagList' to merge, or NULL to unset+    previously-set tags -}+    -> Gst.Enums.TagMergeMode+    {- ^ /@mode@/: the 'GI.Gst.Enums.TagMergeMode' to use, usually @/GST_TAG_MERGE_REPLACE/@ -}+    -> m ()+videoDecoderMergeTags decoder tags mode = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    maybeTags <- case tags of+        Nothing -> return nullPtr+        Just jTags -> do+            jTags' <- unsafeManagedPtrGetPtr jTags+            return jTags'+    let mode' = (fromIntegral . fromEnum) mode+    gst_video_decoder_merge_tags decoder' maybeTags mode'+    touchManagedPtr decoder+    whenJust tags touchManagedPtr+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderMergeTagsMethodInfo+instance (signature ~ (Maybe (Gst.TagList.TagList) -> Gst.Enums.TagMergeMode -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderMergeTagsMethodInfo a signature where+    overloadedMethod _ = videoDecoderMergeTags++#endif++-- method VideoDecoder::negotiate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", 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_video_decoder_negotiate" gst_video_decoder_negotiate :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    IO CInt++{- |+Negotiate with downstream elements to currently configured 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.+Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if+negotiate fails.+-}+videoDecoderNegotiate ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the negotiation succeeded, else 'False'. -}+videoDecoderNegotiate decoder = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    result <- gst_video_decoder_negotiate decoder'+    let result' = (/= 0) result+    touchManagedPtr decoder+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderNegotiateMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderNegotiateMethodInfo a signature where+    overloadedMethod _ = videoDecoderNegotiate++#endif++-- method VideoDecoder::proxy_getcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "initial caps", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "filter caps", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Caps"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_proxy_getcaps" gst_video_decoder_proxy_getcaps :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr Gst.Caps.Caps ->                    -- caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    Ptr Gst.Caps.Caps ->                    -- filter : TInterface (Name {namespace = "Gst", name = "Caps"})+    IO (Ptr Gst.Caps.Caps)++{- |+Returns caps that express /@caps@/ (or sink template caps if /@caps@/ == NULL)+restricted to resolution\/format\/... combinations supported by downstream+elements.++/Since: 1.6/+-}+videoDecoderProxyGetcaps ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Maybe (Gst.Caps.Caps)+    {- ^ /@caps@/: initial caps -}+    -> Maybe (Gst.Caps.Caps)+    {- ^ /@filter@/: filter caps -}+    -> m Gst.Caps.Caps+    {- ^ __Returns:__ a 'GI.Gst.Structs.Caps.Caps' owned by caller -}+videoDecoderProxyGetcaps decoder caps filter = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    maybeCaps <- case caps of+        Nothing -> return nullPtr+        Just jCaps -> do+            jCaps' <- unsafeManagedPtrGetPtr jCaps+            return jCaps'+    maybeFilter <- case filter of+        Nothing -> return nullPtr+        Just jFilter -> do+            jFilter' <- unsafeManagedPtrGetPtr jFilter+            return jFilter'+    result <- gst_video_decoder_proxy_getcaps decoder' maybeCaps maybeFilter+    checkUnexpectedReturnNULL "videoDecoderProxyGetcaps" result+    result' <- (wrapBoxed Gst.Caps.Caps) result+    touchManagedPtr decoder+    whenJust caps touchManagedPtr+    whenJust filter touchManagedPtr+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderProxyGetcapsMethodInfo+instance (signature ~ (Maybe (Gst.Caps.Caps) -> Maybe (Gst.Caps.Caps) -> m Gst.Caps.Caps), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderProxyGetcapsMethodInfo a signature where+    overloadedMethod _ = videoDecoderProxyGetcaps++#endif++-- method VideoDecoder::release_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoCodecFrame to release", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_release_frame" gst_video_decoder_release_frame :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO ()++{- |+Similar to 'GI.GstVideo.Objects.VideoDecoder.videoDecoderDropFrame', but simply releases /@frame@/+without any processing other than removing it from list of pending frames,+after which it is considered finished and released.++/Since: 1.2.2/+-}+videoDecoderReleaseFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: the 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' to release -}+    -> m ()+videoDecoderReleaseFrame dec frame = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    frame' <- B.ManagedPtr.disownBoxed frame+    gst_video_decoder_release_frame dec' frame'+    touchManagedPtr dec+    touchManagedPtr frame+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderReleaseFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderReleaseFrameMethodInfo a signature where+    overloadedMethod _ = videoDecoderReleaseFrame++#endif++-- method VideoDecoder::set_estimate_rate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to enable byte to time conversion", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_estimate_rate" gst_video_decoder_set_estimate_rate :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()++{- |+Allows baseclass to perform byte to time estimated conversion.+-}+videoDecoderSetEstimateRate ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Bool+    {- ^ /@enabled@/: whether to enable byte to time conversion -}+    -> m ()+videoDecoderSetEstimateRate dec enabled = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_video_decoder_set_estimate_rate dec' enabled'+    touchManagedPtr dec+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetEstimateRateMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetEstimateRateMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetEstimateRate++#endif++-- method VideoDecoder::set_interlaced_output_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fmt", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInterlaceMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstVideoInterlaceMode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The width in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The height in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reference", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "An optional reference #GstVideoCodecState", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_interlaced_output_state" gst_video_decoder_set_interlaced_output_state :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CUInt ->                                -- fmt : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    CUInt ->                                -- mode : TInterface (Name {namespace = "GstVideo", name = "VideoInterlaceMode"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    Ptr GstVideo.VideoCodecState.VideoCodecState -> -- reference : TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"})+    IO (Ptr GstVideo.VideoCodecState.VideoCodecState)++{- |+Same as @/gst_video_decoder_set_output_state/@() but also allows you to also set+the interlacing mode.++/Since: 1.16./+-}+videoDecoderSetInterlacedOutputState ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@fmt@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> GstVideo.Enums.VideoInterlaceMode+    {- ^ /@mode@/: A 'GI.GstVideo.Enums.VideoInterlaceMode' -}+    -> Word32+    {- ^ /@width@/: The width in pixels -}+    -> Word32+    {- ^ /@height@/: The height in pixels -}+    -> Maybe (GstVideo.VideoCodecState.VideoCodecState)+    {- ^ /@reference@/: An optional reference 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' -}+    -> m GstVideo.VideoCodecState.VideoCodecState+    {- ^ __Returns:__ the newly configured output state. -}+videoDecoderSetInterlacedOutputState decoder fmt mode width height reference = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    let fmt' = (fromIntegral . fromEnum) fmt+    let mode' = (fromIntegral . fromEnum) mode+    maybeReference <- case reference of+        Nothing -> return nullPtr+        Just jReference -> do+            jReference' <- unsafeManagedPtrGetPtr jReference+            return jReference'+    result <- gst_video_decoder_set_interlaced_output_state decoder' fmt' mode' width height maybeReference+    checkUnexpectedReturnNULL "videoDecoderSetInterlacedOutputState" result+    result' <- (wrapBoxed GstVideo.VideoCodecState.VideoCodecState) result+    touchManagedPtr decoder+    whenJust reference touchManagedPtr+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderSetInterlacedOutputStateMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> GstVideo.Enums.VideoInterlaceMode -> Word32 -> Word32 -> Maybe (GstVideo.VideoCodecState.VideoCodecState) -> m GstVideo.VideoCodecState.VideoCodecState), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetInterlacedOutputStateMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetInterlacedOutputState++#endif++-- method VideoDecoder::set_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "minimum latency", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "maximum latency", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_latency" gst_video_decoder_set_latency :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Word64 ->                               -- min_latency : TBasicType TUInt64+    Word64 ->                               -- max_latency : TBasicType TUInt64+    IO ()++{- |+Lets 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' sub-classes tell the baseclass what the decoder+latency is. Will also post a LATENCY message on the bus so the pipeline+can reconfigure its global latency.+-}+videoDecoderSetLatency ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Word64+    {- ^ /@minLatency@/: minimum latency -}+    -> Word64+    {- ^ /@maxLatency@/: maximum latency -}+    -> m ()+videoDecoderSetLatency decoder minLatency maxLatency = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    gst_video_decoder_set_latency decoder' minLatency maxLatency+    touchManagedPtr decoder+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetLatencyMethodInfo+instance (signature ~ (Word64 -> Word64 -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetLatencyMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetLatency++#endif++-- method VideoDecoder::set_max_errors+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "max tolerated errors", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_max_errors" gst_video_decoder_set_max_errors :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    Int32 ->                                -- num : TBasicType TInt+    IO ()++{- |+Sets numbers of tolerated decoder errors, where a tolerated one is then only+warned about, but more than tolerated will lead to fatal error.  You can set+-1 for never returning fatal errors. Default is set to+GST_VIDEO_DECODER_MAX_ERRORS.++The \'-1\' option was added in 1.4+-}+videoDecoderSetMaxErrors ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Int32+    {- ^ /@num@/: max tolerated errors -}+    -> m ()+videoDecoderSetMaxErrors dec num = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    gst_video_decoder_set_max_errors dec' num+    touchManagedPtr dec+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetMaxErrorsMethodInfo+instance (signature ~ (Int32 -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetMaxErrorsMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetMaxErrors++#endif++-- method VideoDecoder::set_needs_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dec", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "new state", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_needs_format" gst_video_decoder_set_needs_format :: +    Ptr VideoDecoder ->                     -- dec : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()++{- |+Configures decoder format needs.  If enabled, subclass needs to be+negotiated with format caps before it can process any data.  It will then+never be handed any data before it has been configured.+Otherwise, it might be handed data without having been configured and+is then expected being able to do so either by default+or based on the input data.++/Since: 1.4/+-}+videoDecoderSetNeedsFormat ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@dec@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Bool+    {- ^ /@enabled@/: new state -}+    -> m ()+videoDecoderSetNeedsFormat dec enabled = liftIO $ do+    dec' <- unsafeManagedPtrCastPtr dec+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_video_decoder_set_needs_format dec' enabled'+    touchManagedPtr dec+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetNeedsFormatMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetNeedsFormatMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetNeedsFormat++#endif++-- method VideoDecoder::set_output_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fmt", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The width in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The height in pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reference", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "An optional reference #GstVideoCodecState", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_output_state" gst_video_decoder_set_output_state :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CUInt ->                                -- fmt : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    Ptr GstVideo.VideoCodecState.VideoCodecState -> -- reference : TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"})+    IO (Ptr GstVideo.VideoCodecState.VideoCodecState)++{- |+Creates a new 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' with the specified /@fmt@/, /@width@/ and /@height@/+as the output state for the decoder.+Any previously set output state on /@decoder@/ will be replaced by the newly+created one.++If the subclass wishes to copy over existing fields (like pixel aspec ratio,+or framerate) from an existing 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState', it can be provided as a+/@reference@/.++If the subclass wishes to override some fields from the output state (like+pixel-aspect-ratio or framerate) it can do so on the returned 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.++The new output state will only take effect (set on pads and buffers) starting+from the next call to @/gst_video_decoder_finish_frame/@().+-}+videoDecoderSetOutputState ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@fmt@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> Word32+    {- ^ /@width@/: The width in pixels -}+    -> Word32+    {- ^ /@height@/: The height in pixels -}+    -> Maybe (GstVideo.VideoCodecState.VideoCodecState)+    {- ^ /@reference@/: An optional reference 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' -}+    -> m GstVideo.VideoCodecState.VideoCodecState+    {- ^ __Returns:__ the newly configured output state. -}+videoDecoderSetOutputState decoder fmt width height reference = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    let fmt' = (fromIntegral . fromEnum) fmt+    maybeReference <- case reference of+        Nothing -> return nullPtr+        Just jReference -> do+            jReference' <- unsafeManagedPtrGetPtr jReference+            return jReference'+    result <- gst_video_decoder_set_output_state decoder' fmt' width height maybeReference+    checkUnexpectedReturnNULL "videoDecoderSetOutputState" result+    result' <- (wrapBoxed GstVideo.VideoCodecState.VideoCodecState) result+    touchManagedPtr decoder+    whenJust reference touchManagedPtr+    return result'++#if ENABLE_OVERLOADING+data VideoDecoderSetOutputStateMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> Word32 -> Word32 -> Maybe (GstVideo.VideoCodecState.VideoCodecState) -> m GstVideo.VideoCodecState.VideoCodecState), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetOutputStateMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetOutputState++#endif++-- method VideoDecoder::set_packetized+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "packetized", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether the input data should be considered as packetized.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_packetized" gst_video_decoder_set_packetized :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CInt ->                                 -- packetized : TBasicType TBoolean+    IO ()++{- |+Allows baseclass to consider input data as packetized or not. If the+input is packetized, then the /@parse@/ method will not be called.+-}+videoDecoderSetPacketized ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Bool+    {- ^ /@packetized@/: whether the input data should be considered as packetized. -}+    -> m ()+videoDecoderSetPacketized decoder packetized = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    let packetized' = (fromIntegral . fromEnum) packetized+    gst_video_decoder_set_packetized decoder' packetized'+    touchManagedPtr decoder+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetPacketizedMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetPacketizedMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetPacketized++#endif++-- method VideoDecoder::set_use_default_pad_acceptcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "decoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDecoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "if the default pad accept-caps query handling should be used", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_decoder_set_use_default_pad_acceptcaps" gst_video_decoder_set_use_default_pad_acceptcaps :: +    Ptr VideoDecoder ->                     -- decoder : TInterface (Name {namespace = "GstVideo", name = "VideoDecoder"})+    CInt ->                                 -- use : TBasicType TBoolean+    IO ()++{- |+Lets 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' sub-classes decide if they want the sink pad+to use the default pad query handler to reply to accept-caps queries.++By setting this to true it is possible to further customize the default+handler with @/GST_PAD_SET_ACCEPT_INTERSECT/@ and+@/GST_PAD_SET_ACCEPT_TEMPLATE/@++/Since: 1.6/+-}+videoDecoderSetUseDefaultPadAcceptcaps ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoDecoder a) =>+    a+    {- ^ /@decoder@/: a 'GI.GstVideo.Objects.VideoDecoder.VideoDecoder' -}+    -> Bool+    {- ^ /@use@/: if the default pad accept-caps query handling should be used -}+    -> m ()+videoDecoderSetUseDefaultPadAcceptcaps decoder use = liftIO $ do+    decoder' <- unsafeManagedPtrCastPtr decoder+    let use' = (fromIntegral . fromEnum) use+    gst_video_decoder_set_use_default_pad_acceptcaps decoder' use'+    touchManagedPtr decoder+    return ()++#if ENABLE_OVERLOADING+data VideoDecoderSetUseDefaultPadAcceptcapsMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoDecoder a) => O.MethodInfo VideoDecoderSetUseDefaultPadAcceptcapsMethodInfo a signature where+    overloadedMethod _ = videoDecoderSetUseDefaultPadAcceptcaps++#endif++
+ GI/GstVideo/Objects/VideoDecoder.hs-boot view
@@ -0,0 +1,128 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoDecoder 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++newtype VideoDecoder = VideoDecoder (ManagedPtr VideoDecoder)+instance GObject VideoDecoder where+class (GObject o, O.IsDescendantOf VideoDecoder o) => IsVideoDecoder o+instance (GObject o, O.IsDescendantOf VideoDecoder o) => IsVideoDecoder o+instance O.HasParentTypes VideoDecoder+#if ENABLE_OVERLOADING+data VideoDecoderAddToFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputBufferMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderAllocateOutputFrameWithParamsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderDropFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderFinishFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetAllocatorMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetBufferPoolMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetEstimateRateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetFramesMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetLatencyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetMaxDecodeTimeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetMaxErrorsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetNeedsFormatMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetOldestFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetOutputStateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetPacketizedMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetPendingFrameSizeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderGetQosProportionMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderHaveFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderMergeTagsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderNegotiateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderProxyGetcapsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderReleaseFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetEstimateRateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetInterlacedOutputStateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetLatencyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetMaxErrorsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetNeedsFormatMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetOutputStateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetPacketizedMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDecoderSetUseDefaultPadAcceptcapsMethodInfo+#endif
+ GI/GstVideo/Objects/VideoEncoder.hs view
@@ -0,0 +1,1352 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++This base class is for video encoders turning raw video into+encoded video data.++GstVideoEncoder and subclass should cooperate as follows.++== Configuration++  * Initially, GstVideoEncoder calls /@start@/ when the encoder element+    is activated, which allows subclass to perform any global setup.+  * GstVideoEncoder calls /@setFormat@/ to inform subclass of the format+    of input video data that it is about to receive.  Subclass should+    setup for encoding and configure base class as appropriate+    (e.g. latency). While unlikely, it might be called more than once,+    if changing input parameters require reconfiguration.  Baseclass+    will ensure that processing of current configuration is finished.+  * GstVideoEncoder calls /@stop@/ at end of all processing.++== Data processing++    * Base class collects input data and metadata into a frame and hands+      this to subclass\' /@handleFrame@/.++    * If codec processing results in encoded data, subclass should call+      /@gstVideoEncoderFinishFrame@/ to have encoded data pushed+      downstream.++    * If implemented, baseclass calls subclass /@prePush@/ just prior to+      pushing to allow subclasses to modify some metadata on the buffer.+      If it returns GST_FLOW_OK, the buffer is pushed downstream.++    * GstVideoEncoderClass will handle both srcpad and sinkpad events.+      Sink events will be passed to subclass if /@event@/ callback has been+      provided.++== Shutdown phase++  * GstVideoEncoder class calls /@stop@/ to inform the subclass that data+    parsing will be stopped.++Subclass is responsible for providing pad template caps for+source and sink pads. The pads need to be named \"sink\" and \"src\". It should+also be able to provide fixed src pad caps in /@getcaps@/ by the time it calls+/@gstVideoEncoderFinishFrame@/.++Things that subclass need to take care of:++  * Provide pad templates+  * Provide source pad caps before pushing the first buffer+  * Accept data in /@handleFrame@/ and provide encoded results to+     /@gstVideoEncoderFinishFrame@/.+++The 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder':@/qos/@ property will enable the Quality-of-Service+features of the encoder which gather statistics about the real-time+performance of the downstream elements. If enabled, subclasses can+use 'GI.GstVideo.Objects.VideoEncoder.videoEncoderGetMaxEncodeTime' to check if input frames+are already late and drop them right away to give a chance to the+pipeline to catch up.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoEncoder+    ( ++-- * Exported types+    VideoEncoder(..)                        ,+    IsVideoEncoder                          ,+    toVideoEncoder                          ,+    noVideoEncoder                          ,+++ -- * Methods+-- ** allocateOutputBuffer #method:allocateOutputBuffer#++#if ENABLE_OVERLOADING+    VideoEncoderAllocateOutputBufferMethodInfo,+#endif+    videoEncoderAllocateOutputBuffer        ,+++-- ** allocateOutputFrame #method:allocateOutputFrame#++#if ENABLE_OVERLOADING+    VideoEncoderAllocateOutputFrameMethodInfo,+#endif+    videoEncoderAllocateOutputFrame         ,+++-- ** finishFrame #method:finishFrame#++#if ENABLE_OVERLOADING+    VideoEncoderFinishFrameMethodInfo       ,+#endif+    videoEncoderFinishFrame                 ,+++-- ** getAllocator #method:getAllocator#++#if ENABLE_OVERLOADING+    VideoEncoderGetAllocatorMethodInfo      ,+#endif+    videoEncoderGetAllocator                ,+++-- ** getFrame #method:getFrame#++#if ENABLE_OVERLOADING+    VideoEncoderGetFrameMethodInfo          ,+#endif+    videoEncoderGetFrame                    ,+++-- ** getFrames #method:getFrames#++#if ENABLE_OVERLOADING+    VideoEncoderGetFramesMethodInfo         ,+#endif+    videoEncoderGetFrames                   ,+++-- ** getLatency #method:getLatency#++#if ENABLE_OVERLOADING+    VideoEncoderGetLatencyMethodInfo        ,+#endif+    videoEncoderGetLatency                  ,+++-- ** getMaxEncodeTime #method:getMaxEncodeTime#++#if ENABLE_OVERLOADING+    VideoEncoderGetMaxEncodeTimeMethodInfo  ,+#endif+    videoEncoderGetMaxEncodeTime            ,+++-- ** getOldestFrame #method:getOldestFrame#++#if ENABLE_OVERLOADING+    VideoEncoderGetOldestFrameMethodInfo    ,+#endif+    videoEncoderGetOldestFrame              ,+++-- ** getOutputState #method:getOutputState#++#if ENABLE_OVERLOADING+    VideoEncoderGetOutputStateMethodInfo    ,+#endif+    videoEncoderGetOutputState              ,+++-- ** isQosEnabled #method:isQosEnabled#++#if ENABLE_OVERLOADING+    VideoEncoderIsQosEnabledMethodInfo      ,+#endif+    videoEncoderIsQosEnabled                ,+++-- ** mergeTags #method:mergeTags#++#if ENABLE_OVERLOADING+    VideoEncoderMergeTagsMethodInfo         ,+#endif+    videoEncoderMergeTags                   ,+++-- ** negotiate #method:negotiate#++#if ENABLE_OVERLOADING+    VideoEncoderNegotiateMethodInfo         ,+#endif+    videoEncoderNegotiate                   ,+++-- ** proxyGetcaps #method:proxyGetcaps#++#if ENABLE_OVERLOADING+    VideoEncoderProxyGetcapsMethodInfo      ,+#endif+    videoEncoderProxyGetcaps                ,+++-- ** setHeaders #method:setHeaders#++#if ENABLE_OVERLOADING+    VideoEncoderSetHeadersMethodInfo        ,+#endif+    videoEncoderSetHeaders                  ,+++-- ** setLatency #method:setLatency#++#if ENABLE_OVERLOADING+    VideoEncoderSetLatencyMethodInfo        ,+#endif+    videoEncoderSetLatency                  ,+++-- ** setMinPts #method:setMinPts#++#if ENABLE_OVERLOADING+    VideoEncoderSetMinPtsMethodInfo         ,+#endif+    videoEncoderSetMinPts                   ,+++-- ** setOutputState #method:setOutputState#++#if ENABLE_OVERLOADING+    VideoEncoderSetOutputStateMethodInfo    ,+#endif+    videoEncoderSetOutputState              ,+++-- ** setQosEnabled #method:setQosEnabled#++#if ENABLE_OVERLOADING+    VideoEncoderSetQosEnabledMethodInfo     ,+#endif+    videoEncoderSetQosEnabled               ,+++++ -- * Properties+-- ** qos #attr:qos#+{- | /No description available in the introspection data./+-}+#if ENABLE_OVERLOADING+    VideoEncoderQosPropertyInfo             ,+#endif+    constructVideoEncoderQos                ,+    getVideoEncoderQos                      ,+    setVideoEncoderQos                      ,+#if ENABLE_OVERLOADING+    videoEncoderQos                         ,+#endif+++++    ) 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 qualified GI.Gst.Enums as Gst.Enums+import qualified GI.Gst.Interfaces.Preset as Gst.Preset+import qualified GI.Gst.Objects.Allocator as Gst.Allocator+import qualified GI.Gst.Objects.Element as Gst.Element+import qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.Gst.Structs.AllocationParams as Gst.AllocationParams+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.Gst.Structs.Caps as Gst.Caps+import qualified GI.Gst.Structs.TagList as Gst.TagList+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoCodecFrame as GstVideo.VideoCodecFrame+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoCodecState as GstVideo.VideoCodecState++-- | Memory-managed wrapper type.+newtype VideoEncoder = VideoEncoder (ManagedPtr VideoEncoder)+foreign import ccall "gst_video_encoder_get_type"+    c_gst_video_encoder_get_type :: IO GType++instance GObject VideoEncoder where+    gobjectType = c_gst_video_encoder_get_type+    ++-- | Type class for types which can be safely cast to `VideoEncoder`, for instance with `toVideoEncoder`.+class (GObject o, O.IsDescendantOf VideoEncoder o) => IsVideoEncoder o+instance (GObject o, O.IsDescendantOf VideoEncoder o) => IsVideoEncoder o++instance O.HasParentTypes VideoEncoder+type instance O.ParentTypes VideoEncoder = '[Gst.Element.Element, Gst.Object.Object, GObject.Object.Object, Gst.Preset.Preset]++-- | Cast to `VideoEncoder`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoEncoder :: (MonadIO m, IsVideoEncoder o) => o -> m VideoEncoder+toVideoEncoder = liftIO . unsafeCastTo VideoEncoder++-- | A convenience alias for `Nothing` :: `Maybe` `VideoEncoder`.+noVideoEncoder :: Maybe VideoEncoder+noVideoEncoder = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoEncoderMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoEncoderMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo+    ResolveVideoEncoderMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoEncoderMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo+    ResolveVideoEncoderMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo+    ResolveVideoEncoderMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo+    ResolveVideoEncoderMethod "allocateOutputBuffer" o = VideoEncoderAllocateOutputBufferMethodInfo+    ResolveVideoEncoderMethod "allocateOutputFrame" o = VideoEncoderAllocateOutputFrameMethodInfo+    ResolveVideoEncoderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoEncoderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoEncoderMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo+    ResolveVideoEncoderMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo+    ResolveVideoEncoderMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo+    ResolveVideoEncoderMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo+    ResolveVideoEncoderMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoEncoderMethod "deletePreset" o = Gst.Preset.PresetDeletePresetMethodInfo+    ResolveVideoEncoderMethod "finishFrame" o = VideoEncoderFinishFrameMethodInfo+    ResolveVideoEncoderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoEncoderMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo+    ResolveVideoEncoderMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo+    ResolveVideoEncoderMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo+    ResolveVideoEncoderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoEncoderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoEncoderMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoEncoderMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoEncoderMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoEncoderMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoEncoderMethod "isEditable" o = Gst.Preset.PresetIsEditableMethodInfo+    ResolveVideoEncoderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoEncoderMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo+    ResolveVideoEncoderMethod "isQosEnabled" o = VideoEncoderIsQosEnabledMethodInfo+    ResolveVideoEncoderMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo+    ResolveVideoEncoderMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo+    ResolveVideoEncoderMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo+    ResolveVideoEncoderMethod "link" o = Gst.Element.ElementLinkMethodInfo+    ResolveVideoEncoderMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo+    ResolveVideoEncoderMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo+    ResolveVideoEncoderMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo+    ResolveVideoEncoderMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo+    ResolveVideoEncoderMethod "loadPreset" o = Gst.Preset.PresetLoadPresetMethodInfo+    ResolveVideoEncoderMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo+    ResolveVideoEncoderMethod "mergeTags" o = VideoEncoderMergeTagsMethodInfo+    ResolveVideoEncoderMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo+    ResolveVideoEncoderMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo+    ResolveVideoEncoderMethod "negotiate" o = VideoEncoderNegotiateMethodInfo+    ResolveVideoEncoderMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo+    ResolveVideoEncoderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoEncoderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoEncoderMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo+    ResolveVideoEncoderMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo+    ResolveVideoEncoderMethod "proxyGetcaps" o = VideoEncoderProxyGetcapsMethodInfo+    ResolveVideoEncoderMethod "query" o = Gst.Element.ElementQueryMethodInfo+    ResolveVideoEncoderMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo+    ResolveVideoEncoderMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo+    ResolveVideoEncoderMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo+    ResolveVideoEncoderMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoEncoderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoEncoderMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo+    ResolveVideoEncoderMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoEncoderMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo+    ResolveVideoEncoderMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo+    ResolveVideoEncoderMethod "renamePreset" o = Gst.Preset.PresetRenamePresetMethodInfo+    ResolveVideoEncoderMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo+    ResolveVideoEncoderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoEncoderMethod "savePreset" o = Gst.Preset.PresetSavePresetMethodInfo+    ResolveVideoEncoderMethod "seek" o = Gst.Element.ElementSeekMethodInfo+    ResolveVideoEncoderMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo+    ResolveVideoEncoderMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo+    ResolveVideoEncoderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoEncoderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoEncoderMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoEncoderMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo+    ResolveVideoEncoderMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoEncoderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoEncoderMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo+    ResolveVideoEncoderMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo+    ResolveVideoEncoderMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoEncoderMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoEncoderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoEncoderMethod "getAllocator" o = VideoEncoderGetAllocatorMethodInfo+    ResolveVideoEncoderMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo+    ResolveVideoEncoderMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo+    ResolveVideoEncoderMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo+    ResolveVideoEncoderMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo+    ResolveVideoEncoderMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo+    ResolveVideoEncoderMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo+    ResolveVideoEncoderMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo+    ResolveVideoEncoderMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo+    ResolveVideoEncoderMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoEncoderMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoEncoderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoEncoderMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo+    ResolveVideoEncoderMethod "getFrame" o = VideoEncoderGetFrameMethodInfo+    ResolveVideoEncoderMethod "getFrames" o = VideoEncoderGetFramesMethodInfo+    ResolveVideoEncoderMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoEncoderMethod "getLatency" o = VideoEncoderGetLatencyMethodInfo+    ResolveVideoEncoderMethod "getMaxEncodeTime" o = VideoEncoderGetMaxEncodeTimeMethodInfo+    ResolveVideoEncoderMethod "getMeta" o = Gst.Preset.PresetGetMetaMethodInfo+    ResolveVideoEncoderMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo+    ResolveVideoEncoderMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoEncoderMethod "getOldestFrame" o = VideoEncoderGetOldestFrameMethodInfo+    ResolveVideoEncoderMethod "getOutputState" o = VideoEncoderGetOutputStateMethodInfo+    ResolveVideoEncoderMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo+    ResolveVideoEncoderMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo+    ResolveVideoEncoderMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoEncoderMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoEncoderMethod "getPresetNames" o = Gst.Preset.PresetGetPresetNamesMethodInfo+    ResolveVideoEncoderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoEncoderMethod "getPropertyNames" o = Gst.Preset.PresetGetPropertyNamesMethodInfo+    ResolveVideoEncoderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoEncoderMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo+    ResolveVideoEncoderMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo+    ResolveVideoEncoderMethod "getState" o = Gst.Element.ElementGetStateMethodInfo+    ResolveVideoEncoderMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo+    ResolveVideoEncoderMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoEncoderMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo+    ResolveVideoEncoderMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo+    ResolveVideoEncoderMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo+    ResolveVideoEncoderMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo+    ResolveVideoEncoderMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoEncoderMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoEncoderMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoEncoderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoEncoderMethod "setHeaders" o = VideoEncoderSetHeadersMethodInfo+    ResolveVideoEncoderMethod "setLatency" o = VideoEncoderSetLatencyMethodInfo+    ResolveVideoEncoderMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo+    ResolveVideoEncoderMethod "setMeta" o = Gst.Preset.PresetSetMetaMethodInfo+    ResolveVideoEncoderMethod "setMinPts" o = VideoEncoderSetMinPtsMethodInfo+    ResolveVideoEncoderMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoEncoderMethod "setOutputState" o = VideoEncoderSetOutputStateMethodInfo+    ResolveVideoEncoderMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoEncoderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoEncoderMethod "setQosEnabled" o = VideoEncoderSetQosEnabledMethodInfo+    ResolveVideoEncoderMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo+    ResolveVideoEncoderMethod "setState" o = Gst.Element.ElementSetStateMethodInfo+    ResolveVideoEncoderMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoEncoderMethod t VideoEncoder, O.MethodInfo info VideoEncoder p) => OL.IsLabel t (VideoEncoder -> 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++-- VVV Prop "qos"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@qos@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoEncoder #qos+@+-}+getVideoEncoderQos :: (MonadIO m, IsVideoEncoder o) => o -> m Bool+getVideoEncoderQos obj = liftIO $ B.Properties.getObjectPropertyBool obj "qos"++{- |+Set the value of the “@qos@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoEncoder [ #qos 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoEncoderQos :: (MonadIO m, IsVideoEncoder o) => o -> Bool -> m ()+setVideoEncoderQos obj val = liftIO $ B.Properties.setObjectPropertyBool obj "qos" val++{- |+Construct a `GValueConstruct` with valid value for the “@qos@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoEncoderQos :: (IsVideoEncoder o) => Bool -> IO (GValueConstruct o)+constructVideoEncoderQos val = B.Properties.constructObjectPropertyBool "qos" val++#if ENABLE_OVERLOADING+data VideoEncoderQosPropertyInfo+instance AttrInfo VideoEncoderQosPropertyInfo where+    type AttrAllowedOps VideoEncoderQosPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint VideoEncoderQosPropertyInfo = (~) Bool+    type AttrBaseTypeConstraint VideoEncoderQosPropertyInfo = IsVideoEncoder+    type AttrGetType VideoEncoderQosPropertyInfo = Bool+    type AttrLabel VideoEncoderQosPropertyInfo = "qos"+    type AttrOrigin VideoEncoderQosPropertyInfo = VideoEncoder+    attrGet _ = getVideoEncoderQos+    attrSet _ = setVideoEncoderQos+    attrConstruct _ = constructVideoEncoderQos+    attrClear _ = undefined+#endif++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoEncoder+type instance O.AttributeList VideoEncoder = VideoEncoderAttributeList+type VideoEncoderAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("qos", VideoEncoderQosPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+videoEncoderQos :: AttrLabelProxy "qos"+videoEncoderQos = AttrLabelProxy++#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoEncoder = VideoEncoderSignalList+type VideoEncoderSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoEncoder::allocate_output_buffer+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "size of the buffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_allocate_output_buffer" gst_video_encoder_allocate_output_buffer :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Word64 ->                               -- size : TBasicType TUInt64+    IO (Ptr Gst.Buffer.Buffer)++{- |+Helper function that allocates a buffer to hold an encoded video frame+for /@encoder@/\'s current 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.+-}+videoEncoderAllocateOutputBuffer ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Word64+    {- ^ /@size@/: size of the buffer -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ allocated buffer -}+videoEncoderAllocateOutputBuffer encoder size = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_allocate_output_buffer encoder' size+    checkUnexpectedReturnNULL "videoEncoderAllocateOutputBuffer" result+    result' <- (wrapBoxed Gst.Buffer.Buffer) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderAllocateOutputBufferMethodInfo+instance (signature ~ (Word64 -> m Gst.Buffer.Buffer), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderAllocateOutputBufferMethodInfo a signature where+    overloadedMethod _ = videoEncoderAllocateOutputBuffer++#endif++-- method VideoEncoder::allocate_output_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "size of the buffer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_allocate_output_frame" gst_video_encoder_allocate_output_frame :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    Word64 ->                               -- size : TBasicType TUInt64+    IO CInt++{- |+Helper function that allocates a buffer to hold an encoded video frame for /@encoder@/\'s+current 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.  Subclass should already have configured video+state and set src pad caps.++The buffer allocated here is owned by the frame and you should only+keep references to the frame, not the buffer.+-}+videoEncoderAllocateOutputFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> Word64+    {- ^ /@size@/: size of the buffer -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ 'GI.Gst.Enums.FlowReturnOk' if an output buffer could be allocated -}+videoEncoderAllocateOutputFrame encoder frame size = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_encoder_allocate_output_frame encoder' frame' size+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr encoder+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderAllocateOutputFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> Word64 -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderAllocateOutputFrameMethodInfo a signature where+    overloadedMethod _ = videoEncoderAllocateOutputFrame++#endif++-- method VideoEncoder::finish_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an encoded #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "FlowReturn"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_finish_frame" gst_video_encoder_finish_frame :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO CInt++{- |+/@frame@/ must have a valid encoded data buffer, whose metadata fields+are then appropriately set according to frame data or no buffer at+all if the frame should be dropped.+It is subsequently pushed downstream or provided to /@prePush@/.+In any case, the frame is considered finished and released.++After calling this function the output buffer of the frame is to be+considered read-only. This function will also change the metadata+of the buffer.+-}+videoEncoderFinishFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: an encoded 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m Gst.Enums.FlowReturn+    {- ^ __Returns:__ a 'GI.Gst.Enums.FlowReturn' resulting from sending data downstream -}+videoEncoderFinishFrame encoder frame = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    frame' <- B.ManagedPtr.disownBoxed frame+    result <- gst_video_encoder_finish_frame encoder' frame'+    let result' = (toEnum . fromIntegral) result+    touchManagedPtr encoder+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderFinishFrameMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Gst.Enums.FlowReturn), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderFinishFrameMethodInfo a signature where+    overloadedMethod _ = videoEncoderFinishFrame++#endif++-- method VideoEncoder::get_allocator+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface (Name {namespace = "Gst", name = "Allocator"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstAllocator\nused", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface (Name {namespace = "Gst", name = "AllocationParams"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the\n#GstAllocationParams of @allocator", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_allocator" gst_video_encoder_get_allocator :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr (Ptr Gst.Allocator.Allocator) ->    -- allocator : TInterface (Name {namespace = "Gst", name = "Allocator"})+    Ptr Gst.AllocationParams.AllocationParams -> -- params : TInterface (Name {namespace = "Gst", name = "AllocationParams"})+    IO ()++{- |+Lets 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' sub-classes to know the memory /@allocator@/+used by the base class and its /@params@/.++Unref the /@allocator@/ after use it.+-}+videoEncoderGetAllocator ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m ((Gst.Allocator.Allocator, Gst.AllocationParams.AllocationParams))+videoEncoderGetAllocator encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    allocator <- allocMem :: IO (Ptr (Ptr Gst.Allocator.Allocator))+    params <- callocBoxedBytes 64 :: IO (Ptr Gst.AllocationParams.AllocationParams)+    gst_video_encoder_get_allocator encoder' allocator params+    allocator' <- peek allocator+    allocator'' <- (wrapObject Gst.Allocator.Allocator) allocator'+    params' <- (wrapBoxed Gst.AllocationParams.AllocationParams) params+    touchManagedPtr encoder+    freeMem allocator+    return (allocator'', params')++#if ENABLE_OVERLOADING+data VideoEncoderGetAllocatorMethodInfo+instance (signature ~ (m ((Gst.Allocator.Allocator, Gst.AllocationParams.AllocationParams))), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetAllocatorMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetAllocator++#endif++-- method VideoEncoder::get_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame_number", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "system_frame_number of a frame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_frame" gst_video_encoder_get_frame :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Int32 ->                                -- frame_number : TBasicType TInt+    IO (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)++{- |+Get a pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoEncoderGetFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Int32+    {- ^ /@frameNumber@/: system_frame_number of a frame -}+    -> m GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ __Returns:__ pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' identified by /@frameNumber@/. -}+videoEncoderGetFrame encoder frameNumber = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_get_frame encoder' frameNumber+    checkUnexpectedReturnNULL "videoEncoderGetFrame" result+    result' <- (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderGetFrameMethodInfo+instance (signature ~ (Int32 -> m GstVideo.VideoCodecFrame.VideoCodecFrame), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetFrameMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetFrame++#endif++-- method VideoEncoder::get_frames+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TGList (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_frames" gst_video_encoder_get_frames :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    IO (Ptr (GList (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)))++{- |+Get all pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoEncoderGetFrames ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m [GstVideo.VideoCodecFrame.VideoCodecFrame]+    {- ^ __Returns:__ pending unfinished 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'. -}+videoEncoderGetFrames encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_get_frames encoder'+    result' <- unpackGList result+    result'' <- mapM (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result'+    g_list_free result+    touchManagedPtr encoder+    return result''++#if ENABLE_OVERLOADING+data VideoEncoderGetFramesMethodInfo+instance (signature ~ (m [GstVideo.VideoCodecFrame.VideoCodecFrame]), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetFramesMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetFrames++#endif++-- method VideoEncoder::get_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of variable in which to store the\n    configured minimum latency, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address of variable in which to store the\n    configured maximum latency, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_latency" gst_video_encoder_get_latency :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr Word64 ->                           -- min_latency : TBasicType TUInt64+    Ptr Word64 ->                           -- max_latency : TBasicType TUInt64+    IO ()++{- |+Query the configured encoding latency. Results will be returned via+/@minLatency@/ and /@maxLatency@/.+-}+videoEncoderGetLatency ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m ((Word64, Word64))+videoEncoderGetLatency encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    minLatency <- allocMem :: IO (Ptr Word64)+    maxLatency <- allocMem :: IO (Ptr Word64)+    gst_video_encoder_get_latency encoder' minLatency maxLatency+    minLatency' <- peek minLatency+    maxLatency' <- peek maxLatency+    touchManagedPtr encoder+    freeMem minLatency+    freeMem maxLatency+    return (minLatency', maxLatency')++#if ENABLE_OVERLOADING+data VideoEncoderGetLatencyMethodInfo+instance (signature ~ (m ((Word64, Word64))), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetLatencyMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetLatency++#endif++-- method VideoEncoder::get_max_encode_time+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt64)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_max_encode_time" gst_video_encoder_get_max_encode_time :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr GstVideo.VideoCodecFrame.VideoCodecFrame -> -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO Int64++{- |+Determines maximum possible encoding time for /@frame@/ that will+allow it to encode and arrive in time (as determined by QoS events).+In particular, a negative result means encoding in time is no longer possible+and should therefore occur as soon\/skippy as possible.++If no QoS events have been received from downstream, or if+'GI.GstVideo.Objects.VideoEncoder.VideoEncoder':@/qos/@ is disabled this function returns 'GI.GLib.Constants.MAXINT64'.++/Since: 1.14/+-}+videoEncoderGetMaxEncodeTime ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m Int64+    {- ^ __Returns:__ max decoding time. -}+videoEncoderGetMaxEncodeTime encoder frame = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_encoder_get_max_encode_time encoder' frame'+    touchManagedPtr encoder+    touchManagedPtr frame+    return result++#if ENABLE_OVERLOADING+data VideoEncoderGetMaxEncodeTimeMethodInfo+instance (signature ~ (GstVideo.VideoCodecFrame.VideoCodecFrame -> m Int64), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetMaxEncodeTimeMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetMaxEncodeTime++#endif++-- method VideoEncoder::get_oldest_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_oldest_frame" gst_video_encoder_get_oldest_frame :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    IO (Ptr GstVideo.VideoCodecFrame.VideoCodecFrame)++{- |+Get the oldest unfinished pending 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame'+-}+videoEncoderGetOldestFrame ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m GstVideo.VideoCodecFrame.VideoCodecFrame+    {- ^ __Returns:__ oldest unfinished pending 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+videoEncoderGetOldestFrame encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_get_oldest_frame encoder'+    checkUnexpectedReturnNULL "videoEncoderGetOldestFrame" result+    result' <- (wrapBoxed GstVideo.VideoCodecFrame.VideoCodecFrame) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderGetOldestFrameMethodInfo+instance (signature ~ (m GstVideo.VideoCodecFrame.VideoCodecFrame), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetOldestFrameMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetOldestFrame++#endif++-- method VideoEncoder::get_output_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_get_output_state" gst_video_encoder_get_output_state :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    IO (Ptr GstVideo.VideoCodecState.VideoCodecState)++{- |+Get the current 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'+-}+videoEncoderGetOutputState ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m GstVideo.VideoCodecState.VideoCodecState+    {- ^ __Returns:__ 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' describing format of video data. -}+videoEncoderGetOutputState encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_get_output_state encoder'+    checkUnexpectedReturnNULL "videoEncoderGetOutputState" result+    result' <- (wrapBoxed GstVideo.VideoCodecState.VideoCodecState) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderGetOutputStateMethodInfo+instance (signature ~ (m GstVideo.VideoCodecState.VideoCodecState), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderGetOutputStateMethodInfo a signature where+    overloadedMethod _ = videoEncoderGetOutputState++#endif++-- method VideoEncoder::is_qos_enabled+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the encoder", 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_video_encoder_is_qos_enabled" gst_video_encoder_is_qos_enabled :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    IO CInt++{- |+Checks if /@encoder@/ is currently configured to handle Quality-of-Service+events from downstream.++/Since: 1.14/+-}+videoEncoderIsQosEnabled ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: the encoder -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the encoder is configured to perform Quality-of-Service. -}+videoEncoderIsQosEnabled encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_is_qos_enabled encoder'+    let result' = (/= 0) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderIsQosEnabledMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderIsQosEnabledMethodInfo a signature where+    overloadedMethod _ = videoEncoderIsQosEnabled++#endif++-- method VideoEncoder::merge_tags+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tags", argType = TInterface (Name {namespace = "Gst", name = "TagList"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GstTagList to merge, or NULL to unset\n    previously-set tags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "Gst", name = "TagMergeMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_merge_tags" gst_video_encoder_merge_tags :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr Gst.TagList.TagList ->              -- tags : TInterface (Name {namespace = "Gst", name = "TagList"})+    CUInt ->                                -- mode : TInterface (Name {namespace = "Gst", name = "TagMergeMode"})+    IO ()++{- |+Sets the video encoder tags and how they should be merged with any+upstream stream tags. This will override any tags previously-set+with 'GI.GstVideo.Objects.VideoEncoder.videoEncoderMergeTags'.++Note that this is provided for convenience, and the subclass is+not required to use this and can still do tag handling on its own.++MT safe.+-}+videoEncoderMergeTags ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Maybe (Gst.TagList.TagList)+    {- ^ /@tags@/: a 'GI.Gst.Structs.TagList.TagList' to merge, or NULL to unset+    previously-set tags -}+    -> Gst.Enums.TagMergeMode+    {- ^ /@mode@/: the 'GI.Gst.Enums.TagMergeMode' to use, usually @/GST_TAG_MERGE_REPLACE/@ -}+    -> m ()+videoEncoderMergeTags encoder tags mode = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    maybeTags <- case tags of+        Nothing -> return nullPtr+        Just jTags -> do+            jTags' <- unsafeManagedPtrGetPtr jTags+            return jTags'+    let mode' = (fromIntegral . fromEnum) mode+    gst_video_encoder_merge_tags encoder' maybeTags mode'+    touchManagedPtr encoder+    whenJust tags touchManagedPtr+    return ()++#if ENABLE_OVERLOADING+data VideoEncoderMergeTagsMethodInfo+instance (signature ~ (Maybe (Gst.TagList.TagList) -> Gst.Enums.TagMergeMode -> m ()), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderMergeTagsMethodInfo a signature where+    overloadedMethod _ = videoEncoderMergeTags++#endif++-- method VideoEncoder::negotiate+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", 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_video_encoder_negotiate" gst_video_encoder_negotiate :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    IO CInt++{- |+Negotiate with downstream elements to currently configured 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.+Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if+negotiate fails.+-}+videoEncoderNegotiate ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if the negotiation succeeded, else 'False'. -}+videoEncoderNegotiate encoder = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    result <- gst_video_encoder_negotiate encoder'+    let result' = (/= 0) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderNegotiateMethodInfo+instance (signature ~ (m Bool), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderNegotiateMethodInfo a signature where+    overloadedMethod _ = videoEncoderNegotiate++#endif++-- method VideoEncoder::proxy_getcaps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "enc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "initial caps", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "filter caps", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Caps"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_proxy_getcaps" gst_video_encoder_proxy_getcaps :: +    Ptr VideoEncoder ->                     -- enc : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr Gst.Caps.Caps ->                    -- caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    Ptr Gst.Caps.Caps ->                    -- filter : TInterface (Name {namespace = "Gst", name = "Caps"})+    IO (Ptr Gst.Caps.Caps)++{- |+Returns caps that express /@caps@/ (or sink template caps if /@caps@/ == NULL)+restricted to resolution\/format\/... combinations supported by downstream+elements (e.g. muxers).+-}+videoEncoderProxyGetcaps ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@enc@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Maybe (Gst.Caps.Caps)+    {- ^ /@caps@/: initial caps -}+    -> Maybe (Gst.Caps.Caps)+    {- ^ /@filter@/: filter caps -}+    -> m Gst.Caps.Caps+    {- ^ __Returns:__ a 'GI.Gst.Structs.Caps.Caps' owned by caller -}+videoEncoderProxyGetcaps enc caps filter = liftIO $ do+    enc' <- unsafeManagedPtrCastPtr enc+    maybeCaps <- case caps of+        Nothing -> return nullPtr+        Just jCaps -> do+            jCaps' <- unsafeManagedPtrGetPtr jCaps+            return jCaps'+    maybeFilter <- case filter of+        Nothing -> return nullPtr+        Just jFilter -> do+            jFilter' <- unsafeManagedPtrGetPtr jFilter+            return jFilter'+    result <- gst_video_encoder_proxy_getcaps enc' maybeCaps maybeFilter+    checkUnexpectedReturnNULL "videoEncoderProxyGetcaps" result+    result' <- (wrapBoxed Gst.Caps.Caps) result+    touchManagedPtr enc+    whenJust caps touchManagedPtr+    whenJust filter touchManagedPtr+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderProxyGetcapsMethodInfo+instance (signature ~ (Maybe (Gst.Caps.Caps) -> Maybe (Gst.Caps.Caps) -> m Gst.Caps.Caps), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderProxyGetcapsMethodInfo a signature where+    overloadedMethod _ = videoEncoderProxyGetcaps++#endif++-- method VideoEncoder::set_headers+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TGList (TInterface (Name {namespace = "Gst", name = "Buffer"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a list of #GstBuffer containing the codec header", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_set_headers" gst_video_encoder_set_headers :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr (GList (Ptr Gst.Buffer.Buffer)) ->  -- headers : TGList (TInterface (Name {namespace = "Gst", name = "Buffer"}))+    IO ()++{- |+Set the codec headers to be sent downstream whenever requested.+-}+videoEncoderSetHeaders ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> [Gst.Buffer.Buffer]+    {- ^ /@headers@/: a list of 'GI.Gst.Structs.Buffer.Buffer' containing the codec header -}+    -> m ()+videoEncoderSetHeaders encoder headers = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    headers' <- mapM B.ManagedPtr.disownBoxed headers+    headers'' <- packGList headers'+    gst_video_encoder_set_headers encoder' headers''+    touchManagedPtr encoder+    mapM_ touchManagedPtr headers+    return ()++#if ENABLE_OVERLOADING+data VideoEncoderSetHeadersMethodInfo+instance (signature ~ ([Gst.Buffer.Buffer] -> m ()), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderSetHeadersMethodInfo a signature where+    overloadedMethod _ = videoEncoderSetHeaders++#endif++-- method VideoEncoder::set_latency+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "minimum latency", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "maximum latency", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_set_latency" gst_video_encoder_set_latency :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Word64 ->                               -- min_latency : TBasicType TUInt64+    Word64 ->                               -- max_latency : TBasicType TUInt64+    IO ()++{- |+Informs baseclass of encoding latency.+-}+videoEncoderSetLatency ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Word64+    {- ^ /@minLatency@/: minimum latency -}+    -> Word64+    {- ^ /@maxLatency@/: maximum latency -}+    -> m ()+videoEncoderSetLatency encoder minLatency maxLatency = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    gst_video_encoder_set_latency encoder' minLatency maxLatency+    touchManagedPtr encoder+    return ()++#if ENABLE_OVERLOADING+data VideoEncoderSetLatencyMethodInfo+instance (signature ~ (Word64 -> Word64 -> m ()), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderSetLatencyMethodInfo a signature where+    overloadedMethod _ = videoEncoderSetLatency++#endif++-- method VideoEncoder::set_min_pts+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_pts", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "minimal PTS that will be passed to handle_frame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_set_min_pts" gst_video_encoder_set_min_pts :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Word64 ->                               -- min_pts : TBasicType TUInt64+    IO ()++{- |+Request minimal value for PTS passed to handle_frame.++For streams with reordered frames this can be used to ensure that there+is enough time to accomodate first DTS, which may be less than first PTS++Since 1.6+-}+videoEncoderSetMinPts ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Word64+    {- ^ /@minPts@/: minimal PTS that will be passed to handle_frame -}+    -> m ()+videoEncoderSetMinPts encoder minPts = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    gst_video_encoder_set_min_pts encoder' minPts+    touchManagedPtr encoder+    return ()++#if ENABLE_OVERLOADING+data VideoEncoderSetMinPtsMethodInfo+instance (signature ~ (Word64 -> m ()), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderSetMinPtsMethodInfo a signature where+    overloadedMethod _ = videoEncoderSetMinPts++#endif++-- method VideoEncoder::set_output_state+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstCaps to use for the output", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reference", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "An optional reference @GstVideoCodecState", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_set_output_state" gst_video_encoder_set_output_state :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    Ptr Gst.Caps.Caps ->                    -- caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    Ptr GstVideo.VideoCodecState.VideoCodecState -> -- reference : TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"})+    IO (Ptr GstVideo.VideoCodecState.VideoCodecState)++{- |+Creates a new 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' with the specified caps as the output state+for the encoder.+Any previously set output state on /@encoder@/ will be replaced by the newly+created one.++The specified /@caps@/ should not contain any resolution, pixel-aspect-ratio,+framerate, codec-data, .... Those should be specified instead in the returned+'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.++If the subclass wishes to copy over existing fields (like pixel aspect ratio,+or framerate) from an existing 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState', it can be provided as a+/@reference@/.++If the subclass wishes to override some fields from the output state (like+pixel-aspect-ratio or framerate) it can do so on the returned 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState'.++The new output state will only take effect (set on pads and buffers) starting+from the next call to @/gst_video_encoder_finish_frame/@().+-}+videoEncoderSetOutputState ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: a 'GI.GstVideo.Objects.VideoEncoder.VideoEncoder' -}+    -> Gst.Caps.Caps+    {- ^ /@caps@/: the 'GI.Gst.Structs.Caps.Caps' to use for the output -}+    -> Maybe (GstVideo.VideoCodecState.VideoCodecState)+    {- ^ /@reference@/: An optional reference /@gstVideoCodecState@/ -}+    -> m GstVideo.VideoCodecState.VideoCodecState+    {- ^ __Returns:__ the newly configured output state. -}+videoEncoderSetOutputState encoder caps reference = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    caps' <- B.ManagedPtr.disownBoxed caps+    maybeReference <- case reference of+        Nothing -> return nullPtr+        Just jReference -> do+            jReference' <- unsafeManagedPtrGetPtr jReference+            return jReference'+    result <- gst_video_encoder_set_output_state encoder' caps' maybeReference+    checkUnexpectedReturnNULL "videoEncoderSetOutputState" result+    result' <- (wrapBoxed GstVideo.VideoCodecState.VideoCodecState) result+    touchManagedPtr encoder+    touchManagedPtr caps+    whenJust reference touchManagedPtr+    return result'++#if ENABLE_OVERLOADING+data VideoEncoderSetOutputStateMethodInfo+instance (signature ~ (Gst.Caps.Caps -> Maybe (GstVideo.VideoCodecState.VideoCodecState) -> m GstVideo.VideoCodecState.VideoCodecState), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderSetOutputStateMethodInfo a signature where+    overloadedMethod _ = videoEncoderSetOutputState++#endif++-- method VideoEncoder::set_qos_enabled+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the encoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the new qos value.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_encoder_set_qos_enabled" gst_video_encoder_set_qos_enabled :: +    Ptr VideoEncoder ->                     -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoEncoder"})+    CInt ->                                 -- enabled : TBasicType TBoolean+    IO ()++{- |+Configures /@encoder@/ to handle Quality-of-Service events from downstream.++/Since: 1.14/+-}+videoEncoderSetQosEnabled ::+    (B.CallStack.HasCallStack, MonadIO m, IsVideoEncoder a) =>+    a+    {- ^ /@encoder@/: the encoder -}+    -> Bool+    {- ^ /@enabled@/: the new qos value. -}+    -> m ()+videoEncoderSetQosEnabled encoder enabled = liftIO $ do+    encoder' <- unsafeManagedPtrCastPtr encoder+    let enabled' = (fromIntegral . fromEnum) enabled+    gst_video_encoder_set_qos_enabled encoder' enabled'+    touchManagedPtr encoder+    return ()++#if ENABLE_OVERLOADING+data VideoEncoderSetQosEnabledMethodInfo+instance (signature ~ (Bool -> m ()), MonadIO m, IsVideoEncoder a) => O.MethodInfo VideoEncoderSetQosEnabledMethodInfo a signature where+    overloadedMethod _ = videoEncoderSetQosEnabled++#endif++
+ GI/GstVideo/Objects/VideoEncoder.hs-boot view
@@ -0,0 +1,89 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoEncoder 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++newtype VideoEncoder = VideoEncoder (ManagedPtr VideoEncoder)+instance GObject VideoEncoder where+class (GObject o, O.IsDescendantOf VideoEncoder o) => IsVideoEncoder o+instance (GObject o, O.IsDescendantOf VideoEncoder o) => IsVideoEncoder o+instance O.HasParentTypes VideoEncoder+#if ENABLE_OVERLOADING+data VideoEncoderQosPropertyInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderAllocateOutputBufferMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderAllocateOutputFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderFinishFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetAllocatorMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetFramesMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetLatencyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetMaxEncodeTimeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetOldestFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderGetOutputStateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderIsQosEnabledMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderMergeTagsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderNegotiateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderProxyGetcapsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderSetHeadersMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderSetLatencyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderSetMinPtsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderSetOutputStateMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoEncoderSetQosEnabledMethodInfo+#endif
+ GI/GstVideo/Objects/VideoFilter.hs view
@@ -0,0 +1,226 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Provides useful functions and a base class for video filters.++The videofilter will by default enable QoS on the parent GstBaseTransform+to implement frame dropping.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoFilter+    ( ++-- * Exported types+    VideoFilter(..)                         ,+    IsVideoFilter                           ,+    toVideoFilter                           ,+    noVideoFilter                           ,+++    ) 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 qualified GI.Gst.Objects.Element as Gst.Element+import qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.GstBase.Objects.BaseTransform as GstBase.BaseTransform++-- | Memory-managed wrapper type.+newtype VideoFilter = VideoFilter (ManagedPtr VideoFilter)+foreign import ccall "gst_video_filter_get_type"+    c_gst_video_filter_get_type :: IO GType++instance GObject VideoFilter where+    gobjectType = c_gst_video_filter_get_type+    ++-- | Type class for types which can be safely cast to `VideoFilter`, for instance with `toVideoFilter`.+class (GObject o, O.IsDescendantOf VideoFilter o) => IsVideoFilter o+instance (GObject o, O.IsDescendantOf VideoFilter o) => IsVideoFilter o++instance O.HasParentTypes VideoFilter+type instance O.ParentTypes VideoFilter = '[GstBase.BaseTransform.BaseTransform, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoFilter`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoFilter :: (MonadIO m, IsVideoFilter o) => o -> m VideoFilter+toVideoFilter = liftIO . unsafeCastTo VideoFilter++-- | A convenience alias for `Nothing` :: `Maybe` `VideoFilter`.+noVideoFilter :: Maybe VideoFilter+noVideoFilter = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoFilterMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoFilterMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo+    ResolveVideoFilterMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoFilterMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo+    ResolveVideoFilterMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo+    ResolveVideoFilterMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo+    ResolveVideoFilterMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoFilterMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoFilterMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo+    ResolveVideoFilterMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo+    ResolveVideoFilterMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo+    ResolveVideoFilterMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo+    ResolveVideoFilterMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoFilterMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoFilterMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo+    ResolveVideoFilterMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo+    ResolveVideoFilterMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo+    ResolveVideoFilterMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoFilterMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoFilterMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoFilterMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoFilterMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoFilterMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoFilterMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoFilterMethod "isInPlace" o = GstBase.BaseTransform.BaseTransformIsInPlaceMethodInfo+    ResolveVideoFilterMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo+    ResolveVideoFilterMethod "isPassthrough" o = GstBase.BaseTransform.BaseTransformIsPassthroughMethodInfo+    ResolveVideoFilterMethod "isQosEnabled" o = GstBase.BaseTransform.BaseTransformIsQosEnabledMethodInfo+    ResolveVideoFilterMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo+    ResolveVideoFilterMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo+    ResolveVideoFilterMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo+    ResolveVideoFilterMethod "link" o = Gst.Element.ElementLinkMethodInfo+    ResolveVideoFilterMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo+    ResolveVideoFilterMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo+    ResolveVideoFilterMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo+    ResolveVideoFilterMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo+    ResolveVideoFilterMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo+    ResolveVideoFilterMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo+    ResolveVideoFilterMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo+    ResolveVideoFilterMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo+    ResolveVideoFilterMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoFilterMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoFilterMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo+    ResolveVideoFilterMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo+    ResolveVideoFilterMethod "query" o = Gst.Element.ElementQueryMethodInfo+    ResolveVideoFilterMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo+    ResolveVideoFilterMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo+    ResolveVideoFilterMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo+    ResolveVideoFilterMethod "reconfigureSink" o = GstBase.BaseTransform.BaseTransformReconfigureSinkMethodInfo+    ResolveVideoFilterMethod "reconfigureSrc" o = GstBase.BaseTransform.BaseTransformReconfigureSrcMethodInfo+    ResolveVideoFilterMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoFilterMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoFilterMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo+    ResolveVideoFilterMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoFilterMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo+    ResolveVideoFilterMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo+    ResolveVideoFilterMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo+    ResolveVideoFilterMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoFilterMethod "seek" o = Gst.Element.ElementSeekMethodInfo+    ResolveVideoFilterMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo+    ResolveVideoFilterMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo+    ResolveVideoFilterMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoFilterMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoFilterMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoFilterMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo+    ResolveVideoFilterMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoFilterMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoFilterMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo+    ResolveVideoFilterMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo+    ResolveVideoFilterMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoFilterMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoFilterMethod "updateQos" o = GstBase.BaseTransform.BaseTransformUpdateQosMethodInfo+    ResolveVideoFilterMethod "updateSrcCaps" o = GstBase.BaseTransform.BaseTransformUpdateSrcCapsMethodInfo+    ResolveVideoFilterMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoFilterMethod "getAllocator" o = GstBase.BaseTransform.BaseTransformGetAllocatorMethodInfo+    ResolveVideoFilterMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo+    ResolveVideoFilterMethod "getBufferPool" o = GstBase.BaseTransform.BaseTransformGetBufferPoolMethodInfo+    ResolveVideoFilterMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo+    ResolveVideoFilterMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo+    ResolveVideoFilterMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo+    ResolveVideoFilterMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo+    ResolveVideoFilterMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo+    ResolveVideoFilterMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo+    ResolveVideoFilterMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo+    ResolveVideoFilterMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoFilterMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoFilterMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoFilterMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo+    ResolveVideoFilterMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoFilterMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo+    ResolveVideoFilterMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoFilterMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo+    ResolveVideoFilterMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo+    ResolveVideoFilterMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoFilterMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoFilterMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoFilterMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoFilterMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo+    ResolveVideoFilterMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo+    ResolveVideoFilterMethod "getState" o = Gst.Element.ElementGetStateMethodInfo+    ResolveVideoFilterMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo+    ResolveVideoFilterMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoFilterMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo+    ResolveVideoFilterMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo+    ResolveVideoFilterMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo+    ResolveVideoFilterMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo+    ResolveVideoFilterMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoFilterMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoFilterMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoFilterMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoFilterMethod "setGapAware" o = GstBase.BaseTransform.BaseTransformSetGapAwareMethodInfo+    ResolveVideoFilterMethod "setInPlace" o = GstBase.BaseTransform.BaseTransformSetInPlaceMethodInfo+    ResolveVideoFilterMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo+    ResolveVideoFilterMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoFilterMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoFilterMethod "setPassthrough" o = GstBase.BaseTransform.BaseTransformSetPassthroughMethodInfo+    ResolveVideoFilterMethod "setPreferPassthrough" o = GstBase.BaseTransform.BaseTransformSetPreferPassthroughMethodInfo+    ResolveVideoFilterMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoFilterMethod "setQosEnabled" o = GstBase.BaseTransform.BaseTransformSetQosEnabledMethodInfo+    ResolveVideoFilterMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo+    ResolveVideoFilterMethod "setState" o = Gst.Element.ElementSetStateMethodInfo+    ResolveVideoFilterMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoFilterMethod t VideoFilter, O.MethodInfo info VideoFilter p) => OL.IsLabel t (VideoFilter -> 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 VideoFilter+type instance O.AttributeList VideoFilter = VideoFilterAttributeList+type VideoFilterAttributeList = ('[ '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("qos", GstBase.BaseTransform.BaseTransformQosPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoFilter = VideoFilterSignalList+type VideoFilterSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++#endif++
+ GI/GstVideo/Objects/VideoFilter.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoFilter 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++newtype VideoFilter = VideoFilter (ManagedPtr VideoFilter)+instance GObject VideoFilter where+class (GObject o, O.IsDescendantOf VideoFilter o) => IsVideoFilter o+instance (GObject o, O.IsDescendantOf VideoFilter o) => IsVideoFilter o+instance O.HasParentTypes VideoFilter
+ GI/GstVideo/Objects/VideoMultiviewFlagsSet.hs view
@@ -0,0 +1,36 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoMultiviewFlagsSet () 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+++-- APIObject "VideoMultiviewFlagsSet" does not descend from GObject, it will be ignored.+
+ GI/GstVideo/Objects/VideoSink.hs view
@@ -0,0 +1,367 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Provides useful functions and a base class for video sinks.++GstVideoSink will configure the default base sink to drop frames that+arrive later than 20ms as this is considered the default threshold for+observing out-of-sync frames.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Objects.VideoSink+    ( ++-- * Exported types+    VideoSink(..)                           ,+    IsVideoSink                             ,+    toVideoSink                             ,+    noVideoSink                             ,+++ -- * Methods+-- ** centerRect #method:centerRect#++    videoSinkCenterRect                     ,+++++ -- * Properties+-- ** showPrerollFrame #attr:showPrerollFrame#+{- | Whether to show video frames during preroll. If set to 'False', video+frames will only be rendered in PLAYING state.+-}+#if ENABLE_OVERLOADING+    VideoSinkShowPrerollFramePropertyInfo   ,+#endif+    constructVideoSinkShowPrerollFrame      ,+    getVideoSinkShowPrerollFrame            ,+    setVideoSinkShowPrerollFrame            ,+#if ENABLE_OVERLOADING+    videoSinkShowPrerollFrame               ,+#endif+++++    ) 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 qualified GI.Gst.Objects.Element as Gst.Element+import qualified GI.Gst.Objects.Object as Gst.Object+import qualified GI.GstBase.Objects.BaseSink as GstBase.BaseSink+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoRectangle as GstVideo.VideoRectangle++-- | Memory-managed wrapper type.+newtype VideoSink = VideoSink (ManagedPtr VideoSink)+foreign import ccall "gst_video_sink_get_type"+    c_gst_video_sink_get_type :: IO GType++instance GObject VideoSink where+    gobjectType = c_gst_video_sink_get_type+    ++-- | Type class for types which can be safely cast to `VideoSink`, for instance with `toVideoSink`.+class (GObject o, O.IsDescendantOf VideoSink o) => IsVideoSink o+instance (GObject o, O.IsDescendantOf VideoSink o) => IsVideoSink o++instance O.HasParentTypes VideoSink+type instance O.ParentTypes VideoSink = '[GstBase.BaseSink.BaseSink, Gst.Element.Element, Gst.Object.Object, GObject.Object.Object]++-- | Cast to `VideoSink`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.+toVideoSink :: (MonadIO m, IsVideoSink o) => o -> m VideoSink+toVideoSink = liftIO . unsafeCastTo VideoSink++-- | A convenience alias for `Nothing` :: `Maybe` `VideoSink`.+noVideoSink :: Maybe VideoSink+noVideoSink = Nothing++#if ENABLE_OVERLOADING+type family ResolveVideoSinkMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoSinkMethod "abortState" o = Gst.Element.ElementAbortStateMethodInfo+    ResolveVideoSinkMethod "addControlBinding" o = Gst.Object.ObjectAddControlBindingMethodInfo+    ResolveVideoSinkMethod "addPad" o = Gst.Element.ElementAddPadMethodInfo+    ResolveVideoSinkMethod "addPropertyDeepNotifyWatch" o = Gst.Element.ElementAddPropertyDeepNotifyWatchMethodInfo+    ResolveVideoSinkMethod "addPropertyNotifyWatch" o = Gst.Element.ElementAddPropertyNotifyWatchMethodInfo+    ResolveVideoSinkMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo+    ResolveVideoSinkMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo+    ResolveVideoSinkMethod "callAsync" o = Gst.Element.ElementCallAsyncMethodInfo+    ResolveVideoSinkMethod "changeState" o = Gst.Element.ElementChangeStateMethodInfo+    ResolveVideoSinkMethod "continueState" o = Gst.Element.ElementContinueStateMethodInfo+    ResolveVideoSinkMethod "createAllPads" o = Gst.Element.ElementCreateAllPadsMethodInfo+    ResolveVideoSinkMethod "defaultError" o = Gst.Object.ObjectDefaultErrorMethodInfo+    ResolveVideoSinkMethod "doPreroll" o = GstBase.BaseSink.BaseSinkDoPrerollMethodInfo+    ResolveVideoSinkMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo+    ResolveVideoSinkMethod "foreachPad" o = Gst.Element.ElementForeachPadMethodInfo+    ResolveVideoSinkMethod "foreachSinkPad" o = Gst.Element.ElementForeachSinkPadMethodInfo+    ResolveVideoSinkMethod "foreachSrcPad" o = Gst.Element.ElementForeachSrcPadMethodInfo+    ResolveVideoSinkMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo+    ResolveVideoSinkMethod "getv" o = GObject.Object.ObjectGetvMethodInfo+    ResolveVideoSinkMethod "hasActiveControlBindings" o = Gst.Object.ObjectHasActiveControlBindingsMethodInfo+    ResolveVideoSinkMethod "hasAncestor" o = Gst.Object.ObjectHasAncestorMethodInfo+    ResolveVideoSinkMethod "hasAsAncestor" o = Gst.Object.ObjectHasAsAncestorMethodInfo+    ResolveVideoSinkMethod "hasAsParent" o = Gst.Object.ObjectHasAsParentMethodInfo+    ResolveVideoSinkMethod "isAsyncEnabled" o = GstBase.BaseSink.BaseSinkIsAsyncEnabledMethodInfo+    ResolveVideoSinkMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo+    ResolveVideoSinkMethod "isLastSampleEnabled" o = GstBase.BaseSink.BaseSinkIsLastSampleEnabledMethodInfo+    ResolveVideoSinkMethod "isLockedState" o = Gst.Element.ElementIsLockedStateMethodInfo+    ResolveVideoSinkMethod "isQosEnabled" o = GstBase.BaseSink.BaseSinkIsQosEnabledMethodInfo+    ResolveVideoSinkMethod "iteratePads" o = Gst.Element.ElementIteratePadsMethodInfo+    ResolveVideoSinkMethod "iterateSinkPads" o = Gst.Element.ElementIterateSinkPadsMethodInfo+    ResolveVideoSinkMethod "iterateSrcPads" o = Gst.Element.ElementIterateSrcPadsMethodInfo+    ResolveVideoSinkMethod "link" o = Gst.Element.ElementLinkMethodInfo+    ResolveVideoSinkMethod "linkFiltered" o = Gst.Element.ElementLinkFilteredMethodInfo+    ResolveVideoSinkMethod "linkPads" o = Gst.Element.ElementLinkPadsMethodInfo+    ResolveVideoSinkMethod "linkPadsFiltered" o = Gst.Element.ElementLinkPadsFilteredMethodInfo+    ResolveVideoSinkMethod "linkPadsFull" o = Gst.Element.ElementLinkPadsFullMethodInfo+    ResolveVideoSinkMethod "lostState" o = Gst.Element.ElementLostStateMethodInfo+    ResolveVideoSinkMethod "messageFull" o = Gst.Element.ElementMessageFullMethodInfo+    ResolveVideoSinkMethod "messageFullWithDetails" o = Gst.Element.ElementMessageFullWithDetailsMethodInfo+    ResolveVideoSinkMethod "noMorePads" o = Gst.Element.ElementNoMorePadsMethodInfo+    ResolveVideoSinkMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo+    ResolveVideoSinkMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo+    ResolveVideoSinkMethod "postMessage" o = Gst.Element.ElementPostMessageMethodInfo+    ResolveVideoSinkMethod "provideClock" o = Gst.Element.ElementProvideClockMethodInfo+    ResolveVideoSinkMethod "query" o = Gst.Element.ElementQueryMethodInfo+    ResolveVideoSinkMethod "queryConvert" o = Gst.Element.ElementQueryConvertMethodInfo+    ResolveVideoSinkMethod "queryDuration" o = Gst.Element.ElementQueryDurationMethodInfo+    ResolveVideoSinkMethod "queryLatency" o = GstBase.BaseSink.BaseSinkQueryLatencyMethodInfo+    ResolveVideoSinkMethod "queryPosition" o = Gst.Element.ElementQueryPositionMethodInfo+    ResolveVideoSinkMethod "ref" o = Gst.Object.ObjectRefMethodInfo+    ResolveVideoSinkMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo+    ResolveVideoSinkMethod "releaseRequestPad" o = Gst.Element.ElementReleaseRequestPadMethodInfo+    ResolveVideoSinkMethod "removeControlBinding" o = Gst.Object.ObjectRemoveControlBindingMethodInfo+    ResolveVideoSinkMethod "removePad" o = Gst.Element.ElementRemovePadMethodInfo+    ResolveVideoSinkMethod "removePropertyNotifyWatch" o = Gst.Element.ElementRemovePropertyNotifyWatchMethodInfo+    ResolveVideoSinkMethod "requestPad" o = Gst.Element.ElementRequestPadMethodInfo+    ResolveVideoSinkMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo+    ResolveVideoSinkMethod "seek" o = Gst.Element.ElementSeekMethodInfo+    ResolveVideoSinkMethod "seekSimple" o = Gst.Element.ElementSeekSimpleMethodInfo+    ResolveVideoSinkMethod "sendEvent" o = Gst.Element.ElementSendEventMethodInfo+    ResolveVideoSinkMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo+    ResolveVideoSinkMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo+    ResolveVideoSinkMethod "suggestNextSync" o = Gst.Object.ObjectSuggestNextSyncMethodInfo+    ResolveVideoSinkMethod "syncStateWithParent" o = Gst.Element.ElementSyncStateWithParentMethodInfo+    ResolveVideoSinkMethod "syncValues" o = Gst.Object.ObjectSyncValuesMethodInfo+    ResolveVideoSinkMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo+    ResolveVideoSinkMethod "unlink" o = Gst.Element.ElementUnlinkMethodInfo+    ResolveVideoSinkMethod "unlinkPads" o = Gst.Element.ElementUnlinkPadsMethodInfo+    ResolveVideoSinkMethod "unparent" o = Gst.Object.ObjectUnparentMethodInfo+    ResolveVideoSinkMethod "unref" o = Gst.Object.ObjectUnrefMethodInfo+    ResolveVideoSinkMethod "wait" o = GstBase.BaseSink.BaseSinkWaitMethodInfo+    ResolveVideoSinkMethod "waitClock" o = GstBase.BaseSink.BaseSinkWaitClockMethodInfo+    ResolveVideoSinkMethod "waitPreroll" o = GstBase.BaseSink.BaseSinkWaitPrerollMethodInfo+    ResolveVideoSinkMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo+    ResolveVideoSinkMethod "getBaseTime" o = Gst.Element.ElementGetBaseTimeMethodInfo+    ResolveVideoSinkMethod "getBlocksize" o = GstBase.BaseSink.BaseSinkGetBlocksizeMethodInfo+    ResolveVideoSinkMethod "getBus" o = Gst.Element.ElementGetBusMethodInfo+    ResolveVideoSinkMethod "getClock" o = Gst.Element.ElementGetClockMethodInfo+    ResolveVideoSinkMethod "getCompatiblePad" o = Gst.Element.ElementGetCompatiblePadMethodInfo+    ResolveVideoSinkMethod "getCompatiblePadTemplate" o = Gst.Element.ElementGetCompatiblePadTemplateMethodInfo+    ResolveVideoSinkMethod "getContext" o = Gst.Element.ElementGetContextMethodInfo+    ResolveVideoSinkMethod "getContextUnlocked" o = Gst.Element.ElementGetContextUnlockedMethodInfo+    ResolveVideoSinkMethod "getContexts" o = Gst.Element.ElementGetContextsMethodInfo+    ResolveVideoSinkMethod "getControlBinding" o = Gst.Object.ObjectGetControlBindingMethodInfo+    ResolveVideoSinkMethod "getControlRate" o = Gst.Object.ObjectGetControlRateMethodInfo+    ResolveVideoSinkMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo+    ResolveVideoSinkMethod "getDropOutOfSegment" o = GstBase.BaseSink.BaseSinkGetDropOutOfSegmentMethodInfo+    ResolveVideoSinkMethod "getFactory" o = Gst.Element.ElementGetFactoryMethodInfo+    ResolveVideoSinkMethod "getGValueArray" o = Gst.Object.ObjectGetGValueArrayMethodInfo+    ResolveVideoSinkMethod "getLastSample" o = GstBase.BaseSink.BaseSinkGetLastSampleMethodInfo+    ResolveVideoSinkMethod "getLatency" o = GstBase.BaseSink.BaseSinkGetLatencyMethodInfo+    ResolveVideoSinkMethod "getMaxBitrate" o = GstBase.BaseSink.BaseSinkGetMaxBitrateMethodInfo+    ResolveVideoSinkMethod "getMaxLateness" o = GstBase.BaseSink.BaseSinkGetMaxLatenessMethodInfo+    ResolveVideoSinkMethod "getMetadata" o = Gst.Element.ElementGetMetadataMethodInfo+    ResolveVideoSinkMethod "getName" o = Gst.Object.ObjectGetNameMethodInfo+    ResolveVideoSinkMethod "getPadTemplate" o = Gst.Element.ElementGetPadTemplateMethodInfo+    ResolveVideoSinkMethod "getPadTemplateList" o = Gst.Element.ElementGetPadTemplateListMethodInfo+    ResolveVideoSinkMethod "getParent" o = Gst.Object.ObjectGetParentMethodInfo+    ResolveVideoSinkMethod "getPathString" o = Gst.Object.ObjectGetPathStringMethodInfo+    ResolveVideoSinkMethod "getProcessingDeadline" o = GstBase.BaseSink.BaseSinkGetProcessingDeadlineMethodInfo+    ResolveVideoSinkMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo+    ResolveVideoSinkMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo+    ResolveVideoSinkMethod "getRenderDelay" o = GstBase.BaseSink.BaseSinkGetRenderDelayMethodInfo+    ResolveVideoSinkMethod "getRequestPad" o = Gst.Element.ElementGetRequestPadMethodInfo+    ResolveVideoSinkMethod "getStartTime" o = Gst.Element.ElementGetStartTimeMethodInfo+    ResolveVideoSinkMethod "getState" o = Gst.Element.ElementGetStateMethodInfo+    ResolveVideoSinkMethod "getStaticPad" o = Gst.Element.ElementGetStaticPadMethodInfo+    ResolveVideoSinkMethod "getSync" o = GstBase.BaseSink.BaseSinkGetSyncMethodInfo+    ResolveVideoSinkMethod "getThrottleTime" o = GstBase.BaseSink.BaseSinkGetThrottleTimeMethodInfo+    ResolveVideoSinkMethod "getTsOffset" o = GstBase.BaseSink.BaseSinkGetTsOffsetMethodInfo+    ResolveVideoSinkMethod "getValue" o = Gst.Object.ObjectGetValueMethodInfo+    ResolveVideoSinkMethod "setAsyncEnabled" o = GstBase.BaseSink.BaseSinkSetAsyncEnabledMethodInfo+    ResolveVideoSinkMethod "setBaseTime" o = Gst.Element.ElementSetBaseTimeMethodInfo+    ResolveVideoSinkMethod "setBlocksize" o = GstBase.BaseSink.BaseSinkSetBlocksizeMethodInfo+    ResolveVideoSinkMethod "setBus" o = Gst.Element.ElementSetBusMethodInfo+    ResolveVideoSinkMethod "setClock" o = Gst.Element.ElementSetClockMethodInfo+    ResolveVideoSinkMethod "setContext" o = Gst.Element.ElementSetContextMethodInfo+    ResolveVideoSinkMethod "setControlBindingDisabled" o = Gst.Object.ObjectSetControlBindingDisabledMethodInfo+    ResolveVideoSinkMethod "setControlBindingsDisabled" o = Gst.Object.ObjectSetControlBindingsDisabledMethodInfo+    ResolveVideoSinkMethod "setControlRate" o = Gst.Object.ObjectSetControlRateMethodInfo+    ResolveVideoSinkMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo+    ResolveVideoSinkMethod "setDropOutOfSegment" o = GstBase.BaseSink.BaseSinkSetDropOutOfSegmentMethodInfo+    ResolveVideoSinkMethod "setLastSampleEnabled" o = GstBase.BaseSink.BaseSinkSetLastSampleEnabledMethodInfo+    ResolveVideoSinkMethod "setLockedState" o = Gst.Element.ElementSetLockedStateMethodInfo+    ResolveVideoSinkMethod "setMaxBitrate" o = GstBase.BaseSink.BaseSinkSetMaxBitrateMethodInfo+    ResolveVideoSinkMethod "setMaxLateness" o = GstBase.BaseSink.BaseSinkSetMaxLatenessMethodInfo+    ResolveVideoSinkMethod "setName" o = Gst.Object.ObjectSetNameMethodInfo+    ResolveVideoSinkMethod "setParent" o = Gst.Object.ObjectSetParentMethodInfo+    ResolveVideoSinkMethod "setProcessingDeadline" o = GstBase.BaseSink.BaseSinkSetProcessingDeadlineMethodInfo+    ResolveVideoSinkMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo+    ResolveVideoSinkMethod "setQosEnabled" o = GstBase.BaseSink.BaseSinkSetQosEnabledMethodInfo+    ResolveVideoSinkMethod "setRenderDelay" o = GstBase.BaseSink.BaseSinkSetRenderDelayMethodInfo+    ResolveVideoSinkMethod "setStartTime" o = Gst.Element.ElementSetStartTimeMethodInfo+    ResolveVideoSinkMethod "setState" o = Gst.Element.ElementSetStateMethodInfo+    ResolveVideoSinkMethod "setSync" o = GstBase.BaseSink.BaseSinkSetSyncMethodInfo+    ResolveVideoSinkMethod "setThrottleTime" o = GstBase.BaseSink.BaseSinkSetThrottleTimeMethodInfo+    ResolveVideoSinkMethod "setTsOffset" o = GstBase.BaseSink.BaseSinkSetTsOffsetMethodInfo+    ResolveVideoSinkMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoSinkMethod t VideoSink, O.MethodInfo info VideoSink p) => OL.IsLabel t (VideoSink -> 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++-- VVV Prop "show-preroll-frame"+   -- Type: TBasicType TBoolean+   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]+   -- Nullable: (Nothing,Nothing)++{- |+Get the value of the “@show-preroll-frame@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoSink #showPrerollFrame+@+-}+getVideoSinkShowPrerollFrame :: (MonadIO m, IsVideoSink o) => o -> m Bool+getVideoSinkShowPrerollFrame obj = liftIO $ B.Properties.getObjectPropertyBool obj "show-preroll-frame"++{- |+Set the value of the “@show-preroll-frame@” property.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoSink [ #showPrerollFrame 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoSinkShowPrerollFrame :: (MonadIO m, IsVideoSink o) => o -> Bool -> m ()+setVideoSinkShowPrerollFrame obj val = liftIO $ B.Properties.setObjectPropertyBool obj "show-preroll-frame" val++{- |+Construct a `GValueConstruct` with valid value for the “@show-preroll-frame@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.+-}+constructVideoSinkShowPrerollFrame :: (IsVideoSink o) => Bool -> IO (GValueConstruct o)+constructVideoSinkShowPrerollFrame val = B.Properties.constructObjectPropertyBool "show-preroll-frame" val++#if ENABLE_OVERLOADING+data VideoSinkShowPrerollFramePropertyInfo+instance AttrInfo VideoSinkShowPrerollFramePropertyInfo where+    type AttrAllowedOps VideoSinkShowPrerollFramePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]+    type AttrSetTypeConstraint VideoSinkShowPrerollFramePropertyInfo = (~) Bool+    type AttrBaseTypeConstraint VideoSinkShowPrerollFramePropertyInfo = IsVideoSink+    type AttrGetType VideoSinkShowPrerollFramePropertyInfo = Bool+    type AttrLabel VideoSinkShowPrerollFramePropertyInfo = "show-preroll-frame"+    type AttrOrigin VideoSinkShowPrerollFramePropertyInfo = VideoSink+    attrGet _ = getVideoSinkShowPrerollFrame+    attrSet _ = setVideoSinkShowPrerollFrame+    attrConstruct _ = constructVideoSinkShowPrerollFrame+    attrClear _ = undefined+#endif++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoSink+type instance O.AttributeList VideoSink = VideoSinkAttributeList+type VideoSinkAttributeList = ('[ '("async", GstBase.BaseSink.BaseSinkAsyncPropertyInfo), '("blocksize", GstBase.BaseSink.BaseSinkBlocksizePropertyInfo), '("enableLastSample", GstBase.BaseSink.BaseSinkEnableLastSamplePropertyInfo), '("lastSample", GstBase.BaseSink.BaseSinkLastSamplePropertyInfo), '("maxBitrate", GstBase.BaseSink.BaseSinkMaxBitratePropertyInfo), '("maxLateness", GstBase.BaseSink.BaseSinkMaxLatenessPropertyInfo), '("name", Gst.Object.ObjectNamePropertyInfo), '("parent", Gst.Object.ObjectParentPropertyInfo), '("processingDeadline", GstBase.BaseSink.BaseSinkProcessingDeadlinePropertyInfo), '("qos", GstBase.BaseSink.BaseSinkQosPropertyInfo), '("renderDelay", GstBase.BaseSink.BaseSinkRenderDelayPropertyInfo), '("showPrerollFrame", VideoSinkShowPrerollFramePropertyInfo), '("sync", GstBase.BaseSink.BaseSinkSyncPropertyInfo), '("throttleTime", GstBase.BaseSink.BaseSinkThrottleTimePropertyInfo), '("tsOffset", GstBase.BaseSink.BaseSinkTsOffsetPropertyInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+videoSinkShowPrerollFrame :: AttrLabelProxy "showPrerollFrame"+videoSinkShowPrerollFrame = AttrLabelProxy++#endif++#if ENABLE_OVERLOADING+type instance O.SignalList VideoSink = VideoSinkSignalList+type VideoSinkSignalList = ('[ '("deepNotify", Gst.Object.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.Element.ElementNoMorePadsSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("padAdded", Gst.Element.ElementPadAddedSignalInfo), '("padRemoved", Gst.Element.ElementPadRemovedSignalInfo)] :: [(Symbol, *)])++#endif++-- method VideoSink::center_rect+-- method type : MemberFunction+-- Args : [Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoRectangle describing the source area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dst", argType = TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GstVideoRectangle describing the destination area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a pointer to a #GstVideoRectangle which will receive the result area", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scaling", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #gboolean indicating if scaling should be applied or not", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_sink_center_rect" gst_video_sink_center_rect :: +    Ptr GstVideo.VideoRectangle.VideoRectangle -> -- src : TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"})+    Ptr GstVideo.VideoRectangle.VideoRectangle -> -- dst : TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"})+    Ptr GstVideo.VideoRectangle.VideoRectangle -> -- result : TInterface (Name {namespace = "GstVideo", name = "VideoRectangle"})+    CInt ->                                 -- scaling : TBasicType TBoolean+    IO ()++{- |+Takes /@src@/ rectangle and position it at the center of /@dst@/ rectangle with or+without /@scaling@/. It handles clipping if the /@src@/ rectangle is bigger than+the /@dst@/ one and /@scaling@/ is set to FALSE.+-}+videoSinkCenterRect ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoRectangle.VideoRectangle+    {- ^ /@src@/: the 'GI.GstVideo.Structs.VideoRectangle.VideoRectangle' describing the source area -}+    -> GstVideo.VideoRectangle.VideoRectangle+    {- ^ /@dst@/: the 'GI.GstVideo.Structs.VideoRectangle.VideoRectangle' describing the destination area -}+    -> GstVideo.VideoRectangle.VideoRectangle+    {- ^ /@result@/: a pointer to a 'GI.GstVideo.Structs.VideoRectangle.VideoRectangle' which will receive the result area -}+    -> Bool+    {- ^ /@scaling@/: a 'Bool' indicating if scaling should be applied or not -}+    -> m ()+videoSinkCenterRect src dst result_ scaling = liftIO $ do+    src' <- unsafeManagedPtrGetPtr src+    dst' <- unsafeManagedPtrGetPtr dst+    result_' <- unsafeManagedPtrGetPtr result_+    let scaling' = (fromIntegral . fromEnum) scaling+    gst_video_sink_center_rect src' dst' result_' scaling'+    touchManagedPtr src+    touchManagedPtr dst+    touchManagedPtr result_+    return ()++#if ENABLE_OVERLOADING+#endif++
+ GI/GstVideo/Objects/VideoSink.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Objects.VideoSink 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++newtype VideoSink = VideoSink (ManagedPtr VideoSink)+instance GObject VideoSink where+class (GObject o, O.IsDescendantOf VideoSink o) => IsVideoSink o+instance (GObject o, O.IsDescendantOf VideoSink o) => IsVideoSink o+instance O.HasParentTypes VideoSink+#if ENABLE_OVERLOADING+data VideoSinkShowPrerollFramePropertyInfo+#endif
+ GI/GstVideo/Structs.hs view
@@ -0,0 +1,101 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs+    (     module GI.GstVideo.Structs.VideoAffineTransformationMeta,+    module GI.GstVideo.Structs.VideoAlignment,+    module GI.GstVideo.Structs.VideoAncillary,+    module GI.GstVideo.Structs.VideoCaptionMeta,+    module GI.GstVideo.Structs.VideoChromaResample,+    module GI.GstVideo.Structs.VideoCodecFrame,+    module GI.GstVideo.Structs.VideoCodecState,+    module GI.GstVideo.Structs.VideoColorPrimariesInfo,+    module GI.GstVideo.Structs.VideoColorimetry,+    module GI.GstVideo.Structs.VideoConverter,+    module GI.GstVideo.Structs.VideoCropMeta,+    module GI.GstVideo.Structs.VideoDither  ,+    module GI.GstVideo.Structs.VideoFormatInfo,+    module GI.GstVideo.Structs.VideoFrame   ,+    module GI.GstVideo.Structs.VideoGLTextureUploadMeta,+    module GI.GstVideo.Structs.VideoInfo    ,+    module GI.GstVideo.Structs.VideoMeta    ,+    module GI.GstVideo.Structs.VideoMetaTransform,+    module GI.GstVideo.Structs.VideoOverlayComposition,+    module GI.GstVideo.Structs.VideoOverlayCompositionMeta,+    module GI.GstVideo.Structs.VideoOverlayRectangle,+    module GI.GstVideo.Structs.VideoRectangle,+    module GI.GstVideo.Structs.VideoRegionOfInterestMeta,+    module GI.GstVideo.Structs.VideoResampler,+    module GI.GstVideo.Structs.VideoScaler  ,+    module GI.GstVideo.Structs.VideoTimeCode,+    module GI.GstVideo.Structs.VideoTimeCodeConfig,+    module GI.GstVideo.Structs.VideoTimeCodeInterval,+    module GI.GstVideo.Structs.VideoTimeCodeMeta,+    module GI.GstVideo.Structs.VideoVBIEncoder,+    module GI.GstVideo.Structs.VideoVBIParser,+++    ) where++import GI.GstVideo.Structs.VideoAffineTransformationMeta+import GI.GstVideo.Structs.VideoAlignment+import GI.GstVideo.Structs.VideoAncillary+import GI.GstVideo.Structs.VideoCaptionMeta+import GI.GstVideo.Structs.VideoChromaResample+import GI.GstVideo.Structs.VideoCodecFrame+import GI.GstVideo.Structs.VideoCodecState+import GI.GstVideo.Structs.VideoColorPrimariesInfo+import GI.GstVideo.Structs.VideoColorimetry+import GI.GstVideo.Structs.VideoConverter+import GI.GstVideo.Structs.VideoCropMeta+import GI.GstVideo.Structs.VideoDither+import GI.GstVideo.Structs.VideoFormatInfo+import GI.GstVideo.Structs.VideoFrame+import GI.GstVideo.Structs.VideoGLTextureUploadMeta+import GI.GstVideo.Structs.VideoInfo+import GI.GstVideo.Structs.VideoMeta+import GI.GstVideo.Structs.VideoMetaTransform+import GI.GstVideo.Structs.VideoOverlayComposition+import GI.GstVideo.Structs.VideoOverlayCompositionMeta+import GI.GstVideo.Structs.VideoOverlayRectangle+import GI.GstVideo.Structs.VideoRectangle+import GI.GstVideo.Structs.VideoRegionOfInterestMeta+import GI.GstVideo.Structs.VideoResampler+import GI.GstVideo.Structs.VideoScaler+import GI.GstVideo.Structs.VideoTimeCode+import GI.GstVideo.Structs.VideoTimeCodeConfig+import GI.GstVideo.Structs.VideoTimeCodeInterval+import GI.GstVideo.Structs.VideoTimeCodeMeta+import GI.GstVideo.Structs.VideoVBIEncoder+import GI.GstVideo.Structs.VideoVBIParser++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+++
+ GI/GstVideo/Structs/VideoAffineTransformationMeta.hs view
@@ -0,0 +1,231 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata for performing an affine transformation using a 4x4+matrix. The transformation matrix can be composed with+'GI.GstVideo.Structs.VideoAffineTransformationMeta.videoAffineTransformationMetaApplyMatrix'.++The vertices operated on are all in the range 0 to 1, not in+Normalized Device Coordinates (-1 to +1). Transforming points in this space+are assumed to have an origin at (0.5, 0.5, 0.5) in a left-handed coordinate+system with the x-axis moving horizontally (positive values to the right),+the y-axis moving vertically (positive values up the screen) and the z-axis+perpendicular to the screen (positive values into the screen).++/Since: 1.8/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoAffineTransformationMeta+    ( ++-- * Exported types+    VideoAffineTransformationMeta(..)       ,+    newZeroVideoAffineTransformationMeta    ,+    noVideoAffineTransformationMeta         ,+++ -- * Methods+-- ** applyMatrix #method:applyMatrix#++#if ENABLE_OVERLOADING+    VideoAffineTransformationMetaApplyMatrixMethodInfo,+#endif+    videoAffineTransformationMetaApplyMatrix,+++-- ** getInfo #method:getInfo#++    videoAffineTransformationMetaGetInfo    ,+++++ -- * Properties+-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoAffineTransformationMetaMeta    ,+#if ENABLE_OVERLOADING+    videoAffineTransformationMeta_meta      ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo++-- | Memory-managed wrapper type.+newtype VideoAffineTransformationMeta = VideoAffineTransformationMeta (ManagedPtr VideoAffineTransformationMeta)+instance WrappedPtr VideoAffineTransformationMeta where+    wrappedPtrCalloc = callocBytes 80+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 80 >=> wrapPtr VideoAffineTransformationMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoAffineTransformationMeta` struct initialized to zero.+newZeroVideoAffineTransformationMeta :: MonadIO m => m VideoAffineTransformationMeta+newZeroVideoAffineTransformationMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoAffineTransformationMeta++instance tag ~ 'AttrSet => Constructible VideoAffineTransformationMeta tag where+    new _ attrs = do+        o <- newZeroVideoAffineTransformationMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAffineTransformationMeta`.+noVideoAffineTransformationMeta :: Maybe VideoAffineTransformationMeta+noVideoAffineTransformationMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAffineTransformationMeta #meta+@+-}+getVideoAffineTransformationMetaMeta :: MonadIO m => VideoAffineTransformationMeta -> m Gst.Meta.Meta+getVideoAffineTransformationMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoAffineTransformationMetaMetaFieldInfo+instance AttrInfo VideoAffineTransformationMetaMetaFieldInfo where+    type AttrAllowedOps VideoAffineTransformationMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoAffineTransformationMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoAffineTransformationMetaMetaFieldInfo = (~) VideoAffineTransformationMeta+    type AttrGetType VideoAffineTransformationMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoAffineTransformationMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoAffineTransformationMetaMetaFieldInfo = VideoAffineTransformationMeta+    attrGet _ = getVideoAffineTransformationMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoAffineTransformationMeta_meta :: AttrLabelProxy "meta"+videoAffineTransformationMeta_meta = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoAffineTransformationMeta:matrix" :: Not implemented: "Don't know how to unpack C array of type TCArray False 16 (-1) (TBasicType TFloat)"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoAffineTransformationMeta+type instance O.AttributeList VideoAffineTransformationMeta = VideoAffineTransformationMetaAttributeList+type VideoAffineTransformationMetaAttributeList = ('[ '("meta", VideoAffineTransformationMetaMetaFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoAffineTransformationMeta::apply_matrix+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAffineTransformationMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAffineTransformationMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "matrix", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a 4x4 transformation matrix to be applied", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_affine_transformation_meta_apply_matrix" gst_video_affine_transformation_meta_apply_matrix :: +    Ptr VideoAffineTransformationMeta ->    -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoAffineTransformationMeta"})+    CFloat ->                               -- matrix : TBasicType TFloat+    IO ()++{- |+Apply a transformation using the given 4x4 transformation matrix.+Performs the multiplication, meta->matrix X matrix.++/Since: 1.8/+-}+videoAffineTransformationMetaApplyMatrix ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoAffineTransformationMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoAffineTransformationMeta.VideoAffineTransformationMeta' -}+    -> Float+    {- ^ /@matrix@/: a 4x4 transformation matrix to be applied -}+    -> m ()+videoAffineTransformationMetaApplyMatrix meta matrix = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    let matrix' = realToFrac matrix+    gst_video_affine_transformation_meta_apply_matrix meta' matrix'+    touchManagedPtr meta+    return ()++#if ENABLE_OVERLOADING+data VideoAffineTransformationMetaApplyMatrixMethodInfo+instance (signature ~ (Float -> m ()), MonadIO m) => O.MethodInfo VideoAffineTransformationMetaApplyMatrixMethodInfo VideoAffineTransformationMeta signature where+    overloadedMethod _ = videoAffineTransformationMetaApplyMatrix++#endif++-- method VideoAffineTransformationMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_affine_transformation_meta_get_info" gst_video_affine_transformation_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoAffineTransformationMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoAffineTransformationMetaGetInfo  = liftIO $ do+    result <- gst_video_affine_transformation_meta_get_info+    checkUnexpectedReturnNULL "videoAffineTransformationMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoAffineTransformationMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAffineTransformationMetaMethod "applyMatrix" o = VideoAffineTransformationMetaApplyMatrixMethodInfo+    ResolveVideoAffineTransformationMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAffineTransformationMetaMethod t VideoAffineTransformationMeta, O.MethodInfo info VideoAffineTransformationMeta p) => OL.IsLabel t (VideoAffineTransformationMeta -> 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++
+ GI/GstVideo/Structs/VideoAffineTransformationMeta.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoAffineTransformationMeta 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++newtype VideoAffineTransformationMeta = VideoAffineTransformationMeta (ManagedPtr VideoAffineTransformationMeta)+instance WrappedPtr VideoAffineTransformationMeta where+#if ENABLE_OVERLOADING+data VideoAffineTransformationMetaApplyMatrixMethodInfo+#endif
+ GI/GstVideo/Structs/VideoAlignment.hs view
@@ -0,0 +1,359 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra alignment parameters for the memory of video buffers. This+structure is usually used to configure the bufferpool if it supports the+'GI.GstVideo.Constants.BUFFER_POOL_OPTION_VIDEO_ALIGNMENT'.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoAlignment+    ( ++-- * Exported types+    VideoAlignment(..)                      ,+    newZeroVideoAlignment                   ,+    noVideoAlignment                        ,+++ -- * Methods+-- ** reset #method:reset#++#if ENABLE_OVERLOADING+    VideoAlignmentResetMethodInfo           ,+#endif+    videoAlignmentReset                     ,+++++ -- * Properties+-- ** paddingBottom #attr:paddingBottom#+{- | extra pixels on the bottom+-}+    getVideoAlignmentPaddingBottom          ,+    setVideoAlignmentPaddingBottom          ,+#if ENABLE_OVERLOADING+    videoAlignment_paddingBottom            ,+#endif+++-- ** paddingLeft #attr:paddingLeft#+{- | extra pixels on the left side+-}+    getVideoAlignmentPaddingLeft            ,+    setVideoAlignmentPaddingLeft            ,+#if ENABLE_OVERLOADING+    videoAlignment_paddingLeft              ,+#endif+++-- ** paddingRight #attr:paddingRight#+{- | extra pixels on the right side+-}+    getVideoAlignmentPaddingRight           ,+    setVideoAlignmentPaddingRight           ,+#if ENABLE_OVERLOADING+    videoAlignment_paddingRight             ,+#endif+++-- ** paddingTop #attr:paddingTop#+{- | extra pixels on the top+-}+    getVideoAlignmentPaddingTop             ,+    setVideoAlignmentPaddingTop             ,+#if ENABLE_OVERLOADING+    videoAlignment_paddingTop               ,+#endif+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoAlignment = VideoAlignment (ManagedPtr VideoAlignment)+instance WrappedPtr VideoAlignment where+    wrappedPtrCalloc = callocBytes 32+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 32 >=> wrapPtr VideoAlignment)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoAlignment` struct initialized to zero.+newZeroVideoAlignment :: MonadIO m => m VideoAlignment+newZeroVideoAlignment = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoAlignment++instance tag ~ 'AttrSet => Constructible VideoAlignment tag where+    new _ attrs = do+        o <- newZeroVideoAlignment+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAlignment`.+noVideoAlignment :: Maybe VideoAlignment+noVideoAlignment = Nothing++{- |+Get the value of the “@padding_top@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAlignment #paddingTop+@+-}+getVideoAlignmentPaddingTop :: MonadIO m => VideoAlignment -> m Word32+getVideoAlignmentPaddingTop s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++{- |+Set the value of the “@padding_top@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAlignment [ #paddingTop 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAlignmentPaddingTop :: MonadIO m => VideoAlignment -> Word32 -> m ()+setVideoAlignmentPaddingTop s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoAlignmentPaddingTopFieldInfo+instance AttrInfo VideoAlignmentPaddingTopFieldInfo where+    type AttrAllowedOps VideoAlignmentPaddingTopFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAlignmentPaddingTopFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoAlignmentPaddingTopFieldInfo = (~) VideoAlignment+    type AttrGetType VideoAlignmentPaddingTopFieldInfo = Word32+    type AttrLabel VideoAlignmentPaddingTopFieldInfo = "padding_top"+    type AttrOrigin VideoAlignmentPaddingTopFieldInfo = VideoAlignment+    attrGet _ = getVideoAlignmentPaddingTop+    attrSet _ = setVideoAlignmentPaddingTop+    attrConstruct = undefined+    attrClear _ = undefined++videoAlignment_paddingTop :: AttrLabelProxy "paddingTop"+videoAlignment_paddingTop = AttrLabelProxy++#endif+++{- |+Get the value of the “@padding_bottom@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAlignment #paddingBottom+@+-}+getVideoAlignmentPaddingBottom :: MonadIO m => VideoAlignment -> m Word32+getVideoAlignmentPaddingBottom s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word32+    return val++{- |+Set the value of the “@padding_bottom@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAlignment [ #paddingBottom 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAlignmentPaddingBottom :: MonadIO m => VideoAlignment -> Word32 -> m ()+setVideoAlignmentPaddingBottom s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 4) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoAlignmentPaddingBottomFieldInfo+instance AttrInfo VideoAlignmentPaddingBottomFieldInfo where+    type AttrAllowedOps VideoAlignmentPaddingBottomFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAlignmentPaddingBottomFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoAlignmentPaddingBottomFieldInfo = (~) VideoAlignment+    type AttrGetType VideoAlignmentPaddingBottomFieldInfo = Word32+    type AttrLabel VideoAlignmentPaddingBottomFieldInfo = "padding_bottom"+    type AttrOrigin VideoAlignmentPaddingBottomFieldInfo = VideoAlignment+    attrGet _ = getVideoAlignmentPaddingBottom+    attrSet _ = setVideoAlignmentPaddingBottom+    attrConstruct = undefined+    attrClear _ = undefined++videoAlignment_paddingBottom :: AttrLabelProxy "paddingBottom"+videoAlignment_paddingBottom = AttrLabelProxy++#endif+++{- |+Get the value of the “@padding_left@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAlignment #paddingLeft+@+-}+getVideoAlignmentPaddingLeft :: MonadIO m => VideoAlignment -> m Word32+getVideoAlignmentPaddingLeft s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++{- |+Set the value of the “@padding_left@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAlignment [ #paddingLeft 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAlignmentPaddingLeft :: MonadIO m => VideoAlignment -> Word32 -> m ()+setVideoAlignmentPaddingLeft s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoAlignmentPaddingLeftFieldInfo+instance AttrInfo VideoAlignmentPaddingLeftFieldInfo where+    type AttrAllowedOps VideoAlignmentPaddingLeftFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAlignmentPaddingLeftFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoAlignmentPaddingLeftFieldInfo = (~) VideoAlignment+    type AttrGetType VideoAlignmentPaddingLeftFieldInfo = Word32+    type AttrLabel VideoAlignmentPaddingLeftFieldInfo = "padding_left"+    type AttrOrigin VideoAlignmentPaddingLeftFieldInfo = VideoAlignment+    attrGet _ = getVideoAlignmentPaddingLeft+    attrSet _ = setVideoAlignmentPaddingLeft+    attrConstruct = undefined+    attrClear _ = undefined++videoAlignment_paddingLeft :: AttrLabelProxy "paddingLeft"+videoAlignment_paddingLeft = AttrLabelProxy++#endif+++{- |+Get the value of the “@padding_right@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAlignment #paddingRight+@+-}+getVideoAlignmentPaddingRight :: MonadIO m => VideoAlignment -> m Word32+getVideoAlignmentPaddingRight s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++{- |+Set the value of the “@padding_right@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAlignment [ #paddingRight 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAlignmentPaddingRight :: MonadIO m => VideoAlignment -> Word32 -> m ()+setVideoAlignmentPaddingRight s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 12) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoAlignmentPaddingRightFieldInfo+instance AttrInfo VideoAlignmentPaddingRightFieldInfo where+    type AttrAllowedOps VideoAlignmentPaddingRightFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAlignmentPaddingRightFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoAlignmentPaddingRightFieldInfo = (~) VideoAlignment+    type AttrGetType VideoAlignmentPaddingRightFieldInfo = Word32+    type AttrLabel VideoAlignmentPaddingRightFieldInfo = "padding_right"+    type AttrOrigin VideoAlignmentPaddingRightFieldInfo = VideoAlignment+    attrGet _ = getVideoAlignmentPaddingRight+    attrSet _ = setVideoAlignmentPaddingRight+    attrConstruct = undefined+    attrClear _ = undefined++videoAlignment_paddingRight :: AttrLabelProxy "paddingRight"+videoAlignment_paddingRight = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoAlignment:stride_align" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoAlignment+type instance O.AttributeList VideoAlignment = VideoAlignmentAttributeList+type VideoAlignmentAttributeList = ('[ '("paddingTop", VideoAlignmentPaddingTopFieldInfo), '("paddingBottom", VideoAlignmentPaddingBottomFieldInfo), '("paddingLeft", VideoAlignmentPaddingLeftFieldInfo), '("paddingRight", VideoAlignmentPaddingRightFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoAlignment::reset+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "align", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAlignment", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_alignment_reset" gst_video_alignment_reset :: +    Ptr VideoAlignment ->                   -- align : TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"})+    IO ()++{- |+Set /@align@/ to its default values with no padding and no alignment.+-}+videoAlignmentReset ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoAlignment+    {- ^ /@align@/: a 'GI.GstVideo.Structs.VideoAlignment.VideoAlignment' -}+    -> m ()+videoAlignmentReset align = liftIO $ do+    align' <- unsafeManagedPtrGetPtr align+    gst_video_alignment_reset align'+    touchManagedPtr align+    return ()++#if ENABLE_OVERLOADING+data VideoAlignmentResetMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoAlignmentResetMethodInfo VideoAlignment signature where+    overloadedMethod _ = videoAlignmentReset++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoAlignmentMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAlignmentMethod "reset" o = VideoAlignmentResetMethodInfo+    ResolveVideoAlignmentMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAlignmentMethod t VideoAlignment, O.MethodInfo info VideoAlignment p) => OL.IsLabel t (VideoAlignment -> 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++
+ GI/GstVideo/Structs/VideoAlignment.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoAlignment 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++newtype VideoAlignment = VideoAlignment (ManagedPtr VideoAlignment)+instance WrappedPtr VideoAlignment where+#if ENABLE_OVERLOADING+data VideoAlignmentResetMethodInfo+#endif
+ GI/GstVideo/Structs/VideoAncillary.hs view
@@ -0,0 +1,263 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Video Ancillary data, according to SMPTE-291M specification.++Note that the contents of the data are always stored as 8bit data (i.e. do not contain+the parity check bits).++/Since: 1.16/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoAncillary+    ( ++-- * Exported types+    VideoAncillary(..)                      ,+    newZeroVideoAncillary                   ,+    noVideoAncillary                        ,+++ -- * Properties+-- ** dID #attr:dID#+{- | The Data Identifier+-}+    getVideoAncillaryDID                    ,+    setVideoAncillaryDID                    ,+#if ENABLE_OVERLOADING+    videoAncillary_dID                      ,+#endif+++-- ** dataCount #attr:dataCount#+{- | The amount of data (in bytes) in /@data@/ (max 255 bytes)+-}+    getVideoAncillaryDataCount              ,+    setVideoAncillaryDataCount              ,+#if ENABLE_OVERLOADING+    videoAncillary_dataCount                ,+#endif+++-- ** sDIDBlockNumber #attr:sDIDBlockNumber#+{- | The Secondary Data Identifier (if type 2) or the Data+                    Block Number (if type 1)+-}+    getVideoAncillarySDIDBlockNumber        ,+    setVideoAncillarySDIDBlockNumber        ,+#if ENABLE_OVERLOADING+    videoAncillary_sDIDBlockNumber          ,+#endif+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoAncillary = VideoAncillary (ManagedPtr VideoAncillary)+instance WrappedPtr VideoAncillary where+    wrappedPtrCalloc = callocBytes 48+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 48 >=> wrapPtr VideoAncillary)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoAncillary` struct initialized to zero.+newZeroVideoAncillary :: MonadIO m => m VideoAncillary+newZeroVideoAncillary = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoAncillary++instance tag ~ 'AttrSet => Constructible VideoAncillary tag where+    new _ attrs = do+        o <- newZeroVideoAncillary+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoAncillary`.+noVideoAncillary :: Maybe VideoAncillary+noVideoAncillary = Nothing++{- |+Get the value of the “@DID@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAncillary #dID+@+-}+getVideoAncillaryDID :: MonadIO m => VideoAncillary -> m Word8+getVideoAncillaryDID s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word8+    return val++{- |+Set the value of the “@DID@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAncillary [ #dID 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAncillaryDID :: MonadIO m => VideoAncillary -> Word8 -> m ()+setVideoAncillaryDID s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Word8)++#if ENABLE_OVERLOADING+data VideoAncillaryDIDFieldInfo+instance AttrInfo VideoAncillaryDIDFieldInfo where+    type AttrAllowedOps VideoAncillaryDIDFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAncillaryDIDFieldInfo = (~) Word8+    type AttrBaseTypeConstraint VideoAncillaryDIDFieldInfo = (~) VideoAncillary+    type AttrGetType VideoAncillaryDIDFieldInfo = Word8+    type AttrLabel VideoAncillaryDIDFieldInfo = "DID"+    type AttrOrigin VideoAncillaryDIDFieldInfo = VideoAncillary+    attrGet _ = getVideoAncillaryDID+    attrSet _ = setVideoAncillaryDID+    attrConstruct = undefined+    attrClear _ = undefined++videoAncillary_dID :: AttrLabelProxy "dID"+videoAncillary_dID = AttrLabelProxy++#endif+++{- |+Get the value of the “@SDID_block_number@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAncillary #sDIDBlockNumber+@+-}+getVideoAncillarySDIDBlockNumber :: MonadIO m => VideoAncillary -> m Word8+getVideoAncillarySDIDBlockNumber s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 1) :: IO Word8+    return val++{- |+Set the value of the “@SDID_block_number@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAncillary [ #sDIDBlockNumber 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAncillarySDIDBlockNumber :: MonadIO m => VideoAncillary -> Word8 -> m ()+setVideoAncillarySDIDBlockNumber s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 1) (val :: Word8)++#if ENABLE_OVERLOADING+data VideoAncillarySDIDBlockNumberFieldInfo+instance AttrInfo VideoAncillarySDIDBlockNumberFieldInfo where+    type AttrAllowedOps VideoAncillarySDIDBlockNumberFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAncillarySDIDBlockNumberFieldInfo = (~) Word8+    type AttrBaseTypeConstraint VideoAncillarySDIDBlockNumberFieldInfo = (~) VideoAncillary+    type AttrGetType VideoAncillarySDIDBlockNumberFieldInfo = Word8+    type AttrLabel VideoAncillarySDIDBlockNumberFieldInfo = "SDID_block_number"+    type AttrOrigin VideoAncillarySDIDBlockNumberFieldInfo = VideoAncillary+    attrGet _ = getVideoAncillarySDIDBlockNumber+    attrSet _ = setVideoAncillarySDIDBlockNumber+    attrConstruct = undefined+    attrClear _ = undefined++videoAncillary_sDIDBlockNumber :: AttrLabelProxy "sDIDBlockNumber"+videoAncillary_sDIDBlockNumber = AttrLabelProxy++#endif+++{- |+Get the value of the “@data_count@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoAncillary #dataCount+@+-}+getVideoAncillaryDataCount :: MonadIO m => VideoAncillary -> m Word8+getVideoAncillaryDataCount s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 2) :: IO Word8+    return val++{- |+Set the value of the “@data_count@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoAncillary [ #dataCount 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoAncillaryDataCount :: MonadIO m => VideoAncillary -> Word8 -> m ()+setVideoAncillaryDataCount s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 2) (val :: Word8)++#if ENABLE_OVERLOADING+data VideoAncillaryDataCountFieldInfo+instance AttrInfo VideoAncillaryDataCountFieldInfo where+    type AttrAllowedOps VideoAncillaryDataCountFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoAncillaryDataCountFieldInfo = (~) Word8+    type AttrBaseTypeConstraint VideoAncillaryDataCountFieldInfo = (~) VideoAncillary+    type AttrGetType VideoAncillaryDataCountFieldInfo = Word8+    type AttrLabel VideoAncillaryDataCountFieldInfo = "data_count"+    type AttrOrigin VideoAncillaryDataCountFieldInfo = VideoAncillary+    attrGet _ = getVideoAncillaryDataCount+    attrSet _ = setVideoAncillaryDataCount+    attrConstruct = undefined+    attrClear _ = undefined++videoAncillary_dataCount :: AttrLabelProxy "dataCount"+videoAncillary_dataCount = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoAncillary:data" :: Not implemented: "Don't know how to unpack C array of type TCArray False (-1) 2 (TBasicType TUInt8)"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoAncillary+type instance O.AttributeList VideoAncillary = VideoAncillaryAttributeList+type VideoAncillaryAttributeList = ('[ '("dID", VideoAncillaryDIDFieldInfo), '("sDIDBlockNumber", VideoAncillarySDIDBlockNumberFieldInfo), '("dataCount", VideoAncillaryDataCountFieldInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoAncillaryMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoAncillaryMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoAncillaryMethod t VideoAncillary, O.MethodInfo info VideoAncillary p) => OL.IsLabel t (VideoAncillary -> 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++
+ GI/GstVideo/Structs/VideoAncillary.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoAncillary 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++newtype VideoAncillary = VideoAncillary (ManagedPtr VideoAncillary)+instance WrappedPtr VideoAncillary where
+ GI/GstVideo/Structs/VideoCaptionMeta.hs view
@@ -0,0 +1,286 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata providing Closed Caption.++/Since: 1.16/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoCaptionMeta+    ( ++-- * Exported types+    VideoCaptionMeta(..)                    ,+    newZeroVideoCaptionMeta                 ,+    noVideoCaptionMeta                      ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoCaptionMetaGetInfo                 ,+++++ -- * Properties+-- ** captionType #attr:captionType#+{- | The type of Closed Caption contained in the meta.+-}+    getVideoCaptionMetaCaptionType          ,+    setVideoCaptionMetaCaptionType          ,+#if ENABLE_OVERLOADING+    videoCaptionMeta_captionType            ,+#endif+++-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoCaptionMetaMeta                 ,+#if ENABLE_OVERLOADING+    videoCaptionMeta_meta                   ,+#endif+++-- ** size #attr:size#+{- | The size in bytes of /@data@/+-}+    getVideoCaptionMetaSize                 ,+    setVideoCaptionMetaSize                 ,+#if ENABLE_OVERLOADING+    videoCaptionMeta_size                   ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoCaptionMeta = VideoCaptionMeta (ManagedPtr VideoCaptionMeta)+instance WrappedPtr VideoCaptionMeta where+    wrappedPtrCalloc = callocBytes 40+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 40 >=> wrapPtr VideoCaptionMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoCaptionMeta` struct initialized to zero.+newZeroVideoCaptionMeta :: MonadIO m => m VideoCaptionMeta+newZeroVideoCaptionMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoCaptionMeta++instance tag ~ 'AttrSet => Constructible VideoCaptionMeta tag where+    new _ attrs = do+        o <- newZeroVideoCaptionMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoCaptionMeta`.+noVideoCaptionMeta :: Maybe VideoCaptionMeta+noVideoCaptionMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCaptionMeta #meta+@+-}+getVideoCaptionMetaMeta :: MonadIO m => VideoCaptionMeta -> m Gst.Meta.Meta+getVideoCaptionMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoCaptionMetaMetaFieldInfo+instance AttrInfo VideoCaptionMetaMetaFieldInfo where+    type AttrAllowedOps VideoCaptionMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoCaptionMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoCaptionMetaMetaFieldInfo = (~) VideoCaptionMeta+    type AttrGetType VideoCaptionMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoCaptionMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoCaptionMetaMetaFieldInfo = VideoCaptionMeta+    attrGet _ = getVideoCaptionMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoCaptionMeta_meta :: AttrLabelProxy "meta"+videoCaptionMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@caption_type@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCaptionMeta #captionType+@+-}+getVideoCaptionMetaCaptionType :: MonadIO m => VideoCaptionMeta -> m GstVideo.Enums.VideoCaptionType+getVideoCaptionMetaCaptionType s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@caption_type@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCaptionMeta [ #captionType 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCaptionMetaCaptionType :: MonadIO m => VideoCaptionMeta -> GstVideo.Enums.VideoCaptionType -> m ()+setVideoCaptionMetaCaptionType s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 16) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoCaptionMetaCaptionTypeFieldInfo+instance AttrInfo VideoCaptionMetaCaptionTypeFieldInfo where+    type AttrAllowedOps VideoCaptionMetaCaptionTypeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCaptionMetaCaptionTypeFieldInfo = (~) GstVideo.Enums.VideoCaptionType+    type AttrBaseTypeConstraint VideoCaptionMetaCaptionTypeFieldInfo = (~) VideoCaptionMeta+    type AttrGetType VideoCaptionMetaCaptionTypeFieldInfo = GstVideo.Enums.VideoCaptionType+    type AttrLabel VideoCaptionMetaCaptionTypeFieldInfo = "caption_type"+    type AttrOrigin VideoCaptionMetaCaptionTypeFieldInfo = VideoCaptionMeta+    attrGet _ = getVideoCaptionMetaCaptionType+    attrSet _ = setVideoCaptionMetaCaptionType+    attrConstruct = undefined+    attrClear _ = undefined++videoCaptionMeta_captionType :: AttrLabelProxy "captionType"+videoCaptionMeta_captionType = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoCaptionMeta:data" :: Not implemented: "Don't know how to unpack C array of type TCArray False (-1) 3 (TBasicType TUInt8)"+{- |+Get the value of the “@size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCaptionMeta #size+@+-}+getVideoCaptionMetaSize :: MonadIO m => VideoCaptionMeta -> m Word64+getVideoCaptionMetaSize s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word64+    return val++{- |+Set the value of the “@size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCaptionMeta [ #size 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCaptionMetaSize :: MonadIO m => VideoCaptionMeta -> Word64 -> m ()+setVideoCaptionMetaSize s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoCaptionMetaSizeFieldInfo+instance AttrInfo VideoCaptionMetaSizeFieldInfo where+    type AttrAllowedOps VideoCaptionMetaSizeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCaptionMetaSizeFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoCaptionMetaSizeFieldInfo = (~) VideoCaptionMeta+    type AttrGetType VideoCaptionMetaSizeFieldInfo = Word64+    type AttrLabel VideoCaptionMetaSizeFieldInfo = "size"+    type AttrOrigin VideoCaptionMetaSizeFieldInfo = VideoCaptionMeta+    attrGet _ = getVideoCaptionMetaSize+    attrSet _ = setVideoCaptionMetaSize+    attrConstruct = undefined+    attrClear _ = undefined++videoCaptionMeta_size :: AttrLabelProxy "size"+videoCaptionMeta_size = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoCaptionMeta+type instance O.AttributeList VideoCaptionMeta = VideoCaptionMetaAttributeList+type VideoCaptionMetaAttributeList = ('[ '("meta", VideoCaptionMetaMetaFieldInfo), '("captionType", VideoCaptionMetaCaptionTypeFieldInfo), '("size", VideoCaptionMetaSizeFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoCaptionMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_caption_meta_get_info" gst_video_caption_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoCaptionMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoCaptionMetaGetInfo  = liftIO $ do+    result <- gst_video_caption_meta_get_info+    checkUnexpectedReturnNULL "videoCaptionMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoCaptionMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoCaptionMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoCaptionMetaMethod t VideoCaptionMeta, O.MethodInfo info VideoCaptionMeta p) => OL.IsLabel t (VideoCaptionMeta -> 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++
+ GI/GstVideo/Structs/VideoCaptionMeta.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoCaptionMeta 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++newtype VideoCaptionMeta = VideoCaptionMeta (ManagedPtr VideoCaptionMeta)+instance WrappedPtr VideoCaptionMeta where
+ GI/GstVideo/Structs/VideoChromaResample.hs view
@@ -0,0 +1,171 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++/No description available in the introspection data./+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoChromaResample+    ( ++-- * Exported types+    VideoChromaResample(..)                 ,+    noVideoChromaResample                   ,+++ -- * Methods+-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoChromaResampleFreeMethodInfo       ,+#endif+    videoChromaResampleFree                 ,+++-- ** getInfo #method:getInfo#++#if ENABLE_OVERLOADING+    VideoChromaResampleGetInfoMethodInfo    ,+#endif+    videoChromaResampleGetInfo              ,+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoChromaResample = VideoChromaResample (ManagedPtr VideoChromaResample)+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoChromaResample where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing++-- | A convenience alias for `Nothing` :: `Maybe` `VideoChromaResample`.+noVideoChromaResample :: Maybe VideoChromaResample+noVideoChromaResample = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoChromaResample+type instance O.AttributeList VideoChromaResample = VideoChromaResampleAttributeList+type VideoChromaResampleAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoChromaResample::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "resample", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoChromaResample", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_chroma_resample_free" gst_video_chroma_resample_free :: +    Ptr VideoChromaResample ->              -- resample : TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"})+    IO ()++{- |+Free /@resample@/+-}+videoChromaResampleFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoChromaResample+    {- ^ /@resample@/: a 'GI.GstVideo.Structs.VideoChromaResample.VideoChromaResample' -}+    -> m ()+videoChromaResampleFree resample = liftIO $ do+    resample' <- unsafeManagedPtrGetPtr resample+    gst_video_chroma_resample_free resample'+    touchManagedPtr resample+    return ()++#if ENABLE_OVERLOADING+data VideoChromaResampleFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoChromaResampleFreeMethodInfo VideoChromaResample signature where+    overloadedMethod _ = videoChromaResampleFree++#endif++-- method VideoChromaResample::get_info+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "resample", argType = TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoChromaResample", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_lines", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of input lines", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the first line", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_chroma_resample_get_info" gst_video_chroma_resample_get_info :: +    Ptr VideoChromaResample ->              -- resample : TInterface (Name {namespace = "GstVideo", name = "VideoChromaResample"})+    Word32 ->                               -- n_lines : TBasicType TUInt+    Int32 ->                                -- offset : TBasicType TInt+    IO ()++{- |+The resampler must be fed /@nLines@/ at a time. The first line should be+at /@offset@/.+-}+videoChromaResampleGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoChromaResample+    {- ^ /@resample@/: a 'GI.GstVideo.Structs.VideoChromaResample.VideoChromaResample' -}+    -> Word32+    {- ^ /@nLines@/: the number of input lines -}+    -> Int32+    {- ^ /@offset@/: the first line -}+    -> m ()+videoChromaResampleGetInfo resample nLines offset = liftIO $ do+    resample' <- unsafeManagedPtrGetPtr resample+    gst_video_chroma_resample_get_info resample' nLines offset+    touchManagedPtr resample+    return ()++#if ENABLE_OVERLOADING+data VideoChromaResampleGetInfoMethodInfo+instance (signature ~ (Word32 -> Int32 -> m ()), MonadIO m) => O.MethodInfo VideoChromaResampleGetInfoMethodInfo VideoChromaResample signature where+    overloadedMethod _ = videoChromaResampleGetInfo++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoChromaResampleMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoChromaResampleMethod "free" o = VideoChromaResampleFreeMethodInfo+    ResolveVideoChromaResampleMethod "getInfo" o = VideoChromaResampleGetInfoMethodInfo+    ResolveVideoChromaResampleMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoChromaResampleMethod t VideoChromaResample, O.MethodInfo info VideoChromaResample p) => OL.IsLabel t (VideoChromaResample -> 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++
+ GI/GstVideo/Structs/VideoChromaResample.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoChromaResample 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++newtype VideoChromaResample = VideoChromaResample (ManagedPtr VideoChromaResample)+instance WrappedPtr VideoChromaResample where+#if ENABLE_OVERLOADING+data VideoChromaResampleFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoChromaResampleGetInfoMethodInfo+#endif
+ GI/GstVideo/Structs/VideoCodecFrame.hs view
@@ -0,0 +1,766 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++A 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' represents a video frame both in raw and+encoded form.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoCodecFrame+    ( ++-- * Exported types+    VideoCodecFrame(..)                     ,+    newZeroVideoCodecFrame                  ,+    noVideoCodecFrame                       ,+++ -- * Methods+-- ** getUserData #method:getUserData#++#if ENABLE_OVERLOADING+    VideoCodecFrameGetUserDataMethodInfo    ,+#endif+    videoCodecFrameGetUserData              ,+++-- ** ref #method:ref#++#if ENABLE_OVERLOADING+    VideoCodecFrameRefMethodInfo            ,+#endif+    videoCodecFrameRef                      ,+++-- ** setUserData #method:setUserData#++#if ENABLE_OVERLOADING+    VideoCodecFrameSetUserDataMethodInfo    ,+#endif+    videoCodecFrameSetUserData              ,+++-- ** unref #method:unref#++#if ENABLE_OVERLOADING+    VideoCodecFrameUnrefMethodInfo          ,+#endif+    videoCodecFrameUnref                    ,+++++ -- * Properties+-- ** deadline #attr:deadline#+{- | Running time when the frame will be used.+-}+    getVideoCodecFrameDeadline              ,+    setVideoCodecFrameDeadline              ,+#if ENABLE_OVERLOADING+    videoCodecFrame_deadline                ,+#endif+++-- ** distanceFromSync #attr:distanceFromSync#+{- | Distance in frames from the last synchronization point.+-}+    getVideoCodecFrameDistanceFromSync      ,+    setVideoCodecFrameDistanceFromSync      ,+#if ENABLE_OVERLOADING+    videoCodecFrame_distanceFromSync        ,+#endif+++-- ** dts #attr:dts#+{- | Decoding timestamp+-}+    getVideoCodecFrameDts                   ,+    setVideoCodecFrameDts                   ,+#if ENABLE_OVERLOADING+    videoCodecFrame_dts                     ,+#endif+++-- ** duration #attr:duration#+{- | Duration of the frame+-}+    getVideoCodecFrameDuration              ,+    setVideoCodecFrameDuration              ,+#if ENABLE_OVERLOADING+    videoCodecFrame_duration                ,+#endif+++-- ** inputBuffer #attr:inputBuffer#+{- | the input 'GI.Gst.Structs.Buffer.Buffer' that created this frame. The buffer is owned+          by the frame and references to the frame instead of the buffer should+          be kept.+-}+    clearVideoCodecFrameInputBuffer         ,+    getVideoCodecFrameInputBuffer           ,+    setVideoCodecFrameInputBuffer           ,+#if ENABLE_OVERLOADING+    videoCodecFrame_inputBuffer             ,+#endif+++-- ** outputBuffer #attr:outputBuffer#+{- | the output 'GI.Gst.Structs.Buffer.Buffer'. Implementations should set this either+          directly, or by using the+          /@gstVideoDecoderAllocateOutputFrame@/() or+          /@gstVideoDecoderAllocateOutputBuffer@/() methods. The buffer is+          owned by the frame and references to the frame instead of the+          buffer should be kept.+-}+    clearVideoCodecFrameOutputBuffer        ,+    getVideoCodecFrameOutputBuffer          ,+    setVideoCodecFrameOutputBuffer          ,+#if ENABLE_OVERLOADING+    videoCodecFrame_outputBuffer            ,+#endif+++-- ** pts #attr:pts#+{- | Presentation timestamp+-}+    getVideoCodecFramePts                   ,+    setVideoCodecFramePts                   ,+#if ENABLE_OVERLOADING+    videoCodecFrame_pts                     ,+#endif+++-- ** systemFrameNumber #attr:systemFrameNumber#+{- | Unique identifier for the frame. Use this if you need+      to get hold of the frame later (like when data is being decoded).+      Typical usage in decoders is to set this on the opaque value provided+      to the library and get back the frame using 'GI.GstVideo.Objects.VideoDecoder.videoDecoderGetFrame'+-}+    getVideoCodecFrameSystemFrameNumber     ,+    setVideoCodecFrameSystemFrameNumber     ,+#if ENABLE_OVERLOADING+    videoCodecFrame_systemFrameNumber       ,+#endif+++++    ) 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.GLib.Callbacks as GLib.Callbacks+import qualified GI.Gst.Structs.Buffer as Gst.Buffer++-- | Memory-managed wrapper type.+newtype VideoCodecFrame = VideoCodecFrame (ManagedPtr VideoCodecFrame)+foreign import ccall "gst_video_codec_frame_get_type" c_gst_video_codec_frame_get_type :: +    IO GType++instance BoxedObject VideoCodecFrame where+    boxedType _ = c_gst_video_codec_frame_get_type++-- | Construct a `VideoCodecFrame` struct initialized to zero.+newZeroVideoCodecFrame :: MonadIO m => m VideoCodecFrame+newZeroVideoCodecFrame = liftIO $ callocBoxedBytes 104 >>= wrapBoxed VideoCodecFrame++instance tag ~ 'AttrSet => Constructible VideoCodecFrame tag where+    new _ attrs = do+        o <- newZeroVideoCodecFrame+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoCodecFrame`.+noVideoCodecFrame :: Maybe VideoCodecFrame+noVideoCodecFrame = Nothing++{- |+Get the value of the “@system_frame_number@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #systemFrameNumber+@+-}+getVideoCodecFrameSystemFrameNumber :: MonadIO m => VideoCodecFrame -> m Word32+getVideoCodecFrameSystemFrameNumber s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++{- |+Set the value of the “@system_frame_number@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #systemFrameNumber 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameSystemFrameNumber :: MonadIO m => VideoCodecFrame -> Word32 -> m ()+setVideoCodecFrameSystemFrameNumber s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoCodecFrameSystemFrameNumberFieldInfo+instance AttrInfo VideoCodecFrameSystemFrameNumberFieldInfo where+    type AttrAllowedOps VideoCodecFrameSystemFrameNumberFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFrameSystemFrameNumberFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoCodecFrameSystemFrameNumberFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameSystemFrameNumberFieldInfo = Word32+    type AttrLabel VideoCodecFrameSystemFrameNumberFieldInfo = "system_frame_number"+    type AttrOrigin VideoCodecFrameSystemFrameNumberFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameSystemFrameNumber+    attrSet _ = setVideoCodecFrameSystemFrameNumber+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_systemFrameNumber :: AttrLabelProxy "systemFrameNumber"+videoCodecFrame_systemFrameNumber = AttrLabelProxy++#endif+++{- |+Get the value of the “@dts@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #dts+@+-}+getVideoCodecFrameDts :: MonadIO m => VideoCodecFrame -> m Word64+getVideoCodecFrameDts s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word64+    return val++{- |+Set the value of the “@dts@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #dts 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameDts :: MonadIO m => VideoCodecFrame -> Word64 -> m ()+setVideoCodecFrameDts s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoCodecFrameDtsFieldInfo+instance AttrInfo VideoCodecFrameDtsFieldInfo where+    type AttrAllowedOps VideoCodecFrameDtsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFrameDtsFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoCodecFrameDtsFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameDtsFieldInfo = Word64+    type AttrLabel VideoCodecFrameDtsFieldInfo = "dts"+    type AttrOrigin VideoCodecFrameDtsFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameDts+    attrSet _ = setVideoCodecFrameDts+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_dts :: AttrLabelProxy "dts"+videoCodecFrame_dts = AttrLabelProxy++#endif+++{- |+Get the value of the “@pts@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #pts+@+-}+getVideoCodecFramePts :: MonadIO m => VideoCodecFrame -> m Word64+getVideoCodecFramePts s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word64+    return val++{- |+Set the value of the “@pts@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #pts 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFramePts :: MonadIO m => VideoCodecFrame -> Word64 -> m ()+setVideoCodecFramePts s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoCodecFramePtsFieldInfo+instance AttrInfo VideoCodecFramePtsFieldInfo where+    type AttrAllowedOps VideoCodecFramePtsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFramePtsFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoCodecFramePtsFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFramePtsFieldInfo = Word64+    type AttrLabel VideoCodecFramePtsFieldInfo = "pts"+    type AttrOrigin VideoCodecFramePtsFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFramePts+    attrSet _ = setVideoCodecFramePts+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_pts :: AttrLabelProxy "pts"+videoCodecFrame_pts = AttrLabelProxy++#endif+++{- |+Get the value of the “@duration@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #duration+@+-}+getVideoCodecFrameDuration :: MonadIO m => VideoCodecFrame -> m Word64+getVideoCodecFrameDuration s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO Word64+    return val++{- |+Set the value of the “@duration@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #duration 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameDuration :: MonadIO m => VideoCodecFrame -> Word64 -> m ()+setVideoCodecFrameDuration s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 40) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoCodecFrameDurationFieldInfo+instance AttrInfo VideoCodecFrameDurationFieldInfo where+    type AttrAllowedOps VideoCodecFrameDurationFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFrameDurationFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoCodecFrameDurationFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameDurationFieldInfo = Word64+    type AttrLabel VideoCodecFrameDurationFieldInfo = "duration"+    type AttrOrigin VideoCodecFrameDurationFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameDuration+    attrSet _ = setVideoCodecFrameDuration+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_duration :: AttrLabelProxy "duration"+videoCodecFrame_duration = AttrLabelProxy++#endif+++{- |+Get the value of the “@distance_from_sync@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #distanceFromSync+@+-}+getVideoCodecFrameDistanceFromSync :: MonadIO m => VideoCodecFrame -> m Int32+getVideoCodecFrameDistanceFromSync s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO Int32+    return val++{- |+Set the value of the “@distance_from_sync@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #distanceFromSync 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameDistanceFromSync :: MonadIO m => VideoCodecFrame -> Int32 -> m ()+setVideoCodecFrameDistanceFromSync s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 48) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoCodecFrameDistanceFromSyncFieldInfo+instance AttrInfo VideoCodecFrameDistanceFromSyncFieldInfo where+    type AttrAllowedOps VideoCodecFrameDistanceFromSyncFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFrameDistanceFromSyncFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoCodecFrameDistanceFromSyncFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameDistanceFromSyncFieldInfo = Int32+    type AttrLabel VideoCodecFrameDistanceFromSyncFieldInfo = "distance_from_sync"+    type AttrOrigin VideoCodecFrameDistanceFromSyncFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameDistanceFromSync+    attrSet _ = setVideoCodecFrameDistanceFromSync+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_distanceFromSync :: AttrLabelProxy "distanceFromSync"+videoCodecFrame_distanceFromSync = AttrLabelProxy++#endif+++{- |+Get the value of the “@input_buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #inputBuffer+@+-}+getVideoCodecFrameInputBuffer :: MonadIO m => VideoCodecFrame -> m (Maybe Gst.Buffer.Buffer)+getVideoCodecFrameInputBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 56) :: IO (Ptr Gst.Buffer.Buffer)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Buffer.Buffer) val'+        return val''+    return result++{- |+Set the value of the “@input_buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #inputBuffer 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameInputBuffer :: MonadIO m => VideoCodecFrame -> Ptr Gst.Buffer.Buffer -> m ()+setVideoCodecFrameInputBuffer s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 56) (val :: Ptr Gst.Buffer.Buffer)++{- |+Set the value of the “@input_buffer@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #inputBuffer+@+-}+clearVideoCodecFrameInputBuffer :: MonadIO m => VideoCodecFrame -> m ()+clearVideoCodecFrameInputBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 56) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)++#if ENABLE_OVERLOADING+data VideoCodecFrameInputBufferFieldInfo+instance AttrInfo VideoCodecFrameInputBufferFieldInfo where+    type AttrAllowedOps VideoCodecFrameInputBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoCodecFrameInputBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)+    type AttrBaseTypeConstraint VideoCodecFrameInputBufferFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameInputBufferFieldInfo = Maybe Gst.Buffer.Buffer+    type AttrLabel VideoCodecFrameInputBufferFieldInfo = "input_buffer"+    type AttrOrigin VideoCodecFrameInputBufferFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameInputBuffer+    attrSet _ = setVideoCodecFrameInputBuffer+    attrConstruct = undefined+    attrClear _ = clearVideoCodecFrameInputBuffer++videoCodecFrame_inputBuffer :: AttrLabelProxy "inputBuffer"+videoCodecFrame_inputBuffer = AttrLabelProxy++#endif+++{- |+Get the value of the “@output_buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #outputBuffer+@+-}+getVideoCodecFrameOutputBuffer :: MonadIO m => VideoCodecFrame -> m (Maybe Gst.Buffer.Buffer)+getVideoCodecFrameOutputBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 64) :: IO (Ptr Gst.Buffer.Buffer)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Buffer.Buffer) val'+        return val''+    return result++{- |+Set the value of the “@output_buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #outputBuffer 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameOutputBuffer :: MonadIO m => VideoCodecFrame -> Ptr Gst.Buffer.Buffer -> m ()+setVideoCodecFrameOutputBuffer s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 64) (val :: Ptr Gst.Buffer.Buffer)++{- |+Set the value of the “@output_buffer@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #outputBuffer+@+-}+clearVideoCodecFrameOutputBuffer :: MonadIO m => VideoCodecFrame -> m ()+clearVideoCodecFrameOutputBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 64) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)++#if ENABLE_OVERLOADING+data VideoCodecFrameOutputBufferFieldInfo+instance AttrInfo VideoCodecFrameOutputBufferFieldInfo where+    type AttrAllowedOps VideoCodecFrameOutputBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoCodecFrameOutputBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)+    type AttrBaseTypeConstraint VideoCodecFrameOutputBufferFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameOutputBufferFieldInfo = Maybe Gst.Buffer.Buffer+    type AttrLabel VideoCodecFrameOutputBufferFieldInfo = "output_buffer"+    type AttrOrigin VideoCodecFrameOutputBufferFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameOutputBuffer+    attrSet _ = setVideoCodecFrameOutputBuffer+    attrConstruct = undefined+    attrClear _ = clearVideoCodecFrameOutputBuffer++videoCodecFrame_outputBuffer :: AttrLabelProxy "outputBuffer"+videoCodecFrame_outputBuffer = AttrLabelProxy++#endif+++{- |+Get the value of the “@deadline@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecFrame #deadline+@+-}+getVideoCodecFrameDeadline :: MonadIO m => VideoCodecFrame -> m Word64+getVideoCodecFrameDeadline s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 72) :: IO Word64+    return val++{- |+Set the value of the “@deadline@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecFrame [ #deadline 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecFrameDeadline :: MonadIO m => VideoCodecFrame -> Word64 -> m ()+setVideoCodecFrameDeadline s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 72) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoCodecFrameDeadlineFieldInfo+instance AttrInfo VideoCodecFrameDeadlineFieldInfo where+    type AttrAllowedOps VideoCodecFrameDeadlineFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCodecFrameDeadlineFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoCodecFrameDeadlineFieldInfo = (~) VideoCodecFrame+    type AttrGetType VideoCodecFrameDeadlineFieldInfo = Word64+    type AttrLabel VideoCodecFrameDeadlineFieldInfo = "deadline"+    type AttrOrigin VideoCodecFrameDeadlineFieldInfo = VideoCodecFrame+    attrGet _ = getVideoCodecFrameDeadline+    attrSet _ = setVideoCodecFrameDeadline+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecFrame_deadline :: AttrLabelProxy "deadline"+videoCodecFrame_deadline = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoCodecFrame+type instance O.AttributeList VideoCodecFrame = VideoCodecFrameAttributeList+type VideoCodecFrameAttributeList = ('[ '("systemFrameNumber", VideoCodecFrameSystemFrameNumberFieldInfo), '("dts", VideoCodecFrameDtsFieldInfo), '("pts", VideoCodecFramePtsFieldInfo), '("duration", VideoCodecFrameDurationFieldInfo), '("distanceFromSync", VideoCodecFrameDistanceFromSyncFieldInfo), '("inputBuffer", VideoCodecFrameInputBufferFieldInfo), '("outputBuffer", VideoCodecFrameOutputBufferFieldInfo), '("deadline", VideoCodecFrameDeadlineFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoCodecFrame::get_user_data+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TPtr)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_frame_get_user_data" gst_video_codec_frame_get_user_data :: +    Ptr VideoCodecFrame ->                  -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO (Ptr ())++{- |+Gets private data set on the frame by the subclass via+'GI.GstVideo.Structs.VideoCodecFrame.videoCodecFrameSetUserData' previously.+-}+videoCodecFrameGetUserData ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m (Ptr ())+    {- ^ __Returns:__ The previously set user_data -}+videoCodecFrameGetUserData frame = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_codec_frame_get_user_data frame'+    touchManagedPtr frame+    return result++#if ENABLE_OVERLOADING+data VideoCodecFrameGetUserDataMethodInfo+instance (signature ~ (m (Ptr ())), MonadIO m) => O.MethodInfo VideoCodecFrameGetUserDataMethodInfo VideoCodecFrame signature where+    overloadedMethod _ = videoCodecFrameGetUserData++#endif++-- method VideoCodecFrame::ref+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_frame_ref" gst_video_codec_frame_ref :: +    Ptr VideoCodecFrame ->                  -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO (Ptr VideoCodecFrame)++{- |+Increases the refcount of the given frame by one.+-}+videoCodecFrameRef ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m VideoCodecFrame+    {- ^ __Returns:__ /@buf@/ -}+videoCodecFrameRef frame = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    result <- gst_video_codec_frame_ref frame'+    checkUnexpectedReturnNULL "videoCodecFrameRef" result+    result' <- (wrapBoxed VideoCodecFrame) result+    touchManagedPtr frame+    return result'++#if ENABLE_OVERLOADING+data VideoCodecFrameRefMethodInfo+instance (signature ~ (m VideoCodecFrame), MonadIO m) => O.MethodInfo VideoCodecFrameRefMethodInfo VideoCodecFrame signature where+    overloadedMethod _ = videoCodecFrameRef++#endif++-- method VideoCodecFrame::set_user_data+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "private data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface (Name {namespace = "GLib", name = "DestroyNotify"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GDestroyNotify", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_frame_set_user_data" gst_video_codec_frame_set_user_data :: +    Ptr VideoCodecFrame ->                  -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    Ptr () ->                               -- user_data : TBasicType TPtr+    FunPtr GLib.Callbacks.C_DestroyNotify -> -- notify : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})+    IO ()++{- |+Sets /@userData@/ on the frame and the 'GI.GLib.Callbacks.DestroyNotify' that will be called when+the frame is freed. Allows to attach private data by the subclass to frames.++If a /@userData@/ was previously set, then the previous set /@notify@/ will be called+before the /@userData@/ is replaced.+-}+videoCodecFrameSetUserData ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> GLib.Callbacks.DestroyNotify+    {- ^ /@notify@/: a 'GI.GLib.Callbacks.DestroyNotify' -}+    -> m ()+videoCodecFrameSetUserData frame notify = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    ptrnotify <- callocMem :: IO (Ptr (FunPtr GLib.Callbacks.C_DestroyNotify))+    notify' <- GLib.Callbacks.mk_DestroyNotify (GLib.Callbacks.wrap_DestroyNotify (Just ptrnotify) notify)+    poke ptrnotify notify'+    let userData = nullPtr+    gst_video_codec_frame_set_user_data frame' userData notify'+    touchManagedPtr frame+    return ()++#if ENABLE_OVERLOADING+data VideoCodecFrameSetUserDataMethodInfo+instance (signature ~ (GLib.Callbacks.DestroyNotify -> m ()), MonadIO m) => O.MethodInfo VideoCodecFrameSetUserDataMethodInfo VideoCodecFrame signature where+    overloadedMethod _ = videoCodecFrameSetUserData++#endif++-- method VideoCodecFrame::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_frame_unref" gst_video_codec_frame_unref :: +    Ptr VideoCodecFrame ->                  -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoCodecFrame"})+    IO ()++{- |+Decreases the refcount of the frame. If the refcount reaches 0, the frame+will be freed.+-}+videoCodecFrameUnref ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoCodecFrame.VideoCodecFrame' -}+    -> m ()+videoCodecFrameUnref frame = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    gst_video_codec_frame_unref frame'+    touchManagedPtr frame+    return ()++#if ENABLE_OVERLOADING+data VideoCodecFrameUnrefMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoCodecFrameUnrefMethodInfo VideoCodecFrame signature where+    overloadedMethod _ = videoCodecFrameUnref++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoCodecFrameMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoCodecFrameMethod "ref" o = VideoCodecFrameRefMethodInfo+    ResolveVideoCodecFrameMethod "unref" o = VideoCodecFrameUnrefMethodInfo+    ResolveVideoCodecFrameMethod "getUserData" o = VideoCodecFrameGetUserDataMethodInfo+    ResolveVideoCodecFrameMethod "setUserData" o = VideoCodecFrameSetUserDataMethodInfo+    ResolveVideoCodecFrameMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoCodecFrameMethod t VideoCodecFrame, O.MethodInfo info VideoCodecFrame p) => OL.IsLabel t (VideoCodecFrame -> 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++
+ GI/GstVideo/Structs/VideoCodecFrame.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoCodecFrame 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++newtype VideoCodecFrame = VideoCodecFrame (ManagedPtr VideoCodecFrame)+instance BoxedObject VideoCodecFrame where+#if ENABLE_OVERLOADING+data VideoCodecFrameGetUserDataMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoCodecFrameRefMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoCodecFrameSetUserDataMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoCodecFrameUnrefMethodInfo+#endif
+ GI/GstVideo/Structs/VideoCodecState.hs view
@@ -0,0 +1,452 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Structure representing the state of an incoming or outgoing video+stream for encoders and decoders.++Decoders and encoders will receive such a state through their+respective /@setFormat@/ vmethods.++Decoders and encoders can set the downstream state, by using the+/@gstVideoDecoderSetOutputState@/() or+/@gstVideoEncoderSetOutputState@/() methods.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoCodecState+    ( ++-- * Exported types+    VideoCodecState(..)                     ,+    newZeroVideoCodecState                  ,+    noVideoCodecState                       ,+++ -- * Methods+-- ** ref #method:ref#++#if ENABLE_OVERLOADING+    VideoCodecStateRefMethodInfo            ,+#endif+    videoCodecStateRef                      ,+++-- ** unref #method:unref#++#if ENABLE_OVERLOADING+    VideoCodecStateUnrefMethodInfo          ,+#endif+    videoCodecStateUnref                    ,+++++ -- * Properties+-- ** allocationCaps #attr:allocationCaps#+{- | The 'GI.Gst.Structs.Caps.Caps' for allocation query and pool+    negotiation. Since: 1.10+-}+    clearVideoCodecStateAllocationCaps      ,+    getVideoCodecStateAllocationCaps        ,+    setVideoCodecStateAllocationCaps        ,+#if ENABLE_OVERLOADING+    videoCodecState_allocationCaps          ,+#endif+++-- ** caps #attr:caps#+{- | The 'GI.Gst.Structs.Caps.Caps' used in the caps negotiation of the pad.+-}+    clearVideoCodecStateCaps                ,+    getVideoCodecStateCaps                  ,+    setVideoCodecStateCaps                  ,+#if ENABLE_OVERLOADING+    videoCodecState_caps                    ,+#endif+++-- ** codecData #attr:codecData#+{- | a 'GI.Gst.Structs.Buffer.Buffer' corresponding to the+    \'codec_data\' field of a stream, or NULL.+-}+    clearVideoCodecStateCodecData           ,+    getVideoCodecStateCodecData             ,+    setVideoCodecStateCodecData             ,+#if ENABLE_OVERLOADING+    videoCodecState_codecData               ,+#endif+++-- ** info #attr:info#+{- | The 'GI.GstVideo.Structs.VideoInfo.VideoInfo' describing the stream+-}+    getVideoCodecStateInfo                  ,+#if ENABLE_OVERLOADING+    videoCodecState_info                    ,+#endif+++++    ) 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.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.Gst.Structs.Caps as Gst.Caps+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoInfo as GstVideo.VideoInfo++-- | Memory-managed wrapper type.+newtype VideoCodecState = VideoCodecState (ManagedPtr VideoCodecState)+foreign import ccall "gst_video_codec_state_get_type" c_gst_video_codec_state_get_type :: +    IO GType++instance BoxedObject VideoCodecState where+    boxedType _ = c_gst_video_codec_state_get_type++-- | Construct a `VideoCodecState` struct initialized to zero.+newZeroVideoCodecState :: MonadIO m => m VideoCodecState+newZeroVideoCodecState = liftIO $ callocBoxedBytes 304 >>= wrapBoxed VideoCodecState++instance tag ~ 'AttrSet => Constructible VideoCodecState tag where+    new _ attrs = do+        o <- newZeroVideoCodecState+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoCodecState`.+noVideoCodecState :: Maybe VideoCodecState+noVideoCodecState = Nothing++{- |+Get the value of the “@info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecState #info+@+-}+getVideoCodecStateInfo :: MonadIO m => VideoCodecState -> m GstVideo.VideoInfo.VideoInfo+getVideoCodecStateInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 8 :: (Ptr GstVideo.VideoInfo.VideoInfo)+    val' <- (newBoxed GstVideo.VideoInfo.VideoInfo) val+    return val'++#if ENABLE_OVERLOADING+data VideoCodecStateInfoFieldInfo+instance AttrInfo VideoCodecStateInfoFieldInfo where+    type AttrAllowedOps VideoCodecStateInfoFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoCodecStateInfoFieldInfo = (~) (Ptr GstVideo.VideoInfo.VideoInfo)+    type AttrBaseTypeConstraint VideoCodecStateInfoFieldInfo = (~) VideoCodecState+    type AttrGetType VideoCodecStateInfoFieldInfo = GstVideo.VideoInfo.VideoInfo+    type AttrLabel VideoCodecStateInfoFieldInfo = "info"+    type AttrOrigin VideoCodecStateInfoFieldInfo = VideoCodecState+    attrGet _ = getVideoCodecStateInfo+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoCodecState_info :: AttrLabelProxy "info"+videoCodecState_info = AttrLabelProxy++#endif+++{- |+Get the value of the “@caps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecState #caps+@+-}+getVideoCodecStateCaps :: MonadIO m => VideoCodecState -> m (Maybe Gst.Caps.Caps)+getVideoCodecStateCaps s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 128) :: IO (Ptr Gst.Caps.Caps)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Caps.Caps) val'+        return val''+    return result++{- |+Set the value of the “@caps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecState [ #caps 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecStateCaps :: MonadIO m => VideoCodecState -> Ptr Gst.Caps.Caps -> m ()+setVideoCodecStateCaps s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 128) (val :: Ptr Gst.Caps.Caps)++{- |+Set the value of the “@caps@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #caps+@+-}+clearVideoCodecStateCaps :: MonadIO m => VideoCodecState -> m ()+clearVideoCodecStateCaps s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 128) (FP.nullPtr :: Ptr Gst.Caps.Caps)++#if ENABLE_OVERLOADING+data VideoCodecStateCapsFieldInfo+instance AttrInfo VideoCodecStateCapsFieldInfo where+    type AttrAllowedOps VideoCodecStateCapsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoCodecStateCapsFieldInfo = (~) (Ptr Gst.Caps.Caps)+    type AttrBaseTypeConstraint VideoCodecStateCapsFieldInfo = (~) VideoCodecState+    type AttrGetType VideoCodecStateCapsFieldInfo = Maybe Gst.Caps.Caps+    type AttrLabel VideoCodecStateCapsFieldInfo = "caps"+    type AttrOrigin VideoCodecStateCapsFieldInfo = VideoCodecState+    attrGet _ = getVideoCodecStateCaps+    attrSet _ = setVideoCodecStateCaps+    attrConstruct = undefined+    attrClear _ = clearVideoCodecStateCaps++videoCodecState_caps :: AttrLabelProxy "caps"+videoCodecState_caps = AttrLabelProxy++#endif+++{- |+Get the value of the “@codec_data@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecState #codecData+@+-}+getVideoCodecStateCodecData :: MonadIO m => VideoCodecState -> m (Maybe Gst.Buffer.Buffer)+getVideoCodecStateCodecData s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 136) :: IO (Ptr Gst.Buffer.Buffer)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Buffer.Buffer) val'+        return val''+    return result++{- |+Set the value of the “@codec_data@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecState [ #codecData 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecStateCodecData :: MonadIO m => VideoCodecState -> Ptr Gst.Buffer.Buffer -> m ()+setVideoCodecStateCodecData s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 136) (val :: Ptr Gst.Buffer.Buffer)++{- |+Set the value of the “@codec_data@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #codecData+@+-}+clearVideoCodecStateCodecData :: MonadIO m => VideoCodecState -> m ()+clearVideoCodecStateCodecData s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 136) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)++#if ENABLE_OVERLOADING+data VideoCodecStateCodecDataFieldInfo+instance AttrInfo VideoCodecStateCodecDataFieldInfo where+    type AttrAllowedOps VideoCodecStateCodecDataFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoCodecStateCodecDataFieldInfo = (~) (Ptr Gst.Buffer.Buffer)+    type AttrBaseTypeConstraint VideoCodecStateCodecDataFieldInfo = (~) VideoCodecState+    type AttrGetType VideoCodecStateCodecDataFieldInfo = Maybe Gst.Buffer.Buffer+    type AttrLabel VideoCodecStateCodecDataFieldInfo = "codec_data"+    type AttrOrigin VideoCodecStateCodecDataFieldInfo = VideoCodecState+    attrGet _ = getVideoCodecStateCodecData+    attrSet _ = setVideoCodecStateCodecData+    attrConstruct = undefined+    attrClear _ = clearVideoCodecStateCodecData++videoCodecState_codecData :: AttrLabelProxy "codecData"+videoCodecState_codecData = AttrLabelProxy++#endif+++{- |+Get the value of the “@allocation_caps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCodecState #allocationCaps+@+-}+getVideoCodecStateAllocationCaps :: MonadIO m => VideoCodecState -> m (Maybe Gst.Caps.Caps)+getVideoCodecStateAllocationCaps s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 144) :: IO (Ptr Gst.Caps.Caps)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Caps.Caps) val'+        return val''+    return result++{- |+Set the value of the “@allocation_caps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCodecState [ #allocationCaps 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCodecStateAllocationCaps :: MonadIO m => VideoCodecState -> Ptr Gst.Caps.Caps -> m ()+setVideoCodecStateAllocationCaps s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 144) (val :: Ptr Gst.Caps.Caps)++{- |+Set the value of the “@allocation_caps@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #allocationCaps+@+-}+clearVideoCodecStateAllocationCaps :: MonadIO m => VideoCodecState -> m ()+clearVideoCodecStateAllocationCaps s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 144) (FP.nullPtr :: Ptr Gst.Caps.Caps)++#if ENABLE_OVERLOADING+data VideoCodecStateAllocationCapsFieldInfo+instance AttrInfo VideoCodecStateAllocationCapsFieldInfo where+    type AttrAllowedOps VideoCodecStateAllocationCapsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoCodecStateAllocationCapsFieldInfo = (~) (Ptr Gst.Caps.Caps)+    type AttrBaseTypeConstraint VideoCodecStateAllocationCapsFieldInfo = (~) VideoCodecState+    type AttrGetType VideoCodecStateAllocationCapsFieldInfo = Maybe Gst.Caps.Caps+    type AttrLabel VideoCodecStateAllocationCapsFieldInfo = "allocation_caps"+    type AttrOrigin VideoCodecStateAllocationCapsFieldInfo = VideoCodecState+    attrGet _ = getVideoCodecStateAllocationCaps+    attrSet _ = setVideoCodecStateAllocationCaps+    attrConstruct = undefined+    attrClear _ = clearVideoCodecStateAllocationCaps++videoCodecState_allocationCaps :: AttrLabelProxy "allocationCaps"+videoCodecState_allocationCaps = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoCodecState+type instance O.AttributeList VideoCodecState = VideoCodecStateAttributeList+type VideoCodecStateAttributeList = ('[ '("info", VideoCodecStateInfoFieldInfo), '("caps", VideoCodecStateCapsFieldInfo), '("codecData", VideoCodecStateCodecDataFieldInfo), '("allocationCaps", VideoCodecStateAllocationCapsFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoCodecState::ref+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "state", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecState", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_state_ref" gst_video_codec_state_ref :: +    Ptr VideoCodecState ->                  -- state : TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"})+    IO (Ptr VideoCodecState)++{- |+Increases the refcount of the given state by one.+-}+videoCodecStateRef ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecState+    {- ^ /@state@/: a 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' -}+    -> m VideoCodecState+    {- ^ __Returns:__ /@buf@/ -}+videoCodecStateRef state = liftIO $ do+    state' <- unsafeManagedPtrGetPtr state+    result <- gst_video_codec_state_ref state'+    checkUnexpectedReturnNULL "videoCodecStateRef" result+    result' <- (wrapBoxed VideoCodecState) result+    touchManagedPtr state+    return result'++#if ENABLE_OVERLOADING+data VideoCodecStateRefMethodInfo+instance (signature ~ (m VideoCodecState), MonadIO m) => O.MethodInfo VideoCodecStateRefMethodInfo VideoCodecState signature where+    overloadedMethod _ = videoCodecStateRef++#endif++-- method VideoCodecState::unref+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "state", argType = TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoCodecState", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_codec_state_unref" gst_video_codec_state_unref :: +    Ptr VideoCodecState ->                  -- state : TInterface (Name {namespace = "GstVideo", name = "VideoCodecState"})+    IO ()++{- |+Decreases the refcount of the state. If the refcount reaches 0, the state+will be freed.+-}+videoCodecStateUnref ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoCodecState+    {- ^ /@state@/: a 'GI.GstVideo.Structs.VideoCodecState.VideoCodecState' -}+    -> m ()+videoCodecStateUnref state = liftIO $ do+    state' <- unsafeManagedPtrGetPtr state+    gst_video_codec_state_unref state'+    touchManagedPtr state+    return ()++#if ENABLE_OVERLOADING+data VideoCodecStateUnrefMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoCodecStateUnrefMethodInfo VideoCodecState signature where+    overloadedMethod _ = videoCodecStateUnref++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoCodecStateMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoCodecStateMethod "ref" o = VideoCodecStateRefMethodInfo+    ResolveVideoCodecStateMethod "unref" o = VideoCodecStateUnrefMethodInfo+    ResolveVideoCodecStateMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoCodecStateMethod t VideoCodecState, O.MethodInfo info VideoCodecState p) => OL.IsLabel t (VideoCodecState -> 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++
+ GI/GstVideo/Structs/VideoCodecState.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoCodecState 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++newtype VideoCodecState = VideoCodecState (ManagedPtr VideoCodecState)+instance BoxedObject VideoCodecState where+#if ENABLE_OVERLOADING+data VideoCodecStateRefMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoCodecStateUnrefMethodInfo+#endif
+ GI/GstVideo/Structs/VideoColorPrimariesInfo.hs view
@@ -0,0 +1,609 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Structure describing the chromaticity coordinates of an RGB system. These+values can be used to construct a matrix to transform RGB to and from the+XYZ colorspace.++/Since: 1.6/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoColorPrimariesInfo+    ( ++-- * Exported types+    VideoColorPrimariesInfo(..)             ,+    newZeroVideoColorPrimariesInfo          ,+    noVideoColorPrimariesInfo               ,+++ -- * Properties+-- ** bx #attr:bx#+{- | blue x coordinate+-}+    getVideoColorPrimariesInfoBx            ,+    setVideoColorPrimariesInfoBx            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_bx              ,+#endif+++-- ** by #attr:by#+{- | blue y coordinate+-}+    getVideoColorPrimariesInfoBy            ,+    setVideoColorPrimariesInfoBy            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_by              ,+#endif+++-- ** gx #attr:gx#+{- | green x coordinate+-}+    getVideoColorPrimariesInfoGx            ,+    setVideoColorPrimariesInfoGx            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_gx              ,+#endif+++-- ** gy #attr:gy#+{- | green y coordinate+-}+    getVideoColorPrimariesInfoGy            ,+    setVideoColorPrimariesInfoGy            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_gy              ,+#endif+++-- ** primaries #attr:primaries#+{- | a 'GI.GstVideo.Enums.VideoColorPrimaries'+-}+    getVideoColorPrimariesInfoPrimaries     ,+    setVideoColorPrimariesInfoPrimaries     ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_primaries       ,+#endif+++-- ** rx #attr:rx#+{- | red x coordinate+-}+    getVideoColorPrimariesInfoRx            ,+    setVideoColorPrimariesInfoRx            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_rx              ,+#endif+++-- ** ry #attr:ry#+{- | red y coordinate+-}+    getVideoColorPrimariesInfoRy            ,+    setVideoColorPrimariesInfoRy            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_ry              ,+#endif+++-- ** wx #attr:wx#+{- | reference white x coordinate+-}+    getVideoColorPrimariesInfoWx            ,+    setVideoColorPrimariesInfoWx            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_wx              ,+#endif+++-- ** wy #attr:wy#+{- | reference white y coordinate+-}+    getVideoColorPrimariesInfoWy            ,+    setVideoColorPrimariesInfoWy            ,+#if ENABLE_OVERLOADING+    videoColorPrimariesInfo_wy              ,+#endif+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoColorPrimariesInfo = VideoColorPrimariesInfo (ManagedPtr VideoColorPrimariesInfo)+instance WrappedPtr VideoColorPrimariesInfo where+    wrappedPtrCalloc = callocBytes 72+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 72 >=> wrapPtr VideoColorPrimariesInfo)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoColorPrimariesInfo` struct initialized to zero.+newZeroVideoColorPrimariesInfo :: MonadIO m => m VideoColorPrimariesInfo+newZeroVideoColorPrimariesInfo = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoColorPrimariesInfo++instance tag ~ 'AttrSet => Constructible VideoColorPrimariesInfo tag where+    new _ attrs = do+        o <- newZeroVideoColorPrimariesInfo+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoColorPrimariesInfo`.+noVideoColorPrimariesInfo :: Maybe VideoColorPrimariesInfo+noVideoColorPrimariesInfo = Nothing++{- |+Get the value of the “@primaries@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #primaries+@+-}+getVideoColorPrimariesInfoPrimaries :: MonadIO m => VideoColorPrimariesInfo -> m GstVideo.Enums.VideoColorPrimaries+getVideoColorPrimariesInfoPrimaries s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@primaries@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #primaries 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoPrimaries :: MonadIO m => VideoColorPrimariesInfo -> GstVideo.Enums.VideoColorPrimaries -> m ()+setVideoColorPrimariesInfoPrimaries s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 0) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoPrimariesFieldInfo+instance AttrInfo VideoColorPrimariesInfoPrimariesFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoPrimariesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoPrimariesFieldInfo = (~) GstVideo.Enums.VideoColorPrimaries+    type AttrBaseTypeConstraint VideoColorPrimariesInfoPrimariesFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoPrimariesFieldInfo = GstVideo.Enums.VideoColorPrimaries+    type AttrLabel VideoColorPrimariesInfoPrimariesFieldInfo = "primaries"+    type AttrOrigin VideoColorPrimariesInfoPrimariesFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoPrimaries+    attrSet _ = setVideoColorPrimariesInfoPrimaries+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_primaries :: AttrLabelProxy "primaries"+videoColorPrimariesInfo_primaries = AttrLabelProxy++#endif+++{- |+Get the value of the “@Wx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #wx+@+-}+getVideoColorPrimariesInfoWx :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoWx s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Wx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #wx 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoWx :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoWx s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 8) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoWxFieldInfo+instance AttrInfo VideoColorPrimariesInfoWxFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoWxFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoWxFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoWxFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoWxFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoWxFieldInfo = "Wx"+    type AttrOrigin VideoColorPrimariesInfoWxFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoWx+    attrSet _ = setVideoColorPrimariesInfoWx+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_wx :: AttrLabelProxy "wx"+videoColorPrimariesInfo_wx = AttrLabelProxy++#endif+++{- |+Get the value of the “@Wy@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #wy+@+-}+getVideoColorPrimariesInfoWy :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoWy s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Wy@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #wy 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoWy :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoWy s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 16) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoWyFieldInfo+instance AttrInfo VideoColorPrimariesInfoWyFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoWyFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoWyFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoWyFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoWyFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoWyFieldInfo = "Wy"+    type AttrOrigin VideoColorPrimariesInfoWyFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoWy+    attrSet _ = setVideoColorPrimariesInfoWy+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_wy :: AttrLabelProxy "wy"+videoColorPrimariesInfo_wy = AttrLabelProxy++#endif+++{- |+Get the value of the “@Rx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #rx+@+-}+getVideoColorPrimariesInfoRx :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoRx s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Rx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #rx 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoRx :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoRx s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 24) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoRxFieldInfo+instance AttrInfo VideoColorPrimariesInfoRxFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoRxFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoRxFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoRxFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoRxFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoRxFieldInfo = "Rx"+    type AttrOrigin VideoColorPrimariesInfoRxFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoRx+    attrSet _ = setVideoColorPrimariesInfoRx+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_rx :: AttrLabelProxy "rx"+videoColorPrimariesInfo_rx = AttrLabelProxy++#endif+++{- |+Get the value of the “@Ry@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #ry+@+-}+getVideoColorPrimariesInfoRy :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoRy s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Ry@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #ry 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoRy :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoRy s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 32) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoRyFieldInfo+instance AttrInfo VideoColorPrimariesInfoRyFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoRyFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoRyFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoRyFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoRyFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoRyFieldInfo = "Ry"+    type AttrOrigin VideoColorPrimariesInfoRyFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoRy+    attrSet _ = setVideoColorPrimariesInfoRy+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_ry :: AttrLabelProxy "ry"+videoColorPrimariesInfo_ry = AttrLabelProxy++#endif+++{- |+Get the value of the “@Gx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #gx+@+-}+getVideoColorPrimariesInfoGx :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoGx s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Gx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #gx 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoGx :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoGx s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 40) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoGxFieldInfo+instance AttrInfo VideoColorPrimariesInfoGxFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoGxFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoGxFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoGxFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoGxFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoGxFieldInfo = "Gx"+    type AttrOrigin VideoColorPrimariesInfoGxFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoGx+    attrSet _ = setVideoColorPrimariesInfoGx+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_gx :: AttrLabelProxy "gx"+videoColorPrimariesInfo_gx = AttrLabelProxy++#endif+++{- |+Get the value of the “@Gy@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #gy+@+-}+getVideoColorPrimariesInfoGy :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoGy s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Gy@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #gy 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoGy :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoGy s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 48) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoGyFieldInfo+instance AttrInfo VideoColorPrimariesInfoGyFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoGyFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoGyFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoGyFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoGyFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoGyFieldInfo = "Gy"+    type AttrOrigin VideoColorPrimariesInfoGyFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoGy+    attrSet _ = setVideoColorPrimariesInfoGy+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_gy :: AttrLabelProxy "gy"+videoColorPrimariesInfo_gy = AttrLabelProxy++#endif+++{- |+Get the value of the “@Bx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #bx+@+-}+getVideoColorPrimariesInfoBx :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoBx s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 56) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@Bx@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #bx 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoBx :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoBx s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 56) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoBxFieldInfo+instance AttrInfo VideoColorPrimariesInfoBxFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoBxFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoBxFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoBxFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoBxFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoBxFieldInfo = "Bx"+    type AttrOrigin VideoColorPrimariesInfoBxFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoBx+    attrSet _ = setVideoColorPrimariesInfoBx+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_bx :: AttrLabelProxy "bx"+videoColorPrimariesInfo_bx = AttrLabelProxy++#endif+++{- |+Get the value of the “@By@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorPrimariesInfo #by+@+-}+getVideoColorPrimariesInfoBy :: MonadIO m => VideoColorPrimariesInfo -> m Double+getVideoColorPrimariesInfoBy s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 64) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@By@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorPrimariesInfo [ #by 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorPrimariesInfoBy :: MonadIO m => VideoColorPrimariesInfo -> Double -> m ()+setVideoColorPrimariesInfoBy s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 64) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoColorPrimariesInfoByFieldInfo+instance AttrInfo VideoColorPrimariesInfoByFieldInfo where+    type AttrAllowedOps VideoColorPrimariesInfoByFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorPrimariesInfoByFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoColorPrimariesInfoByFieldInfo = (~) VideoColorPrimariesInfo+    type AttrGetType VideoColorPrimariesInfoByFieldInfo = Double+    type AttrLabel VideoColorPrimariesInfoByFieldInfo = "By"+    type AttrOrigin VideoColorPrimariesInfoByFieldInfo = VideoColorPrimariesInfo+    attrGet _ = getVideoColorPrimariesInfoBy+    attrSet _ = setVideoColorPrimariesInfoBy+    attrConstruct = undefined+    attrClear _ = undefined++videoColorPrimariesInfo_by :: AttrLabelProxy "by"+videoColorPrimariesInfo_by = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoColorPrimariesInfo+type instance O.AttributeList VideoColorPrimariesInfo = VideoColorPrimariesInfoAttributeList+type VideoColorPrimariesInfoAttributeList = ('[ '("primaries", VideoColorPrimariesInfoPrimariesFieldInfo), '("wx", VideoColorPrimariesInfoWxFieldInfo), '("wy", VideoColorPrimariesInfoWyFieldInfo), '("rx", VideoColorPrimariesInfoRxFieldInfo), '("ry", VideoColorPrimariesInfoRyFieldInfo), '("gx", VideoColorPrimariesInfoGxFieldInfo), '("gy", VideoColorPrimariesInfoGyFieldInfo), '("bx", VideoColorPrimariesInfoBxFieldInfo), '("by", VideoColorPrimariesInfoByFieldInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoColorPrimariesInfoMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoColorPrimariesInfoMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoColorPrimariesInfoMethod t VideoColorPrimariesInfo, O.MethodInfo info VideoColorPrimariesInfo p) => OL.IsLabel t (VideoColorPrimariesInfo -> 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++
+ GI/GstVideo/Structs/VideoColorPrimariesInfo.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoColorPrimariesInfo 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++newtype VideoColorPrimariesInfo = VideoColorPrimariesInfo (ManagedPtr VideoColorPrimariesInfo)+instance WrappedPtr VideoColorPrimariesInfo where
+ GI/GstVideo/Structs/VideoColorimetry.hs view
@@ -0,0 +1,523 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Structure describing the color info.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoColorimetry+    ( ++-- * Exported types+    VideoColorimetry(..)                    ,+    newZeroVideoColorimetry                 ,+    noVideoColorimetry                      ,+++ -- * Methods+-- ** fromString #method:fromString#++#if ENABLE_OVERLOADING+    VideoColorimetryFromStringMethodInfo    ,+#endif+    videoColorimetryFromString              ,+++-- ** isEqual #method:isEqual#++#if ENABLE_OVERLOADING+    VideoColorimetryIsEqualMethodInfo       ,+#endif+    videoColorimetryIsEqual                 ,+++-- ** matches #method:matches#++#if ENABLE_OVERLOADING+    VideoColorimetryMatchesMethodInfo       ,+#endif+    videoColorimetryMatches                 ,+++-- ** toString #method:toString#++#if ENABLE_OVERLOADING+    VideoColorimetryToStringMethodInfo      ,+#endif+    videoColorimetryToString                ,+++++ -- * Properties+-- ** matrix #attr:matrix#+{- | the color matrix. Used to convert between Y\'PbPr and+         non-linear RGB (R\'G\'B\')+-}+    getVideoColorimetryMatrix               ,+    setVideoColorimetryMatrix               ,+#if ENABLE_OVERLOADING+    videoColorimetry_matrix                 ,+#endif+++-- ** primaries #attr:primaries#+{- | color primaries. used to convert between R\'G\'B\' and CIE XYZ+-}+    getVideoColorimetryPrimaries            ,+    setVideoColorimetryPrimaries            ,+#if ENABLE_OVERLOADING+    videoColorimetry_primaries              ,+#endif+++-- ** range #attr:range#+{- | the color range. This is the valid range for the samples.+        It is used to convert the samples to Y\'PbPr values.+-}+    getVideoColorimetryRange                ,+    setVideoColorimetryRange                ,+#if ENABLE_OVERLOADING+    videoColorimetry_range                  ,+#endif+++-- ** transfer #attr:transfer#+{- | the transfer function. used to convert between R\'G\'B\' and RGB+-}+    getVideoColorimetryTransfer             ,+    setVideoColorimetryTransfer             ,+#if ENABLE_OVERLOADING+    videoColorimetry_transfer               ,+#endif+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoColorimetry = VideoColorimetry (ManagedPtr VideoColorimetry)+instance WrappedPtr VideoColorimetry where+    wrappedPtrCalloc = callocBytes 16+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 16 >=> wrapPtr VideoColorimetry)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoColorimetry` struct initialized to zero.+newZeroVideoColorimetry :: MonadIO m => m VideoColorimetry+newZeroVideoColorimetry = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoColorimetry++instance tag ~ 'AttrSet => Constructible VideoColorimetry tag where+    new _ attrs = do+        o <- newZeroVideoColorimetry+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoColorimetry`.+noVideoColorimetry :: Maybe VideoColorimetry+noVideoColorimetry = Nothing++{- |+Get the value of the “@range@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorimetry #range+@+-}+getVideoColorimetryRange :: MonadIO m => VideoColorimetry -> m GstVideo.Enums.VideoColorRange+getVideoColorimetryRange s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@range@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorimetry [ #range 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorimetryRange :: MonadIO m => VideoColorimetry -> GstVideo.Enums.VideoColorRange -> m ()+setVideoColorimetryRange s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 0) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoColorimetryRangeFieldInfo+instance AttrInfo VideoColorimetryRangeFieldInfo where+    type AttrAllowedOps VideoColorimetryRangeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorimetryRangeFieldInfo = (~) GstVideo.Enums.VideoColorRange+    type AttrBaseTypeConstraint VideoColorimetryRangeFieldInfo = (~) VideoColorimetry+    type AttrGetType VideoColorimetryRangeFieldInfo = GstVideo.Enums.VideoColorRange+    type AttrLabel VideoColorimetryRangeFieldInfo = "range"+    type AttrOrigin VideoColorimetryRangeFieldInfo = VideoColorimetry+    attrGet _ = getVideoColorimetryRange+    attrSet _ = setVideoColorimetryRange+    attrConstruct = undefined+    attrClear _ = undefined++videoColorimetry_range :: AttrLabelProxy "range"+videoColorimetry_range = AttrLabelProxy++#endif+++{- |+Get the value of the “@matrix@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorimetry #matrix+@+-}+getVideoColorimetryMatrix :: MonadIO m => VideoColorimetry -> m GstVideo.Enums.VideoColorMatrix+getVideoColorimetryMatrix s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@matrix@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorimetry [ #matrix 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorimetryMatrix :: MonadIO m => VideoColorimetry -> GstVideo.Enums.VideoColorMatrix -> m ()+setVideoColorimetryMatrix s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 4) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoColorimetryMatrixFieldInfo+instance AttrInfo VideoColorimetryMatrixFieldInfo where+    type AttrAllowedOps VideoColorimetryMatrixFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorimetryMatrixFieldInfo = (~) GstVideo.Enums.VideoColorMatrix+    type AttrBaseTypeConstraint VideoColorimetryMatrixFieldInfo = (~) VideoColorimetry+    type AttrGetType VideoColorimetryMatrixFieldInfo = GstVideo.Enums.VideoColorMatrix+    type AttrLabel VideoColorimetryMatrixFieldInfo = "matrix"+    type AttrOrigin VideoColorimetryMatrixFieldInfo = VideoColorimetry+    attrGet _ = getVideoColorimetryMatrix+    attrSet _ = setVideoColorimetryMatrix+    attrConstruct = undefined+    attrClear _ = undefined++videoColorimetry_matrix :: AttrLabelProxy "matrix"+videoColorimetry_matrix = AttrLabelProxy++#endif+++{- |+Get the value of the “@transfer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorimetry #transfer+@+-}+getVideoColorimetryTransfer :: MonadIO m => VideoColorimetry -> m GstVideo.Enums.VideoTransferFunction+getVideoColorimetryTransfer s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@transfer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorimetry [ #transfer 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorimetryTransfer :: MonadIO m => VideoColorimetry -> GstVideo.Enums.VideoTransferFunction -> m ()+setVideoColorimetryTransfer s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 8) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoColorimetryTransferFieldInfo+instance AttrInfo VideoColorimetryTransferFieldInfo where+    type AttrAllowedOps VideoColorimetryTransferFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorimetryTransferFieldInfo = (~) GstVideo.Enums.VideoTransferFunction+    type AttrBaseTypeConstraint VideoColorimetryTransferFieldInfo = (~) VideoColorimetry+    type AttrGetType VideoColorimetryTransferFieldInfo = GstVideo.Enums.VideoTransferFunction+    type AttrLabel VideoColorimetryTransferFieldInfo = "transfer"+    type AttrOrigin VideoColorimetryTransferFieldInfo = VideoColorimetry+    attrGet _ = getVideoColorimetryTransfer+    attrSet _ = setVideoColorimetryTransfer+    attrConstruct = undefined+    attrClear _ = undefined++videoColorimetry_transfer :: AttrLabelProxy "transfer"+videoColorimetry_transfer = AttrLabelProxy++#endif+++{- |+Get the value of the “@primaries@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoColorimetry #primaries+@+-}+getVideoColorimetryPrimaries :: MonadIO m => VideoColorimetry -> m GstVideo.Enums.VideoColorPrimaries+getVideoColorimetryPrimaries s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@primaries@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoColorimetry [ #primaries 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoColorimetryPrimaries :: MonadIO m => VideoColorimetry -> GstVideo.Enums.VideoColorPrimaries -> m ()+setVideoColorimetryPrimaries s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 12) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoColorimetryPrimariesFieldInfo+instance AttrInfo VideoColorimetryPrimariesFieldInfo where+    type AttrAllowedOps VideoColorimetryPrimariesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoColorimetryPrimariesFieldInfo = (~) GstVideo.Enums.VideoColorPrimaries+    type AttrBaseTypeConstraint VideoColorimetryPrimariesFieldInfo = (~) VideoColorimetry+    type AttrGetType VideoColorimetryPrimariesFieldInfo = GstVideo.Enums.VideoColorPrimaries+    type AttrLabel VideoColorimetryPrimariesFieldInfo = "primaries"+    type AttrOrigin VideoColorimetryPrimariesFieldInfo = VideoColorimetry+    attrGet _ = getVideoColorimetryPrimaries+    attrSet _ = setVideoColorimetryPrimaries+    attrConstruct = undefined+    attrClear _ = undefined++videoColorimetry_primaries :: AttrLabelProxy "primaries"+videoColorimetry_primaries = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoColorimetry+type instance O.AttributeList VideoColorimetry = VideoColorimetryAttributeList+type VideoColorimetryAttributeList = ('[ '("range", VideoColorimetryRangeFieldInfo), '("matrix", VideoColorimetryMatrixFieldInfo), '("transfer", VideoColorimetryTransferFieldInfo), '("primaries", VideoColorimetryPrimariesFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoColorimetry::from_string+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "cinfo", argType = TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoColorimetry", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a colorimetry string", 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_video_colorimetry_from_string" gst_video_colorimetry_from_string :: +    Ptr VideoColorimetry ->                 -- cinfo : TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"})+    CString ->                              -- color : TBasicType TUTF8+    IO CInt++{- |+Parse the colorimetry string and update /@cinfo@/ with the parsed+values.+-}+videoColorimetryFromString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoColorimetry+    {- ^ /@cinfo@/: a 'GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry' -}+    -> T.Text+    {- ^ /@color@/: a colorimetry string -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@color@/ points to valid colorimetry info. -}+videoColorimetryFromString cinfo color = liftIO $ do+    cinfo' <- unsafeManagedPtrGetPtr cinfo+    color' <- textToCString color+    result <- gst_video_colorimetry_from_string cinfo' color'+    let result' = (/= 0) result+    touchManagedPtr cinfo+    freeMem color'+    return result'++#if ENABLE_OVERLOADING+data VideoColorimetryFromStringMethodInfo+instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo VideoColorimetryFromStringMethodInfo VideoColorimetry signature where+    overloadedMethod _ = videoColorimetryFromString++#endif++-- method VideoColorimetry::is_equal+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "cinfo", argType = TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoColorimetry", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "another #GstVideoColorimetry", 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_video_colorimetry_is_equal" gst_video_colorimetry_is_equal :: +    Ptr VideoColorimetry ->                 -- cinfo : TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"})+    Ptr VideoColorimetry ->                 -- other : TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"})+    IO CInt++{- |+Compare the 2 colorimetry sets for equality++/Since: 1.6/+-}+videoColorimetryIsEqual ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoColorimetry+    {- ^ /@cinfo@/: a 'GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry' -}+    -> VideoColorimetry+    {- ^ /@other@/: another 'GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@cinfo@/ and /@other@/ are equal. -}+videoColorimetryIsEqual cinfo other = liftIO $ do+    cinfo' <- unsafeManagedPtrGetPtr cinfo+    other' <- unsafeManagedPtrGetPtr other+    result <- gst_video_colorimetry_is_equal cinfo' other'+    let result' = (/= 0) result+    touchManagedPtr cinfo+    touchManagedPtr other+    return result'++#if ENABLE_OVERLOADING+data VideoColorimetryIsEqualMethodInfo+instance (signature ~ (VideoColorimetry -> m Bool), MonadIO m) => O.MethodInfo VideoColorimetryIsEqualMethodInfo VideoColorimetry signature where+    overloadedMethod _ = videoColorimetryIsEqual++#endif++-- method VideoColorimetry::matches+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "cinfo", argType = TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a colorimetry string", 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_video_colorimetry_matches" gst_video_colorimetry_matches :: +    Ptr VideoColorimetry ->                 -- cinfo : TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"})+    CString ->                              -- color : TBasicType TUTF8+    IO CInt++{- |+Check if the colorimetry information in /@info@/ matches that of the+string /@color@/.+-}+videoColorimetryMatches ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoColorimetry+    {- ^ /@cinfo@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> T.Text+    {- ^ /@color@/: a colorimetry string -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@color@/ conveys the same colorimetry info as the color+information in /@info@/. -}+videoColorimetryMatches cinfo color = liftIO $ do+    cinfo' <- unsafeManagedPtrGetPtr cinfo+    color' <- textToCString color+    result <- gst_video_colorimetry_matches cinfo' color'+    let result' = (/= 0) result+    touchManagedPtr cinfo+    freeMem color'+    return result'++#if ENABLE_OVERLOADING+data VideoColorimetryMatchesMethodInfo+instance (signature ~ (T.Text -> m Bool), MonadIO m) => O.MethodInfo VideoColorimetryMatchesMethodInfo VideoColorimetry signature where+    overloadedMethod _ = videoColorimetryMatches++#endif++-- method VideoColorimetry::to_string+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "cinfo", argType = TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoColorimetry", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUTF8)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_colorimetry_to_string" gst_video_colorimetry_to_string :: +    Ptr VideoColorimetry ->                 -- cinfo : TInterface (Name {namespace = "GstVideo", name = "VideoColorimetry"})+    IO CString++{- |+Make a string representation of /@cinfo@/.+-}+videoColorimetryToString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoColorimetry+    {- ^ /@cinfo@/: a 'GI.GstVideo.Structs.VideoColorimetry.VideoColorimetry' -}+    -> m T.Text+    {- ^ __Returns:__ a string representation of /@cinfo@/. -}+videoColorimetryToString cinfo = liftIO $ do+    cinfo' <- unsafeManagedPtrGetPtr cinfo+    result <- gst_video_colorimetry_to_string cinfo'+    checkUnexpectedReturnNULL "videoColorimetryToString" result+    result' <- cstringToText result+    freeMem result+    touchManagedPtr cinfo+    return result'++#if ENABLE_OVERLOADING+data VideoColorimetryToStringMethodInfo+instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo VideoColorimetryToStringMethodInfo VideoColorimetry signature where+    overloadedMethod _ = videoColorimetryToString++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoColorimetryMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoColorimetryMethod "fromString" o = VideoColorimetryFromStringMethodInfo+    ResolveVideoColorimetryMethod "isEqual" o = VideoColorimetryIsEqualMethodInfo+    ResolveVideoColorimetryMethod "matches" o = VideoColorimetryMatchesMethodInfo+    ResolveVideoColorimetryMethod "toString" o = VideoColorimetryToStringMethodInfo+    ResolveVideoColorimetryMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoColorimetryMethod t VideoColorimetry, O.MethodInfo info VideoColorimetry p) => OL.IsLabel t (VideoColorimetry -> 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++
+ GI/GstVideo/Structs/VideoColorimetry.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoColorimetry 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++newtype VideoColorimetry = VideoColorimetry (ManagedPtr VideoColorimetry)+instance WrappedPtr VideoColorimetry where+#if ENABLE_OVERLOADING+data VideoColorimetryFromStringMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoColorimetryIsEqualMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoColorimetryMatchesMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoColorimetryToStringMethodInfo+#endif
+ GI/GstVideo/Structs/VideoConverter.hs view
@@ -0,0 +1,284 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++/No description available in the introspection data./+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoConverter+    ( ++-- * Exported types+    VideoConverter(..)                      ,+    noVideoConverter                        ,+++ -- * Methods+-- ** frame #method:frame#++#if ENABLE_OVERLOADING+    VideoConverterFrameMethodInfo           ,+#endif+    videoConverterFrame                     ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoConverterFreeMethodInfo            ,+#endif+    videoConverterFree                      ,+++-- ** getConfig #method:getConfig#++#if ENABLE_OVERLOADING+    VideoConverterGetConfigMethodInfo       ,+#endif+    videoConverterGetConfig                 ,+++-- ** setConfig #method:setConfig#++#if ENABLE_OVERLOADING+    VideoConverterSetConfigMethodInfo       ,+#endif+    videoConverterSetConfig                 ,+++++    ) where++import Data.GI.Base.ShortPrelude+import qualified Data.GI.Base.ShortPrelude as SP+import qualified Data.GI.Base.Overloading as O+import qualified Prelude as P++import qualified Data.GI.Base.Attributes as GI.Attributes+import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr+import qualified Data.GI.Base.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.Gst.Structs.Structure as Gst.Structure+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame++-- | Memory-managed wrapper type.+newtype VideoConverter = VideoConverter (ManagedPtr VideoConverter)+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoConverter where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing++-- | A convenience alias for `Nothing` :: `Maybe` `VideoConverter`.+noVideoConverter :: Maybe VideoConverter+noVideoConverter = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoConverter+type instance O.AttributeList VideoConverter = VideoConverterAttributeList+type VideoConverterAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoConverter::frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "convert", argType = TInterface (Name {namespace = "GstVideo", name = "VideoConverter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoConverter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_converter_frame" gst_video_converter_frame :: +    Ptr VideoConverter ->                   -- convert : TInterface (Name {namespace = "GstVideo", name = "VideoConverter"})+    Ptr GstVideo.VideoFrame.VideoFrame ->   -- src : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr GstVideo.VideoFrame.VideoFrame ->   -- dest : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    IO ()++{- |+Convert the pixels of /@src@/ into /@dest@/ using /@convert@/.++/Since: 1.6/+-}+videoConverterFrame ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoConverter+    {- ^ /@convert@/: a 'GI.GstVideo.Structs.VideoConverter.VideoConverter' -}+    -> GstVideo.VideoFrame.VideoFrame+    {- ^ /@src@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> GstVideo.VideoFrame.VideoFrame+    {- ^ /@dest@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> m ()+videoConverterFrame convert src dest = liftIO $ do+    convert' <- unsafeManagedPtrGetPtr convert+    src' <- unsafeManagedPtrGetPtr src+    dest' <- unsafeManagedPtrGetPtr dest+    gst_video_converter_frame convert' src' dest'+    touchManagedPtr convert+    touchManagedPtr src+    touchManagedPtr dest+    return ()++#if ENABLE_OVERLOADING+data VideoConverterFrameMethodInfo+instance (signature ~ (GstVideo.VideoFrame.VideoFrame -> GstVideo.VideoFrame.VideoFrame -> m ()), MonadIO m) => O.MethodInfo VideoConverterFrameMethodInfo VideoConverter signature where+    overloadedMethod _ = videoConverterFrame++#endif++-- method VideoConverter::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "convert", argType = TInterface (Name {namespace = "GstVideo", name = "VideoConverter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoConverter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_converter_free" gst_video_converter_free :: +    Ptr VideoConverter ->                   -- convert : TInterface (Name {namespace = "GstVideo", name = "VideoConverter"})+    IO ()++{- |+Free /@convert@/++/Since: 1.6/+-}+videoConverterFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoConverter+    {- ^ /@convert@/: a 'GI.GstVideo.Structs.VideoConverter.VideoConverter' -}+    -> m ()+videoConverterFree convert = liftIO $ do+    convert' <- unsafeManagedPtrGetPtr convert+    gst_video_converter_free convert'+    touchManagedPtr convert+    return ()++#if ENABLE_OVERLOADING+data VideoConverterFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoConverterFreeMethodInfo VideoConverter signature where+    overloadedMethod _ = videoConverterFree++#endif++-- method VideoConverter::get_config+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "convert", argType = TInterface (Name {namespace = "GstVideo", name = "VideoConverter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoConverter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Structure"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_converter_get_config" gst_video_converter_get_config :: +    Ptr VideoConverter ->                   -- convert : TInterface (Name {namespace = "GstVideo", name = "VideoConverter"})+    IO (Ptr Gst.Structure.Structure)++{- |+Get the current configuration of /@convert@/.+-}+videoConverterGetConfig ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoConverter+    {- ^ /@convert@/: a 'GI.GstVideo.Structs.VideoConverter.VideoConverter' -}+    -> m Gst.Structure.Structure+    {- ^ __Returns:__ a 'GI.Gst.Structs.Structure.Structure' that remains valid for as long as /@convert@/ is valid+  or until 'GI.GstVideo.Structs.VideoConverter.videoConverterSetConfig' is called. -}+videoConverterGetConfig convert = liftIO $ do+    convert' <- unsafeManagedPtrGetPtr convert+    result <- gst_video_converter_get_config convert'+    checkUnexpectedReturnNULL "videoConverterGetConfig" result+    result' <- (newBoxed Gst.Structure.Structure) result+    touchManagedPtr convert+    return result'++#if ENABLE_OVERLOADING+data VideoConverterGetConfigMethodInfo+instance (signature ~ (m Gst.Structure.Structure), MonadIO m) => O.MethodInfo VideoConverterGetConfigMethodInfo VideoConverter signature where+    overloadedMethod _ = videoConverterGetConfig++#endif++-- method VideoConverter::set_config+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "convert", argType = TInterface (Name {namespace = "GstVideo", name = "VideoConverter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoConverter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "config", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstStructure", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_converter_set_config" gst_video_converter_set_config :: +    Ptr VideoConverter ->                   -- convert : TInterface (Name {namespace = "GstVideo", name = "VideoConverter"})+    Ptr Gst.Structure.Structure ->          -- config : TInterface (Name {namespace = "Gst", name = "Structure"})+    IO CInt++{- |+Set /@config@/ as extra configuraion for /@convert@/.++If the parameters in /@config@/ can not be set exactly, this function returns+'False' and will try to update as much state as possible. The new state can+then be retrieved and refined with 'GI.GstVideo.Structs.VideoConverter.videoConverterGetConfig'.++Look at the @/GST_VIDEO_CONVERTER_OPT_/@* fields to check valid configuration+option and values.++/Since: 1.6/+-}+videoConverterSetConfig ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoConverter+    {- ^ /@convert@/: a 'GI.GstVideo.Structs.VideoConverter.VideoConverter' -}+    -> Gst.Structure.Structure+    {- ^ /@config@/: a 'GI.Gst.Structs.Structure.Structure' -}+    -> m Bool+    {- ^ __Returns:__ 'True' when /@config@/ could be set. -}+videoConverterSetConfig convert config = liftIO $ do+    convert' <- unsafeManagedPtrGetPtr convert+    config' <- B.ManagedPtr.disownBoxed config+    result <- gst_video_converter_set_config convert' config'+    let result' = (/= 0) result+    touchManagedPtr convert+    touchManagedPtr config+    return result'++#if ENABLE_OVERLOADING+data VideoConverterSetConfigMethodInfo+instance (signature ~ (Gst.Structure.Structure -> m Bool), MonadIO m) => O.MethodInfo VideoConverterSetConfigMethodInfo VideoConverter signature where+    overloadedMethod _ = videoConverterSetConfig++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoConverterMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoConverterMethod "frame" o = VideoConverterFrameMethodInfo+    ResolveVideoConverterMethod "free" o = VideoConverterFreeMethodInfo+    ResolveVideoConverterMethod "getConfig" o = VideoConverterGetConfigMethodInfo+    ResolveVideoConverterMethod "setConfig" o = VideoConverterSetConfigMethodInfo+    ResolveVideoConverterMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoConverterMethod t VideoConverter, O.MethodInfo info VideoConverter p) => OL.IsLabel t (VideoConverter -> p) where+#if MIN_VERSION_base(4,10,0)+    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)+#else+    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)+#endif++#endif++
+ GI/GstVideo/Structs/VideoConverter.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoConverter 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++newtype VideoConverter = VideoConverter (ManagedPtr VideoConverter)+instance WrappedPtr VideoConverter where+#if ENABLE_OVERLOADING+data VideoConverterFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoConverterFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoConverterGetConfigMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoConverterSetConfigMethodInfo+#endif
+ GI/GstVideo/Structs/VideoCropMeta.hs view
@@ -0,0 +1,390 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata describing image cropping.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoCropMeta+    ( ++-- * Exported types+    VideoCropMeta(..)                       ,+    newZeroVideoCropMeta                    ,+    noVideoCropMeta                         ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoCropMetaGetInfo                    ,+++++ -- * Properties+-- ** height #attr:height#+{- | the cropped height+-}+    getVideoCropMetaHeight                  ,+    setVideoCropMetaHeight                  ,+#if ENABLE_OVERLOADING+    videoCropMeta_height                    ,+#endif+++-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoCropMetaMeta                    ,+#if ENABLE_OVERLOADING+    videoCropMeta_meta                      ,+#endif+++-- ** width #attr:width#+{- | the cropped width+-}+    getVideoCropMetaWidth                   ,+    setVideoCropMetaWidth                   ,+#if ENABLE_OVERLOADING+    videoCropMeta_width                     ,+#endif+++-- ** x #attr:x#+{- | the horizontal offset+-}+    getVideoCropMetaX                       ,+    setVideoCropMetaX                       ,+#if ENABLE_OVERLOADING+    videoCropMeta_x                         ,+#endif+++-- ** y #attr:y#+{- | the vertical offset+-}+    getVideoCropMetaY                       ,+    setVideoCropMetaY                       ,+#if ENABLE_OVERLOADING+    videoCropMeta_y                         ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo++-- | Memory-managed wrapper type.+newtype VideoCropMeta = VideoCropMeta (ManagedPtr VideoCropMeta)+instance WrappedPtr VideoCropMeta where+    wrappedPtrCalloc = callocBytes 32+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 32 >=> wrapPtr VideoCropMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoCropMeta` struct initialized to zero.+newZeroVideoCropMeta :: MonadIO m => m VideoCropMeta+newZeroVideoCropMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoCropMeta++instance tag ~ 'AttrSet => Constructible VideoCropMeta tag where+    new _ attrs = do+        o <- newZeroVideoCropMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoCropMeta`.+noVideoCropMeta :: Maybe VideoCropMeta+noVideoCropMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCropMeta #meta+@+-}+getVideoCropMetaMeta :: MonadIO m => VideoCropMeta -> m Gst.Meta.Meta+getVideoCropMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoCropMetaMetaFieldInfo+instance AttrInfo VideoCropMetaMetaFieldInfo where+    type AttrAllowedOps VideoCropMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoCropMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoCropMetaMetaFieldInfo = (~) VideoCropMeta+    type AttrGetType VideoCropMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoCropMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoCropMetaMetaFieldInfo = VideoCropMeta+    attrGet _ = getVideoCropMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoCropMeta_meta :: AttrLabelProxy "meta"+videoCropMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCropMeta #x+@+-}+getVideoCropMetaX :: MonadIO m => VideoCropMeta -> m Word32+getVideoCropMetaX s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Word32+    return val++{- |+Set the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCropMeta [ #x 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCropMetaX :: MonadIO m => VideoCropMeta -> Word32 -> m ()+setVideoCropMetaX s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoCropMetaXFieldInfo+instance AttrInfo VideoCropMetaXFieldInfo where+    type AttrAllowedOps VideoCropMetaXFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCropMetaXFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoCropMetaXFieldInfo = (~) VideoCropMeta+    type AttrGetType VideoCropMetaXFieldInfo = Word32+    type AttrLabel VideoCropMetaXFieldInfo = "x"+    type AttrOrigin VideoCropMetaXFieldInfo = VideoCropMeta+    attrGet _ = getVideoCropMetaX+    attrSet _ = setVideoCropMetaX+    attrConstruct = undefined+    attrClear _ = undefined++videoCropMeta_x :: AttrLabelProxy "x"+videoCropMeta_x = AttrLabelProxy++#endif+++{- |+Get the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCropMeta #y+@+-}+getVideoCropMetaY :: MonadIO m => VideoCropMeta -> m Word32+getVideoCropMetaY s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Word32+    return val++{- |+Set the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCropMeta [ #y 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCropMetaY :: MonadIO m => VideoCropMeta -> Word32 -> m ()+setVideoCropMetaY s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 20) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoCropMetaYFieldInfo+instance AttrInfo VideoCropMetaYFieldInfo where+    type AttrAllowedOps VideoCropMetaYFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCropMetaYFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoCropMetaYFieldInfo = (~) VideoCropMeta+    type AttrGetType VideoCropMetaYFieldInfo = Word32+    type AttrLabel VideoCropMetaYFieldInfo = "y"+    type AttrOrigin VideoCropMetaYFieldInfo = VideoCropMeta+    attrGet _ = getVideoCropMetaY+    attrSet _ = setVideoCropMetaY+    attrConstruct = undefined+    attrClear _ = undefined++videoCropMeta_y :: AttrLabelProxy "y"+videoCropMeta_y = AttrLabelProxy++#endif+++{- |+Get the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCropMeta #width+@+-}+getVideoCropMetaWidth :: MonadIO m => VideoCropMeta -> m Word32+getVideoCropMetaWidth s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word32+    return val++{- |+Set the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCropMeta [ #width 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCropMetaWidth :: MonadIO m => VideoCropMeta -> Word32 -> m ()+setVideoCropMetaWidth s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoCropMetaWidthFieldInfo+instance AttrInfo VideoCropMetaWidthFieldInfo where+    type AttrAllowedOps VideoCropMetaWidthFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCropMetaWidthFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoCropMetaWidthFieldInfo = (~) VideoCropMeta+    type AttrGetType VideoCropMetaWidthFieldInfo = Word32+    type AttrLabel VideoCropMetaWidthFieldInfo = "width"+    type AttrOrigin VideoCropMetaWidthFieldInfo = VideoCropMeta+    attrGet _ = getVideoCropMetaWidth+    attrSet _ = setVideoCropMetaWidth+    attrConstruct = undefined+    attrClear _ = undefined++videoCropMeta_width :: AttrLabelProxy "width"+videoCropMeta_width = AttrLabelProxy++#endif+++{- |+Get the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoCropMeta #height+@+-}+getVideoCropMetaHeight :: MonadIO m => VideoCropMeta -> m Word32+getVideoCropMetaHeight s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++{- |+Set the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoCropMeta [ #height 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoCropMetaHeight :: MonadIO m => VideoCropMeta -> Word32 -> m ()+setVideoCropMetaHeight s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 28) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoCropMetaHeightFieldInfo+instance AttrInfo VideoCropMetaHeightFieldInfo where+    type AttrAllowedOps VideoCropMetaHeightFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoCropMetaHeightFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoCropMetaHeightFieldInfo = (~) VideoCropMeta+    type AttrGetType VideoCropMetaHeightFieldInfo = Word32+    type AttrLabel VideoCropMetaHeightFieldInfo = "height"+    type AttrOrigin VideoCropMetaHeightFieldInfo = VideoCropMeta+    attrGet _ = getVideoCropMetaHeight+    attrSet _ = setVideoCropMetaHeight+    attrConstruct = undefined+    attrClear _ = undefined++videoCropMeta_height :: AttrLabelProxy "height"+videoCropMeta_height = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoCropMeta+type instance O.AttributeList VideoCropMeta = VideoCropMetaAttributeList+type VideoCropMetaAttributeList = ('[ '("meta", VideoCropMetaMetaFieldInfo), '("x", VideoCropMetaXFieldInfo), '("y", VideoCropMetaYFieldInfo), '("width", VideoCropMetaWidthFieldInfo), '("height", VideoCropMetaHeightFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoCropMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_crop_meta_get_info" gst_video_crop_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoCropMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoCropMetaGetInfo  = liftIO $ do+    result <- gst_video_crop_meta_get_info+    checkUnexpectedReturnNULL "videoCropMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoCropMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoCropMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoCropMetaMethod t VideoCropMeta, O.MethodInfo info VideoCropMeta p) => OL.IsLabel t (VideoCropMeta -> 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++
+ GI/GstVideo/Structs/VideoCropMeta.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoCropMeta 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++newtype VideoCropMeta = VideoCropMeta (ManagedPtr VideoCropMeta)+instance WrappedPtr VideoCropMeta where
+ GI/GstVideo/Structs/VideoDither.hs view
@@ -0,0 +1,179 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++GstVideoDither provides implementations of several dithering algorithms+that can be applied to lines of video pixels to quantize and dither them.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoDither+    ( ++-- * Exported types+    VideoDither(..)                         ,+    noVideoDither                           ,+++ -- * Methods+-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoDitherFreeMethodInfo               ,+#endif+    videoDitherFree                         ,+++-- ** line #method:line#++#if ENABLE_OVERLOADING+    VideoDitherLineMethodInfo               ,+#endif+    videoDitherLine                         ,+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoDither = VideoDither (ManagedPtr VideoDither)+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoDither where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing++-- | A convenience alias for `Nothing` :: `Maybe` `VideoDither`.+noVideoDither :: Maybe VideoDither+noVideoDither = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoDither+type instance O.AttributeList VideoDither = VideoDitherAttributeList+type VideoDitherAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoDither::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dither", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDither"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDither", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_dither_free" gst_video_dither_free :: +    Ptr VideoDither ->                      -- dither : TInterface (Name {namespace = "GstVideo", name = "VideoDither"})+    IO ()++{- |+Free /@dither@/+-}+videoDitherFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoDither+    {- ^ /@dither@/: a 'GI.GstVideo.Structs.VideoDither.VideoDither' -}+    -> m ()+videoDitherFree dither = liftIO $ do+    dither' <- unsafeManagedPtrGetPtr dither+    gst_video_dither_free dither'+    touchManagedPtr dither+    return ()++#if ENABLE_OVERLOADING+data VideoDitherFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoDitherFreeMethodInfo VideoDither signature where+    overloadedMethod _ = videoDitherFree++#endif++-- method VideoDither::line+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dither", argType = TInterface (Name {namespace = "GstVideo", name = "VideoDither"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoDither", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "pointer to the pixels of the line", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "x coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_dither_line" gst_video_dither_line :: +    Ptr VideoDither ->                      -- dither : TInterface (Name {namespace = "GstVideo", name = "VideoDither"})+    Ptr () ->                               -- line : TBasicType TPtr+    Word32 ->                               -- x : TBasicType TUInt+    Word32 ->                               -- y : TBasicType TUInt+    Word32 ->                               -- width : TBasicType TUInt+    IO ()++{- |+Dither /@width@/ pixels starting from offset /@x@/ in /@line@/ using /@dither@/.++/@y@/ is the line number of /@line@/ in the output image.+-}+videoDitherLine ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoDither+    {- ^ /@dither@/: a 'GI.GstVideo.Structs.VideoDither.VideoDither' -}+    -> Ptr ()+    {- ^ /@line@/: pointer to the pixels of the line -}+    -> Word32+    {- ^ /@x@/: x coordinate -}+    -> Word32+    {- ^ /@y@/: y coordinate -}+    -> Word32+    {- ^ /@width@/: the width -}+    -> m ()+videoDitherLine dither line x y width = liftIO $ do+    dither' <- unsafeManagedPtrGetPtr dither+    gst_video_dither_line dither' line x y width+    touchManagedPtr dither+    return ()++#if ENABLE_OVERLOADING+data VideoDitherLineMethodInfo+instance (signature ~ (Ptr () -> Word32 -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoDitherLineMethodInfo VideoDither signature where+    overloadedMethod _ = videoDitherLine++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoDitherMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoDitherMethod "free" o = VideoDitherFreeMethodInfo+    ResolveVideoDitherMethod "line" o = VideoDitherLineMethodInfo+    ResolveVideoDitherMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoDitherMethod t VideoDither, O.MethodInfo info VideoDither p) => OL.IsLabel t (VideoDither -> 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++
+ GI/GstVideo/Structs/VideoDither.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoDither 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++newtype VideoDither = VideoDither (ManagedPtr VideoDither)+instance WrappedPtr VideoDither where+#if ENABLE_OVERLOADING+data VideoDitherFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoDitherLineMethodInfo+#endif
+ GI/GstVideo/Structs/VideoFormatInfo.hs view
@@ -0,0 +1,949 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Information for a video format.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoFormatInfo+    ( ++-- * Exported types+    VideoFormatInfo(..)                     ,+    newZeroVideoFormatInfo                  ,+    noVideoFormatInfo                       ,+++ -- * Properties+-- ** bits #attr:bits#+{- | The number of bits used to pack data items. This can be less than 8+   when multiple pixels are stored in a byte. for values > 8 multiple bytes+   should be read according to the endianness flag before applying the shift+   and mask.+-}+    getVideoFormatInfoBits                  ,+    setVideoFormatInfoBits                  ,+#if ENABLE_OVERLOADING+    videoFormatInfo_bits                    ,+#endif+++-- ** description #attr:description#+{- | use readable description of the format+-}+    clearVideoFormatInfoDescription         ,+    getVideoFormatInfoDescription           ,+    setVideoFormatInfoDescription           ,+#if ENABLE_OVERLOADING+    videoFormatInfo_description             ,+#endif+++-- ** flags #attr:flags#+{- | 'GI.GstVideo.Flags.VideoFormatFlags'+-}+    getVideoFormatInfoFlags                 ,+    setVideoFormatInfoFlags                 ,+#if ENABLE_OVERLOADING+    videoFormatInfo_flags                   ,+#endif+++-- ** format #attr:format#+{- | 'GI.GstVideo.Enums.VideoFormat'+-}+    getVideoFormatInfoFormat                ,+    setVideoFormatInfoFormat                ,+#if ENABLE_OVERLOADING+    videoFormatInfo_format                  ,+#endif+++-- ** nComponents #attr:nComponents#+{- | the number of components in the video format.+-}+    getVideoFormatInfoNComponents           ,+    setVideoFormatInfoNComponents           ,+#if ENABLE_OVERLOADING+    videoFormatInfo_nComponents             ,+#endif+++-- ** nPlanes #attr:nPlanes#+{- | the number of planes for this format. The number of planes can be+   less than the amount of components when multiple components are packed into+   one plane.+-}+    getVideoFormatInfoNPlanes               ,+    setVideoFormatInfoNPlanes               ,+#if ENABLE_OVERLOADING+    videoFormatInfo_nPlanes                 ,+#endif+++-- ** name #attr:name#+{- | string representation of the format+-}+    clearVideoFormatInfoName                ,+    getVideoFormatInfoName                  ,+    setVideoFormatInfoName                  ,+#if ENABLE_OVERLOADING+    videoFormatInfo_name                    ,+#endif+++-- ** packFunc #attr:packFunc#+{- | an pack function for this format+-}+    clearVideoFormatInfoPackFunc            ,+    getVideoFormatInfoPackFunc              ,+    setVideoFormatInfoPackFunc              ,+#if ENABLE_OVERLOADING+    videoFormatInfo_packFunc                ,+#endif+++-- ** packLines #attr:packLines#+{- | the amount of lines that will be packed+-}+    getVideoFormatInfoPackLines             ,+    setVideoFormatInfoPackLines             ,+#if ENABLE_OVERLOADING+    videoFormatInfo_packLines               ,+#endif+++-- ** tileHs #attr:tileHs#+{- | The height of a tile, in bytes, represented as a shift+-}+    getVideoFormatInfoTileHs                ,+    setVideoFormatInfoTileHs                ,+#if ENABLE_OVERLOADING+    videoFormatInfo_tileHs                  ,+#endif+++-- ** tileMode #attr:tileMode#+{- | The tiling mode+-}+    getVideoFormatInfoTileMode              ,+    setVideoFormatInfoTileMode              ,+#if ENABLE_OVERLOADING+    videoFormatInfo_tileMode                ,+#endif+++-- ** tileWs #attr:tileWs#+{- | The width of a tile, in bytes, represented as a shift+-}+    getVideoFormatInfoTileWs                ,+    setVideoFormatInfoTileWs                ,+#if ENABLE_OVERLOADING+    videoFormatInfo_tileWs                  ,+#endif+++-- ** unpackFormat #attr:unpackFormat#+{- | the format of the unpacked pixels. This format must have the+    @/GST_VIDEO_FORMAT_FLAG_UNPACK/@ flag set.+-}+    getVideoFormatInfoUnpackFormat          ,+    setVideoFormatInfoUnpackFormat          ,+#if ENABLE_OVERLOADING+    videoFormatInfo_unpackFormat            ,+#endif+++-- ** unpackFunc #attr:unpackFunc#+{- | an unpack function for this format+-}+    clearVideoFormatInfoUnpackFunc          ,+    getVideoFormatInfoUnpackFunc            ,+    setVideoFormatInfoUnpackFunc            ,+#if ENABLE_OVERLOADING+    videoFormatInfo_unpackFunc              ,+#endif+++++    ) 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.GstVideo.Callbacks as GstVideo.Callbacks+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags++-- | Memory-managed wrapper type.+newtype VideoFormatInfo = VideoFormatInfo (ManagedPtr VideoFormatInfo)+instance WrappedPtr VideoFormatInfo where+    wrappedPtrCalloc = callocBytes 232+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 232 >=> wrapPtr VideoFormatInfo)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoFormatInfo` struct initialized to zero.+newZeroVideoFormatInfo :: MonadIO m => m VideoFormatInfo+newZeroVideoFormatInfo = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoFormatInfo++instance tag ~ 'AttrSet => Constructible VideoFormatInfo tag where+    new _ attrs = do+        o <- newZeroVideoFormatInfo+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoFormatInfo`.+noVideoFormatInfo :: Maybe VideoFormatInfo+noVideoFormatInfo = Nothing++{- |+Get the value of the “@format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #format+@+-}+getVideoFormatInfoFormat :: MonadIO m => VideoFormatInfo -> m GstVideo.Enums.VideoFormat+getVideoFormatInfoFormat s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #format 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoFormat :: MonadIO m => VideoFormatInfo -> GstVideo.Enums.VideoFormat -> m ()+setVideoFormatInfoFormat s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 0) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoFormatInfoFormatFieldInfo+instance AttrInfo VideoFormatInfoFormatFieldInfo where+    type AttrAllowedOps VideoFormatInfoFormatFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoFormatFieldInfo = (~) GstVideo.Enums.VideoFormat+    type AttrBaseTypeConstraint VideoFormatInfoFormatFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoFormatFieldInfo = GstVideo.Enums.VideoFormat+    type AttrLabel VideoFormatInfoFormatFieldInfo = "format"+    type AttrOrigin VideoFormatInfoFormatFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoFormat+    attrSet _ = setVideoFormatInfoFormat+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_format :: AttrLabelProxy "format"+videoFormatInfo_format = AttrLabelProxy++#endif+++{- |+Get the value of the “@name@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #name+@+-}+getVideoFormatInfoName :: MonadIO m => VideoFormatInfo -> m (Maybe T.Text)+getVideoFormatInfoName s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CString+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- cstringToText val'+        return val''+    return result++{- |+Set the value of the “@name@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #name 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoName :: MonadIO m => VideoFormatInfo -> CString -> m ()+setVideoFormatInfoName s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: CString)++{- |+Set the value of the “@name@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #name+@+-}+clearVideoFormatInfoName :: MonadIO m => VideoFormatInfo -> m ()+clearVideoFormatInfoName s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (FP.nullPtr :: CString)++#if ENABLE_OVERLOADING+data VideoFormatInfoNameFieldInfo+instance AttrInfo VideoFormatInfoNameFieldInfo where+    type AttrAllowedOps VideoFormatInfoNameFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFormatInfoNameFieldInfo = (~) CString+    type AttrBaseTypeConstraint VideoFormatInfoNameFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoNameFieldInfo = Maybe T.Text+    type AttrLabel VideoFormatInfoNameFieldInfo = "name"+    type AttrOrigin VideoFormatInfoNameFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoName+    attrSet _ = setVideoFormatInfoName+    attrConstruct = undefined+    attrClear _ = clearVideoFormatInfoName++videoFormatInfo_name :: AttrLabelProxy "name"+videoFormatInfo_name = AttrLabelProxy++#endif+++{- |+Get the value of the “@description@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #description+@+-}+getVideoFormatInfoDescription :: MonadIO m => VideoFormatInfo -> m (Maybe T.Text)+getVideoFormatInfoDescription s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CString+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- cstringToText val'+        return val''+    return result++{- |+Set the value of the “@description@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #description 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoDescription :: MonadIO m => VideoFormatInfo -> CString -> m ()+setVideoFormatInfoDescription s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: CString)++{- |+Set the value of the “@description@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #description+@+-}+clearVideoFormatInfoDescription :: MonadIO m => VideoFormatInfo -> m ()+clearVideoFormatInfoDescription s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (FP.nullPtr :: CString)++#if ENABLE_OVERLOADING+data VideoFormatInfoDescriptionFieldInfo+instance AttrInfo VideoFormatInfoDescriptionFieldInfo where+    type AttrAllowedOps VideoFormatInfoDescriptionFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFormatInfoDescriptionFieldInfo = (~) CString+    type AttrBaseTypeConstraint VideoFormatInfoDescriptionFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoDescriptionFieldInfo = Maybe T.Text+    type AttrLabel VideoFormatInfoDescriptionFieldInfo = "description"+    type AttrOrigin VideoFormatInfoDescriptionFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoDescription+    attrSet _ = setVideoFormatInfoDescription+    attrConstruct = undefined+    attrClear _ = clearVideoFormatInfoDescription++videoFormatInfo_description :: AttrLabelProxy "description"+videoFormatInfo_description = AttrLabelProxy++#endif+++{- |+Get the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #flags+@+-}+getVideoFormatInfoFlags :: MonadIO m => VideoFormatInfo -> m [GstVideo.Flags.VideoFormatFlags]+getVideoFormatInfoFlags s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #flags 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoFlags :: MonadIO m => VideoFormatInfo -> [GstVideo.Flags.VideoFormatFlags] -> m ()+setVideoFormatInfoFlags s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 24) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoFormatInfoFlagsFieldInfo+instance AttrInfo VideoFormatInfoFlagsFieldInfo where+    type AttrAllowedOps VideoFormatInfoFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoFlagsFieldInfo = (~) [GstVideo.Flags.VideoFormatFlags]+    type AttrBaseTypeConstraint VideoFormatInfoFlagsFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoFlagsFieldInfo = [GstVideo.Flags.VideoFormatFlags]+    type AttrLabel VideoFormatInfoFlagsFieldInfo = "flags"+    type AttrOrigin VideoFormatInfoFlagsFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoFlags+    attrSet _ = setVideoFormatInfoFlags+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_flags :: AttrLabelProxy "flags"+videoFormatInfo_flags = AttrLabelProxy++#endif+++{- |+Get the value of the “@bits@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #bits+@+-}+getVideoFormatInfoBits :: MonadIO m => VideoFormatInfo -> m Word32+getVideoFormatInfoBits s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++{- |+Set the value of the “@bits@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #bits 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoBits :: MonadIO m => VideoFormatInfo -> Word32 -> m ()+setVideoFormatInfoBits s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 28) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoFormatInfoBitsFieldInfo+instance AttrInfo VideoFormatInfoBitsFieldInfo where+    type AttrAllowedOps VideoFormatInfoBitsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoBitsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoFormatInfoBitsFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoBitsFieldInfo = Word32+    type AttrLabel VideoFormatInfoBitsFieldInfo = "bits"+    type AttrOrigin VideoFormatInfoBitsFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoBits+    attrSet _ = setVideoFormatInfoBits+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_bits :: AttrLabelProxy "bits"+videoFormatInfo_bits = AttrLabelProxy++#endif+++{- |+Get the value of the “@n_components@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #nComponents+@+-}+getVideoFormatInfoNComponents :: MonadIO m => VideoFormatInfo -> m Word32+getVideoFormatInfoNComponents s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word32+    return val++{- |+Set the value of the “@n_components@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #nComponents 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoNComponents :: MonadIO m => VideoFormatInfo -> Word32 -> m ()+setVideoFormatInfoNComponents s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoFormatInfoNComponentsFieldInfo+instance AttrInfo VideoFormatInfoNComponentsFieldInfo where+    type AttrAllowedOps VideoFormatInfoNComponentsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoNComponentsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoFormatInfoNComponentsFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoNComponentsFieldInfo = Word32+    type AttrLabel VideoFormatInfoNComponentsFieldInfo = "n_components"+    type AttrOrigin VideoFormatInfoNComponentsFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoNComponents+    attrSet _ = setVideoFormatInfoNComponents+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_nComponents :: AttrLabelProxy "nComponents"+videoFormatInfo_nComponents = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoFormatInfo:shift" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+-- XXX Skipped attribute for "VideoFormatInfo:depth" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+-- XXX Skipped attribute for "VideoFormatInfo:pixel_stride" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TInt)"+{- |+Get the value of the “@n_planes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #nPlanes+@+-}+getVideoFormatInfoNPlanes :: MonadIO m => VideoFormatInfo -> m Word32+getVideoFormatInfoNPlanes s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 84) :: IO Word32+    return val++{- |+Set the value of the “@n_planes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #nPlanes 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoNPlanes :: MonadIO m => VideoFormatInfo -> Word32 -> m ()+setVideoFormatInfoNPlanes s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 84) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoFormatInfoNPlanesFieldInfo+instance AttrInfo VideoFormatInfoNPlanesFieldInfo where+    type AttrAllowedOps VideoFormatInfoNPlanesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoNPlanesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoFormatInfoNPlanesFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoNPlanesFieldInfo = Word32+    type AttrLabel VideoFormatInfoNPlanesFieldInfo = "n_planes"+    type AttrOrigin VideoFormatInfoNPlanesFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoNPlanes+    attrSet _ = setVideoFormatInfoNPlanes+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_nPlanes :: AttrLabelProxy "nPlanes"+videoFormatInfo_nPlanes = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoFormatInfo:plane" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+-- XXX Skipped attribute for "VideoFormatInfo:poffset" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+-- XXX Skipped attribute for "VideoFormatInfo:w_sub" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+-- XXX Skipped attribute for "VideoFormatInfo:h_sub" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt)"+{- |+Get the value of the “@unpack_format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #unpackFormat+@+-}+getVideoFormatInfoUnpackFormat :: MonadIO m => VideoFormatInfo -> m GstVideo.Enums.VideoFormat+getVideoFormatInfoUnpackFormat s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 152) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@unpack_format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #unpackFormat 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoUnpackFormat :: MonadIO m => VideoFormatInfo -> GstVideo.Enums.VideoFormat -> m ()+setVideoFormatInfoUnpackFormat s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 152) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoFormatInfoUnpackFormatFieldInfo+instance AttrInfo VideoFormatInfoUnpackFormatFieldInfo where+    type AttrAllowedOps VideoFormatInfoUnpackFormatFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoUnpackFormatFieldInfo = (~) GstVideo.Enums.VideoFormat+    type AttrBaseTypeConstraint VideoFormatInfoUnpackFormatFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoUnpackFormatFieldInfo = GstVideo.Enums.VideoFormat+    type AttrLabel VideoFormatInfoUnpackFormatFieldInfo = "unpack_format"+    type AttrOrigin VideoFormatInfoUnpackFormatFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoUnpackFormat+    attrSet _ = setVideoFormatInfoUnpackFormat+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_unpackFormat :: AttrLabelProxy "unpackFormat"+videoFormatInfo_unpackFormat = AttrLabelProxy++#endif+++{- |+Get the value of the “@unpack_func@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #unpackFunc+@+-}+getVideoFormatInfoUnpackFunc :: MonadIO m => VideoFormatInfo -> m (Maybe GstVideo.Callbacks.VideoFormatUnpack)+getVideoFormatInfoUnpackFunc s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 160) :: IO (FunPtr GstVideo.Callbacks.C_VideoFormatUnpack)+    result <- SP.convertFunPtrIfNonNull val $ \val' -> do+        let val'' = GstVideo.Callbacks.dynamic_VideoFormatUnpack val'+        return val''+    return result++{- |+Set the value of the “@unpack_func@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #unpackFunc 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoUnpackFunc :: MonadIO m => VideoFormatInfo -> FunPtr GstVideo.Callbacks.C_VideoFormatUnpack -> m ()+setVideoFormatInfoUnpackFunc s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 160) (val :: FunPtr GstVideo.Callbacks.C_VideoFormatUnpack)++{- |+Set the value of the “@unpack_func@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #unpackFunc+@+-}+clearVideoFormatInfoUnpackFunc :: MonadIO m => VideoFormatInfo -> m ()+clearVideoFormatInfoUnpackFunc s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 160) (FP.nullFunPtr :: FunPtr GstVideo.Callbacks.C_VideoFormatUnpack)++#if ENABLE_OVERLOADING+data VideoFormatInfoUnpackFuncFieldInfo+instance AttrInfo VideoFormatInfoUnpackFuncFieldInfo where+    type AttrAllowedOps VideoFormatInfoUnpackFuncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFormatInfoUnpackFuncFieldInfo = (~) (FunPtr GstVideo.Callbacks.C_VideoFormatUnpack)+    type AttrBaseTypeConstraint VideoFormatInfoUnpackFuncFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoUnpackFuncFieldInfo = Maybe GstVideo.Callbacks.VideoFormatUnpack+    type AttrLabel VideoFormatInfoUnpackFuncFieldInfo = "unpack_func"+    type AttrOrigin VideoFormatInfoUnpackFuncFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoUnpackFunc+    attrSet _ = setVideoFormatInfoUnpackFunc+    attrConstruct = undefined+    attrClear _ = clearVideoFormatInfoUnpackFunc++videoFormatInfo_unpackFunc :: AttrLabelProxy "unpackFunc"+videoFormatInfo_unpackFunc = AttrLabelProxy++#endif+++{- |+Get the value of the “@pack_lines@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #packLines+@+-}+getVideoFormatInfoPackLines :: MonadIO m => VideoFormatInfo -> m Int32+getVideoFormatInfoPackLines s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 168) :: IO Int32+    return val++{- |+Set the value of the “@pack_lines@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #packLines 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoPackLines :: MonadIO m => VideoFormatInfo -> Int32 -> m ()+setVideoFormatInfoPackLines s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 168) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoFormatInfoPackLinesFieldInfo+instance AttrInfo VideoFormatInfoPackLinesFieldInfo where+    type AttrAllowedOps VideoFormatInfoPackLinesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoPackLinesFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoFormatInfoPackLinesFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoPackLinesFieldInfo = Int32+    type AttrLabel VideoFormatInfoPackLinesFieldInfo = "pack_lines"+    type AttrOrigin VideoFormatInfoPackLinesFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoPackLines+    attrSet _ = setVideoFormatInfoPackLines+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_packLines :: AttrLabelProxy "packLines"+videoFormatInfo_packLines = AttrLabelProxy++#endif+++{- |+Get the value of the “@pack_func@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #packFunc+@+-}+getVideoFormatInfoPackFunc :: MonadIO m => VideoFormatInfo -> m (Maybe GstVideo.Callbacks.VideoFormatPack)+getVideoFormatInfoPackFunc s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 176) :: IO (FunPtr GstVideo.Callbacks.C_VideoFormatPack)+    result <- SP.convertFunPtrIfNonNull val $ \val' -> do+        let val'' = GstVideo.Callbacks.dynamic_VideoFormatPack val'+        return val''+    return result++{- |+Set the value of the “@pack_func@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #packFunc 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoPackFunc :: MonadIO m => VideoFormatInfo -> FunPtr GstVideo.Callbacks.C_VideoFormatPack -> m ()+setVideoFormatInfoPackFunc s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 176) (val :: FunPtr GstVideo.Callbacks.C_VideoFormatPack)++{- |+Set the value of the “@pack_func@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #packFunc+@+-}+clearVideoFormatInfoPackFunc :: MonadIO m => VideoFormatInfo -> m ()+clearVideoFormatInfoPackFunc s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 176) (FP.nullFunPtr :: FunPtr GstVideo.Callbacks.C_VideoFormatPack)++#if ENABLE_OVERLOADING+data VideoFormatInfoPackFuncFieldInfo+instance AttrInfo VideoFormatInfoPackFuncFieldInfo where+    type AttrAllowedOps VideoFormatInfoPackFuncFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFormatInfoPackFuncFieldInfo = (~) (FunPtr GstVideo.Callbacks.C_VideoFormatPack)+    type AttrBaseTypeConstraint VideoFormatInfoPackFuncFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoPackFuncFieldInfo = Maybe GstVideo.Callbacks.VideoFormatPack+    type AttrLabel VideoFormatInfoPackFuncFieldInfo = "pack_func"+    type AttrOrigin VideoFormatInfoPackFuncFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoPackFunc+    attrSet _ = setVideoFormatInfoPackFunc+    attrConstruct = undefined+    attrClear _ = clearVideoFormatInfoPackFunc++videoFormatInfo_packFunc :: AttrLabelProxy "packFunc"+videoFormatInfo_packFunc = AttrLabelProxy++#endif+++{- |+Get the value of the “@tile_mode@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #tileMode+@+-}+getVideoFormatInfoTileMode :: MonadIO m => VideoFormatInfo -> m GstVideo.Enums.VideoTileMode+getVideoFormatInfoTileMode s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 184) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@tile_mode@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #tileMode 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoTileMode :: MonadIO m => VideoFormatInfo -> GstVideo.Enums.VideoTileMode -> m ()+setVideoFormatInfoTileMode s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 184) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoFormatInfoTileModeFieldInfo+instance AttrInfo VideoFormatInfoTileModeFieldInfo where+    type AttrAllowedOps VideoFormatInfoTileModeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoTileModeFieldInfo = (~) GstVideo.Enums.VideoTileMode+    type AttrBaseTypeConstraint VideoFormatInfoTileModeFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoTileModeFieldInfo = GstVideo.Enums.VideoTileMode+    type AttrLabel VideoFormatInfoTileModeFieldInfo = "tile_mode"+    type AttrOrigin VideoFormatInfoTileModeFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoTileMode+    attrSet _ = setVideoFormatInfoTileMode+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_tileMode :: AttrLabelProxy "tileMode"+videoFormatInfo_tileMode = AttrLabelProxy++#endif+++{- |+Get the value of the “@tile_ws@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #tileWs+@+-}+getVideoFormatInfoTileWs :: MonadIO m => VideoFormatInfo -> m Word32+getVideoFormatInfoTileWs s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 188) :: IO Word32+    return val++{- |+Set the value of the “@tile_ws@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #tileWs 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoTileWs :: MonadIO m => VideoFormatInfo -> Word32 -> m ()+setVideoFormatInfoTileWs s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 188) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoFormatInfoTileWsFieldInfo+instance AttrInfo VideoFormatInfoTileWsFieldInfo where+    type AttrAllowedOps VideoFormatInfoTileWsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoTileWsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoFormatInfoTileWsFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoTileWsFieldInfo = Word32+    type AttrLabel VideoFormatInfoTileWsFieldInfo = "tile_ws"+    type AttrOrigin VideoFormatInfoTileWsFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoTileWs+    attrSet _ = setVideoFormatInfoTileWs+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_tileWs :: AttrLabelProxy "tileWs"+videoFormatInfo_tileWs = AttrLabelProxy++#endif+++{- |+Get the value of the “@tile_hs@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFormatInfo #tileHs+@+-}+getVideoFormatInfoTileHs :: MonadIO m => VideoFormatInfo -> m Word32+getVideoFormatInfoTileHs s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 192) :: IO Word32+    return val++{- |+Set the value of the “@tile_hs@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFormatInfo [ #tileHs 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFormatInfoTileHs :: MonadIO m => VideoFormatInfo -> Word32 -> m ()+setVideoFormatInfoTileHs s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 192) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoFormatInfoTileHsFieldInfo+instance AttrInfo VideoFormatInfoTileHsFieldInfo where+    type AttrAllowedOps VideoFormatInfoTileHsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFormatInfoTileHsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoFormatInfoTileHsFieldInfo = (~) VideoFormatInfo+    type AttrGetType VideoFormatInfoTileHsFieldInfo = Word32+    type AttrLabel VideoFormatInfoTileHsFieldInfo = "tile_hs"+    type AttrOrigin VideoFormatInfoTileHsFieldInfo = VideoFormatInfo+    attrGet _ = getVideoFormatInfoTileHs+    attrSet _ = setVideoFormatInfoTileHs+    attrConstruct = undefined+    attrClear _ = undefined++videoFormatInfo_tileHs :: AttrLabelProxy "tileHs"+videoFormatInfo_tileHs = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoFormatInfo+type instance O.AttributeList VideoFormatInfo = VideoFormatInfoAttributeList+type VideoFormatInfoAttributeList = ('[ '("format", VideoFormatInfoFormatFieldInfo), '("name", VideoFormatInfoNameFieldInfo), '("description", VideoFormatInfoDescriptionFieldInfo), '("flags", VideoFormatInfoFlagsFieldInfo), '("bits", VideoFormatInfoBitsFieldInfo), '("nComponents", VideoFormatInfoNComponentsFieldInfo), '("nPlanes", VideoFormatInfoNPlanesFieldInfo), '("unpackFormat", VideoFormatInfoUnpackFormatFieldInfo), '("unpackFunc", VideoFormatInfoUnpackFuncFieldInfo), '("packLines", VideoFormatInfoPackLinesFieldInfo), '("packFunc", VideoFormatInfoPackFuncFieldInfo), '("tileMode", VideoFormatInfoTileModeFieldInfo), '("tileWs", VideoFormatInfoTileWsFieldInfo), '("tileHs", VideoFormatInfoTileHsFieldInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoFormatInfoMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoFormatInfoMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoFormatInfoMethod t VideoFormatInfo, O.MethodInfo info VideoFormatInfo p) => OL.IsLabel t (VideoFormatInfo -> 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++
+ GI/GstVideo/Structs/VideoFormatInfo.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoFormatInfo 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++newtype VideoFormatInfo = VideoFormatInfo (ManagedPtr VideoFormatInfo)+instance WrappedPtr VideoFormatInfo where
+ GI/GstVideo/Structs/VideoFrame.hs view
@@ -0,0 +1,708 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++A video frame obtained from 'GI.GstVideo.Structs.VideoFrame.videoFrameMap'+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoFrame+    ( ++-- * Exported types+    VideoFrame(..)                          ,+    newZeroVideoFrame                       ,+    noVideoFrame                            ,+++ -- * Methods+-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoFrameCopyMethodInfo                ,+#endif+    videoFrameCopy                          ,+++-- ** copyPlane #method:copyPlane#++#if ENABLE_OVERLOADING+    VideoFrameCopyPlaneMethodInfo           ,+#endif+    videoFrameCopyPlane                     ,+++-- ** map #method:map#++#if ENABLE_OVERLOADING+    VideoFrameMapMethodInfo                 ,+#endif+    videoFrameMap                           ,+++-- ** mapId #method:mapId#++#if ENABLE_OVERLOADING+    VideoFrameMapIdMethodInfo               ,+#endif+    videoFrameMapId                         ,+++-- ** unmap #method:unmap#++#if ENABLE_OVERLOADING+    VideoFrameUnmapMethodInfo               ,+#endif+    videoFrameUnmap                         ,+++++ -- * Properties+-- ** buffer #attr:buffer#+{- | the mapped buffer+-}+    clearVideoFrameBuffer                   ,+    getVideoFrameBuffer                     ,+    setVideoFrameBuffer                     ,+#if ENABLE_OVERLOADING+    videoFrame_buffer                       ,+#endif+++-- ** flags #attr:flags#+{- | 'GI.GstVideo.Flags.VideoFrameFlags' for the frame+-}+    getVideoFrameFlags                      ,+    setVideoFrameFlags                      ,+#if ENABLE_OVERLOADING+    videoFrame_flags                        ,+#endif+++-- ** id #attr:id#+{- | id of the mapped frame. the id can for example be used to+  indentify the frame in case of multiview video.+-}+    getVideoFrameId                         ,+    setVideoFrameId                         ,+#if ENABLE_OVERLOADING+    videoFrame_id                           ,+#endif+++-- ** info #attr:info#+{- | the 'GI.GstVideo.Structs.VideoInfo.VideoInfo'+-}+    getVideoFrameInfo                       ,+#if ENABLE_OVERLOADING+    videoFrame_info                         ,+#endif+++-- ** meta #attr:meta#+{- | pointer to metadata if any+-}+    clearVideoFrameMeta                     ,+    getVideoFrameMeta                       ,+    setVideoFrameMeta                       ,+#if ENABLE_OVERLOADING+    videoFrame_meta                         ,+#endif+++++    ) 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.Gst.Flags as Gst.Flags+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoInfo as GstVideo.VideoInfo++-- | Memory-managed wrapper type.+newtype VideoFrame = VideoFrame (ManagedPtr VideoFrame)+instance WrappedPtr VideoFrame where+    wrappedPtrCalloc = callocBytes 632+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 632 >=> wrapPtr VideoFrame)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoFrame` struct initialized to zero.+newZeroVideoFrame :: MonadIO m => m VideoFrame+newZeroVideoFrame = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoFrame++instance tag ~ 'AttrSet => Constructible VideoFrame tag where+    new _ attrs = do+        o <- newZeroVideoFrame+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoFrame`.+noVideoFrame :: Maybe VideoFrame+noVideoFrame = Nothing++{- |+Get the value of the “@info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFrame #info+@+-}+getVideoFrameInfo :: MonadIO m => VideoFrame -> m GstVideo.VideoInfo.VideoInfo+getVideoFrameInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr GstVideo.VideoInfo.VideoInfo)+    val' <- (newBoxed GstVideo.VideoInfo.VideoInfo) val+    return val'++#if ENABLE_OVERLOADING+data VideoFrameInfoFieldInfo+instance AttrInfo VideoFrameInfoFieldInfo where+    type AttrAllowedOps VideoFrameInfoFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoFrameInfoFieldInfo = (~) (Ptr GstVideo.VideoInfo.VideoInfo)+    type AttrBaseTypeConstraint VideoFrameInfoFieldInfo = (~) VideoFrame+    type AttrGetType VideoFrameInfoFieldInfo = GstVideo.VideoInfo.VideoInfo+    type AttrLabel VideoFrameInfoFieldInfo = "info"+    type AttrOrigin VideoFrameInfoFieldInfo = VideoFrame+    attrGet _ = getVideoFrameInfo+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoFrame_info :: AttrLabelProxy "info"+videoFrame_info = AttrLabelProxy++#endif+++{- |+Get the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFrame #flags+@+-}+getVideoFrameFlags :: MonadIO m => VideoFrame -> m [GstVideo.Flags.VideoFrameFlags]+getVideoFrameFlags s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 120) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFrame [ #flags 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFrameFlags :: MonadIO m => VideoFrame -> [GstVideo.Flags.VideoFrameFlags] -> m ()+setVideoFrameFlags s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 120) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoFrameFlagsFieldInfo+instance AttrInfo VideoFrameFlagsFieldInfo where+    type AttrAllowedOps VideoFrameFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFrameFlagsFieldInfo = (~) [GstVideo.Flags.VideoFrameFlags]+    type AttrBaseTypeConstraint VideoFrameFlagsFieldInfo = (~) VideoFrame+    type AttrGetType VideoFrameFlagsFieldInfo = [GstVideo.Flags.VideoFrameFlags]+    type AttrLabel VideoFrameFlagsFieldInfo = "flags"+    type AttrOrigin VideoFrameFlagsFieldInfo = VideoFrame+    attrGet _ = getVideoFrameFlags+    attrSet _ = setVideoFrameFlags+    attrConstruct = undefined+    attrClear _ = undefined++videoFrame_flags :: AttrLabelProxy "flags"+videoFrame_flags = AttrLabelProxy++#endif+++{- |+Get the value of the “@buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFrame #buffer+@+-}+getVideoFrameBuffer :: MonadIO m => VideoFrame -> m (Maybe Gst.Buffer.Buffer)+getVideoFrameBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 128) :: IO (Ptr Gst.Buffer.Buffer)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Buffer.Buffer) val'+        return val''+    return result++{- |+Set the value of the “@buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFrame [ #buffer 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFrameBuffer :: MonadIO m => VideoFrame -> Ptr Gst.Buffer.Buffer -> m ()+setVideoFrameBuffer s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 128) (val :: Ptr Gst.Buffer.Buffer)++{- |+Set the value of the “@buffer@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #buffer+@+-}+clearVideoFrameBuffer :: MonadIO m => VideoFrame -> m ()+clearVideoFrameBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 128) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)++#if ENABLE_OVERLOADING+data VideoFrameBufferFieldInfo+instance AttrInfo VideoFrameBufferFieldInfo where+    type AttrAllowedOps VideoFrameBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFrameBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)+    type AttrBaseTypeConstraint VideoFrameBufferFieldInfo = (~) VideoFrame+    type AttrGetType VideoFrameBufferFieldInfo = Maybe Gst.Buffer.Buffer+    type AttrLabel VideoFrameBufferFieldInfo = "buffer"+    type AttrOrigin VideoFrameBufferFieldInfo = VideoFrame+    attrGet _ = getVideoFrameBuffer+    attrSet _ = setVideoFrameBuffer+    attrConstruct = undefined+    attrClear _ = clearVideoFrameBuffer++videoFrame_buffer :: AttrLabelProxy "buffer"+videoFrame_buffer = AttrLabelProxy++#endif+++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFrame #meta+@+-}+getVideoFrameMeta :: MonadIO m => VideoFrame -> m (Ptr ())+getVideoFrameMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 136) :: IO (Ptr ())+    return val++{- |+Set the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFrame [ #meta 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFrameMeta :: MonadIO m => VideoFrame -> Ptr () -> m ()+setVideoFrameMeta s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 136) (val :: Ptr ())++{- |+Set the value of the “@meta@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #meta+@+-}+clearVideoFrameMeta :: MonadIO m => VideoFrame -> m ()+clearVideoFrameMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 136) (FP.nullPtr :: Ptr ())++#if ENABLE_OVERLOADING+data VideoFrameMetaFieldInfo+instance AttrInfo VideoFrameMetaFieldInfo where+    type AttrAllowedOps VideoFrameMetaFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoFrameMetaFieldInfo = (~) (Ptr ())+    type AttrBaseTypeConstraint VideoFrameMetaFieldInfo = (~) VideoFrame+    type AttrGetType VideoFrameMetaFieldInfo = Ptr ()+    type AttrLabel VideoFrameMetaFieldInfo = "meta"+    type AttrOrigin VideoFrameMetaFieldInfo = VideoFrame+    attrGet _ = getVideoFrameMeta+    attrSet _ = setVideoFrameMeta+    attrConstruct = undefined+    attrClear _ = clearVideoFrameMeta++videoFrame_meta :: AttrLabelProxy "meta"+videoFrame_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoFrame #id+@+-}+getVideoFrameId :: MonadIO m => VideoFrame -> m Int32+getVideoFrameId s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 144) :: IO Int32+    return val++{- |+Set the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoFrame [ #id 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoFrameId :: MonadIO m => VideoFrame -> Int32 -> m ()+setVideoFrameId s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 144) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoFrameIdFieldInfo+instance AttrInfo VideoFrameIdFieldInfo where+    type AttrAllowedOps VideoFrameIdFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoFrameIdFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoFrameIdFieldInfo = (~) VideoFrame+    type AttrGetType VideoFrameIdFieldInfo = Int32+    type AttrLabel VideoFrameIdFieldInfo = "id"+    type AttrOrigin VideoFrameIdFieldInfo = VideoFrame+    attrGet _ = getVideoFrameId+    attrSet _ = setVideoFrameId+    attrConstruct = undefined+    attrClear _ = undefined++videoFrame_id :: AttrLabelProxy "id"+videoFrame_id = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoFrame:data" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TPtr)"+-- XXX Skipped attribute for "VideoFrame:map" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TInterface (Name {namespace = \"Gst\", name = \"MapInfo\"}))"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoFrame+type instance O.AttributeList VideoFrame = VideoFrameAttributeList+type VideoFrameAttributeList = ('[ '("info", VideoFrameInfoFieldInfo), '("flags", VideoFrameFlagsFieldInfo), '("buffer", VideoFrameBufferFieldInfo), '("meta", VideoFrameMetaFieldInfo), '("id", VideoFrameIdFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoFrame::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dest", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", 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_video_frame_copy" gst_video_frame_copy :: +    Ptr VideoFrame ->                       -- dest : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr VideoFrame ->                       -- src : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    IO CInt++{- |+Copy the contents from /@src@/ to /@dest@/.+-}+videoFrameCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoFrame+    {- ^ /@dest@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> VideoFrame+    {- ^ /@src@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> m Bool+    {- ^ __Returns:__ TRUE if the contents could be copied. -}+videoFrameCopy dest src = liftIO $ do+    dest' <- unsafeManagedPtrGetPtr dest+    src' <- unsafeManagedPtrGetPtr src+    result <- gst_video_frame_copy dest' src'+    let result' = (/= 0) result+    touchManagedPtr dest+    touchManagedPtr src+    return result'++#if ENABLE_OVERLOADING+data VideoFrameCopyMethodInfo+instance (signature ~ (VideoFrame -> m Bool), MonadIO m) => O.MethodInfo VideoFrameCopyMethodInfo VideoFrame signature where+    overloadedMethod _ = videoFrameCopy++#endif++-- method VideoFrame::copy_plane+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "dest", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a plane", 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_video_frame_copy_plane" gst_video_frame_copy_plane :: +    Ptr VideoFrame ->                       -- dest : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr VideoFrame ->                       -- src : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Word32 ->                               -- plane : TBasicType TUInt+    IO CInt++{- |+Copy the plane with index /@plane@/ from /@src@/ to /@dest@/.+-}+videoFrameCopyPlane ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoFrame+    {- ^ /@dest@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> VideoFrame+    {- ^ /@src@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> Word32+    {- ^ /@plane@/: a plane -}+    -> m Bool+    {- ^ __Returns:__ TRUE if the contents could be copied. -}+videoFrameCopyPlane dest src plane = liftIO $ do+    dest' <- unsafeManagedPtrGetPtr dest+    src' <- unsafeManagedPtrGetPtr src+    result <- gst_video_frame_copy_plane dest' src' plane+    let result' = (/= 0) result+    touchManagedPtr dest+    touchManagedPtr src+    return result'++#if ENABLE_OVERLOADING+data VideoFrameCopyPlaneMethodInfo+instance (signature ~ (VideoFrame -> Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoFrameCopyPlaneMethodInfo VideoFrame signature where+    overloadedMethod _ = videoFrameCopyPlane++#endif++-- method VideoFrame::map+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "pointer to #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the buffer to map", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gst", name = "MapFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstMapFlags", 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_video_frame_map" gst_video_frame_map :: +    Ptr VideoFrame ->                       -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr GstVideo.VideoInfo.VideoInfo ->     -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "Gst", name = "MapFlags"})+    IO CInt++{- |+Use /@info@/ and /@buffer@/ to fill in the values of /@frame@/. /@frame@/ is usually+allocated on the stack, and you will pass the address to the 'GI.GstVideo.Structs.VideoFrame.VideoFrame'+structure allocated on the stack; 'GI.GstVideo.Structs.VideoFrame.videoFrameMap' will then fill in+the structures with the various video-specific information you need to access+the pixels of the video buffer. You can then use accessor macros such as+@/GST_VIDEO_FRAME_COMP_DATA()/@, @/GST_VIDEO_FRAME_PLANE_DATA()/@,+@/GST_VIDEO_FRAME_COMP_STRIDE()/@, @/GST_VIDEO_FRAME_PLANE_STRIDE()/@ etc.+to get to the pixels.+++=== /C code/+>+>  GstVideoFrame vframe;+>  ...+>  // set RGB pixels to black one at a time+>  if (gst_video_frame_map (&amp;vframe, video_info, video_buffer, GST_MAP_WRITE)) {+>    guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);+>    guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);+>    guint pixel_stride = GST_VIDEO_FRAME_COMP_PSTRIDE (vframe, 0);+>+>    for (h = 0; h < height; ++h) {+>      for (w = 0; w < width; ++w) {+>        guint8 *pixel = pixels + h * stride + w * pixel_stride;+>+>        memset (pixel, 0, pixel_stride);+>      }+>    }+>+>    gst_video_frame_unmap (&amp;vframe);+>  }+>  ...+++All video planes of /@buffer@/ will be mapped and the pointers will be set in+/@frame@/->data.++The purpose of this function is to make it easy for you to get to the video+pixels in a generic way, without you having to worry too much about details+such as whether the video data is allocated in one contiguous memory chunk+or multiple memory chunks (e.g. one for each plane); or if custom strides+and custom plane offsets are used or not (as signalled by GstVideoMeta on+each buffer). This function will just fill the 'GI.GstVideo.Structs.VideoFrame.VideoFrame' structure+with the right values and if you use the accessor macros everything will+just work and you can access the data easily. It also maps the underlying+memory chunks for you.+-}+videoFrameMap ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoFrame+    {- ^ /@frame@/: pointer to 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> GstVideo.VideoInfo.VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> Gst.Buffer.Buffer+    {- ^ /@buffer@/: the buffer to map -}+    -> [Gst.Flags.MapFlags]+    {- ^ /@flags@/: 'GI.Gst.Flags.MapFlags' -}+    -> m Bool+    {- ^ __Returns:__ 'True' on success. -}+videoFrameMap frame info buffer flags = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    info' <- unsafeManagedPtrGetPtr info+    buffer' <- unsafeManagedPtrGetPtr buffer+    let flags' = gflagsToWord flags+    result <- gst_video_frame_map frame' info' buffer' flags'+    let result' = (/= 0) result+    touchManagedPtr frame+    touchManagedPtr info+    touchManagedPtr buffer+    return result'++#if ENABLE_OVERLOADING+data VideoFrameMapMethodInfo+instance (signature ~ (GstVideo.VideoInfo.VideoInfo -> Gst.Buffer.Buffer -> [Gst.Flags.MapFlags] -> m Bool), MonadIO m) => O.MethodInfo VideoFrameMapMethodInfo VideoFrame signature where+    overloadedMethod _ = videoFrameMap++#endif++-- method VideoFrame::map_id+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "pointer to #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the buffer to map", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frame id to map", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gst", name = "MapFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstMapFlags", 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_video_frame_map_id" gst_video_frame_map_id :: +    Ptr VideoFrame ->                       -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    Ptr GstVideo.VideoInfo.VideoInfo ->     -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr Gst.Buffer.Buffer ->                -- buffer : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Int32 ->                                -- id : TBasicType TInt+    CUInt ->                                -- flags : TInterface (Name {namespace = "Gst", name = "MapFlags"})+    IO CInt++{- |+Use /@info@/ and /@buffer@/ to fill in the values of /@frame@/ with the video frame+information of frame /@id@/.++When /@id@/ is -1, the default frame is mapped. When /@id@/ != -1, this function+will return 'False' when there is no GstVideoMeta with that id.++All video planes of /@buffer@/ will be mapped and the pointers will be set in+/@frame@/->data.+-}+videoFrameMapId ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoFrame+    {- ^ /@frame@/: pointer to 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> GstVideo.VideoInfo.VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> Gst.Buffer.Buffer+    {- ^ /@buffer@/: the buffer to map -}+    -> Int32+    {- ^ /@id@/: the frame id to map -}+    -> [Gst.Flags.MapFlags]+    {- ^ /@flags@/: 'GI.Gst.Flags.MapFlags' -}+    -> m Bool+    {- ^ __Returns:__ 'True' on success. -}+videoFrameMapId frame info buffer id flags = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    info' <- unsafeManagedPtrGetPtr info+    buffer' <- unsafeManagedPtrGetPtr buffer+    let flags' = gflagsToWord flags+    result <- gst_video_frame_map_id frame' info' buffer' id flags'+    let result' = (/= 0) result+    touchManagedPtr frame+    touchManagedPtr info+    touchManagedPtr buffer+    return result'++#if ENABLE_OVERLOADING+data VideoFrameMapIdMethodInfo+instance (signature ~ (GstVideo.VideoInfo.VideoInfo -> Gst.Buffer.Buffer -> Int32 -> [Gst.Flags.MapFlags] -> m Bool), MonadIO m) => O.MethodInfo VideoFrameMapIdMethodInfo VideoFrame signature where+    overloadedMethod _ = videoFrameMapId++#endif++-- method VideoFrame::unmap+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "frame", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_frame_unmap" gst_video_frame_unmap :: +    Ptr VideoFrame ->                       -- frame : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    IO ()++{- |+Unmap the memory previously mapped with gst_video_frame_map.+-}+videoFrameUnmap ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoFrame+    {- ^ /@frame@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' -}+    -> m ()+videoFrameUnmap frame = liftIO $ do+    frame' <- unsafeManagedPtrGetPtr frame+    gst_video_frame_unmap frame'+    touchManagedPtr frame+    return ()++#if ENABLE_OVERLOADING+data VideoFrameUnmapMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoFrameUnmapMethodInfo VideoFrame signature where+    overloadedMethod _ = videoFrameUnmap++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoFrameMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoFrameMethod "copy" o = VideoFrameCopyMethodInfo+    ResolveVideoFrameMethod "copyPlane" o = VideoFrameCopyPlaneMethodInfo+    ResolveVideoFrameMethod "map" o = VideoFrameMapMethodInfo+    ResolveVideoFrameMethod "mapId" o = VideoFrameMapIdMethodInfo+    ResolveVideoFrameMethod "unmap" o = VideoFrameUnmapMethodInfo+    ResolveVideoFrameMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoFrameMethod t VideoFrame, O.MethodInfo info VideoFrame p) => OL.IsLabel t (VideoFrame -> 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++
+ GI/GstVideo/Structs/VideoFrame.hs-boot view
@@ -0,0 +1,41 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoFrame 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++newtype VideoFrame = VideoFrame (ManagedPtr VideoFrame)+instance WrappedPtr VideoFrame where+#if ENABLE_OVERLOADING+data VideoFrameCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoFrameCopyPlaneMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoFrameMapMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoFrameMapIdMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoFrameUnmapMethodInfo+#endif
+ GI/GstVideo/Structs/VideoGLTextureUploadMeta.hs view
@@ -0,0 +1,334 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata for uploading a buffer to an OpenGL texture+ID. The caller of 'GI.GstVideo.Structs.VideoGLTextureUploadMeta.videoGLTextureUploadMetaUpload' must+have OpenGL set up and call this from a thread where it is valid+to upload something to an OpenGL texture.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoGLTextureUploadMeta+    ( ++-- * Exported types+    VideoGLTextureUploadMeta(..)            ,+    newZeroVideoGLTextureUploadMeta         ,+    noVideoGLTextureUploadMeta              ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoGLTextureUploadMetaGetInfo         ,+++-- ** upload #method:upload#++#if ENABLE_OVERLOADING+    VideoGLTextureUploadMetaUploadMethodInfo,+#endif+    videoGLTextureUploadMetaUpload          ,+++++ -- * Properties+-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoGLTextureUploadMetaMeta         ,+#if ENABLE_OVERLOADING+    videoGLTextureUploadMeta_meta           ,+#endif+++-- ** nTextures #attr:nTextures#+{- | Number of textures that are generated+-}+    getVideoGLTextureUploadMetaNTextures    ,+    setVideoGLTextureUploadMetaNTextures    ,+#if ENABLE_OVERLOADING+    videoGLTextureUploadMeta_nTextures      ,+#endif+++-- ** textureOrientation #attr:textureOrientation#+{- | Orientation of the textures+-}+    getVideoGLTextureUploadMetaTextureOrientation,+    setVideoGLTextureUploadMetaTextureOrientation,+#if ENABLE_OVERLOADING+    videoGLTextureUploadMeta_textureOrientation,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoGLTextureUploadMeta = VideoGLTextureUploadMeta (ManagedPtr VideoGLTextureUploadMeta)+instance WrappedPtr VideoGLTextureUploadMeta where+    wrappedPtrCalloc = callocBytes 80+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 80 >=> wrapPtr VideoGLTextureUploadMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoGLTextureUploadMeta` struct initialized to zero.+newZeroVideoGLTextureUploadMeta :: MonadIO m => m VideoGLTextureUploadMeta+newZeroVideoGLTextureUploadMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoGLTextureUploadMeta++instance tag ~ 'AttrSet => Constructible VideoGLTextureUploadMeta tag where+    new _ attrs = do+        o <- newZeroVideoGLTextureUploadMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoGLTextureUploadMeta`.+noVideoGLTextureUploadMeta :: Maybe VideoGLTextureUploadMeta+noVideoGLTextureUploadMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoGLTextureUploadMeta #meta+@+-}+getVideoGLTextureUploadMetaMeta :: MonadIO m => VideoGLTextureUploadMeta -> m Gst.Meta.Meta+getVideoGLTextureUploadMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoGLTextureUploadMetaMetaFieldInfo+instance AttrInfo VideoGLTextureUploadMetaMetaFieldInfo where+    type AttrAllowedOps VideoGLTextureUploadMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoGLTextureUploadMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoGLTextureUploadMetaMetaFieldInfo = (~) VideoGLTextureUploadMeta+    type AttrGetType VideoGLTextureUploadMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoGLTextureUploadMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoGLTextureUploadMetaMetaFieldInfo = VideoGLTextureUploadMeta+    attrGet _ = getVideoGLTextureUploadMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoGLTextureUploadMeta_meta :: AttrLabelProxy "meta"+videoGLTextureUploadMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@texture_orientation@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoGLTextureUploadMeta #textureOrientation+@+-}+getVideoGLTextureUploadMetaTextureOrientation :: MonadIO m => VideoGLTextureUploadMeta -> m GstVideo.Enums.VideoGLTextureOrientation+getVideoGLTextureUploadMetaTextureOrientation s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@texture_orientation@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoGLTextureUploadMeta [ #textureOrientation 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoGLTextureUploadMetaTextureOrientation :: MonadIO m => VideoGLTextureUploadMeta -> GstVideo.Enums.VideoGLTextureOrientation -> m ()+setVideoGLTextureUploadMetaTextureOrientation s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 16) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoGLTextureUploadMetaTextureOrientationFieldInfo+instance AttrInfo VideoGLTextureUploadMetaTextureOrientationFieldInfo where+    type AttrAllowedOps VideoGLTextureUploadMetaTextureOrientationFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoGLTextureUploadMetaTextureOrientationFieldInfo = (~) GstVideo.Enums.VideoGLTextureOrientation+    type AttrBaseTypeConstraint VideoGLTextureUploadMetaTextureOrientationFieldInfo = (~) VideoGLTextureUploadMeta+    type AttrGetType VideoGLTextureUploadMetaTextureOrientationFieldInfo = GstVideo.Enums.VideoGLTextureOrientation+    type AttrLabel VideoGLTextureUploadMetaTextureOrientationFieldInfo = "texture_orientation"+    type AttrOrigin VideoGLTextureUploadMetaTextureOrientationFieldInfo = VideoGLTextureUploadMeta+    attrGet _ = getVideoGLTextureUploadMetaTextureOrientation+    attrSet _ = setVideoGLTextureUploadMetaTextureOrientation+    attrConstruct = undefined+    attrClear _ = undefined++videoGLTextureUploadMeta_textureOrientation :: AttrLabelProxy "textureOrientation"+videoGLTextureUploadMeta_textureOrientation = AttrLabelProxy++#endif+++{- |+Get the value of the “@n_textures@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoGLTextureUploadMeta #nTextures+@+-}+getVideoGLTextureUploadMetaNTextures :: MonadIO m => VideoGLTextureUploadMeta -> m Word32+getVideoGLTextureUploadMetaNTextures s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Word32+    return val++{- |+Set the value of the “@n_textures@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoGLTextureUploadMeta [ #nTextures 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoGLTextureUploadMetaNTextures :: MonadIO m => VideoGLTextureUploadMeta -> Word32 -> m ()+setVideoGLTextureUploadMetaNTextures s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 20) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoGLTextureUploadMetaNTexturesFieldInfo+instance AttrInfo VideoGLTextureUploadMetaNTexturesFieldInfo where+    type AttrAllowedOps VideoGLTextureUploadMetaNTexturesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoGLTextureUploadMetaNTexturesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoGLTextureUploadMetaNTexturesFieldInfo = (~) VideoGLTextureUploadMeta+    type AttrGetType VideoGLTextureUploadMetaNTexturesFieldInfo = Word32+    type AttrLabel VideoGLTextureUploadMetaNTexturesFieldInfo = "n_textures"+    type AttrOrigin VideoGLTextureUploadMetaNTexturesFieldInfo = VideoGLTextureUploadMeta+    attrGet _ = getVideoGLTextureUploadMetaNTextures+    attrSet _ = setVideoGLTextureUploadMetaNTextures+    attrConstruct = undefined+    attrClear _ = undefined++videoGLTextureUploadMeta_nTextures :: AttrLabelProxy "nTextures"+videoGLTextureUploadMeta_nTextures = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoGLTextureUploadMeta:texture_type" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TInterface (Name {namespace = \"GstVideo\", name = \"VideoGLTextureType\"}))"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoGLTextureUploadMeta+type instance O.AttributeList VideoGLTextureUploadMeta = VideoGLTextureUploadMetaAttributeList+type VideoGLTextureUploadMetaAttributeList = ('[ '("meta", VideoGLTextureUploadMetaMetaFieldInfo), '("textureOrientation", VideoGLTextureUploadMetaTextureOrientationFieldInfo), '("nTextures", VideoGLTextureUploadMetaNTexturesFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoGLTextureUploadMeta::upload+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUploadMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoGLTextureUploadMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "texture_id", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the texture IDs to upload to", 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_video_gl_texture_upload_meta_upload" gst_video_gl_texture_upload_meta_upload :: +    Ptr VideoGLTextureUploadMeta ->         -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoGLTextureUploadMeta"})+    Word32 ->                               -- texture_id : TBasicType TUInt+    IO CInt++{- |+Uploads the buffer which owns the meta to a specific texture ID.+-}+videoGLTextureUploadMetaUpload ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoGLTextureUploadMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoGLTextureUploadMeta.VideoGLTextureUploadMeta' -}+    -> Word32+    {- ^ /@textureId@/: the texture IDs to upload to -}+    -> m Bool+    {- ^ __Returns:__ 'True' if uploading succeeded, 'False' otherwise. -}+videoGLTextureUploadMetaUpload meta textureId = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    result <- gst_video_gl_texture_upload_meta_upload meta' textureId+    let result' = (/= 0) result+    touchManagedPtr meta+    return result'++#if ENABLE_OVERLOADING+data VideoGLTextureUploadMetaUploadMethodInfo+instance (signature ~ (Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoGLTextureUploadMetaUploadMethodInfo VideoGLTextureUploadMeta signature where+    overloadedMethod _ = videoGLTextureUploadMetaUpload++#endif++-- method VideoGLTextureUploadMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_gl_texture_upload_meta_get_info" gst_video_gl_texture_upload_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoGLTextureUploadMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoGLTextureUploadMetaGetInfo  = liftIO $ do+    result <- gst_video_gl_texture_upload_meta_get_info+    checkUnexpectedReturnNULL "videoGLTextureUploadMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoGLTextureUploadMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoGLTextureUploadMetaMethod "upload" o = VideoGLTextureUploadMetaUploadMethodInfo+    ResolveVideoGLTextureUploadMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoGLTextureUploadMetaMethod t VideoGLTextureUploadMeta, O.MethodInfo info VideoGLTextureUploadMeta p) => OL.IsLabel t (VideoGLTextureUploadMeta -> 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++
+ GI/GstVideo/Structs/VideoGLTextureUploadMeta.hs-boot view
@@ -0,0 +1,29 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoGLTextureUploadMeta 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++newtype VideoGLTextureUploadMeta = VideoGLTextureUploadMeta (ManagedPtr VideoGLTextureUploadMeta)+instance WrappedPtr VideoGLTextureUploadMeta where+#if ENABLE_OVERLOADING+data VideoGLTextureUploadMetaUploadMethodInfo+#endif
+ GI/GstVideo/Structs/VideoInfo.hs view
@@ -0,0 +1,1383 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Information describing image properties. This information can be filled+in from GstCaps with 'GI.GstVideo.Structs.VideoInfo.videoInfoFromCaps'. The information is also used+to store the specific video info when mapping a video frame with+'GI.GstVideo.Structs.VideoFrame.videoFrameMap'.++Use the provided macros to access the info in this structure.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoInfo+    ( ++-- * Exported types+    VideoInfo(..)                           ,+    newZeroVideoInfo                        ,+    noVideoInfo                             ,+++ -- * Methods+-- ** align #method:align#++#if ENABLE_OVERLOADING+    VideoInfoAlignMethodInfo                ,+#endif+    videoInfoAlign                          ,+++-- ** convert #method:convert#++#if ENABLE_OVERLOADING+    VideoInfoConvertMethodInfo              ,+#endif+    videoInfoConvert                        ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoInfoCopyMethodInfo                 ,+#endif+    videoInfoCopy                           ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoInfoFreeMethodInfo                 ,+#endif+    videoInfoFree                           ,+++-- ** fromCaps #method:fromCaps#++#if ENABLE_OVERLOADING+    VideoInfoFromCapsMethodInfo             ,+#endif+    videoInfoFromCaps                       ,+++-- ** init #method:init#++#if ENABLE_OVERLOADING+    VideoInfoInitMethodInfo                 ,+#endif+    videoInfoInit                           ,+++-- ** isEqual #method:isEqual#++#if ENABLE_OVERLOADING+    VideoInfoIsEqualMethodInfo              ,+#endif+    videoInfoIsEqual                        ,+++-- ** new #method:new#++    videoInfoNew                            ,+++-- ** setFormat #method:setFormat#++#if ENABLE_OVERLOADING+    VideoInfoSetFormatMethodInfo            ,+#endif+    videoInfoSetFormat                      ,+++-- ** setInterlacedFormat #method:setInterlacedFormat#++#if ENABLE_OVERLOADING+    VideoInfoSetInterlacedFormatMethodInfo  ,+#endif+    videoInfoSetInterlacedFormat            ,+++-- ** toCaps #method:toCaps#++#if ENABLE_OVERLOADING+    VideoInfoToCapsMethodInfo               ,+#endif+    videoInfoToCaps                         ,+++++ -- * Properties+-- ** chromaSite #attr:chromaSite#+{- | a 'GI.GstVideo.Flags.VideoChromaSite'.+-}+    getVideoInfoChromaSite                  ,+    setVideoInfoChromaSite                  ,+#if ENABLE_OVERLOADING+    videoInfo_chromaSite                    ,+#endif+++-- ** colorimetry #attr:colorimetry#+{- | the colorimetry info+-}+    getVideoInfoColorimetry                 ,+#if ENABLE_OVERLOADING+    videoInfo_colorimetry                   ,+#endif+++-- ** finfo #attr:finfo#+{- | the format info of the video+-}+    clearVideoInfoFinfo                     ,+    getVideoInfoFinfo                       ,+    setVideoInfoFinfo                       ,+#if ENABLE_OVERLOADING+    videoInfo_finfo                         ,+#endif+++-- ** flags #attr:flags#+{- | additional video flags+-}+    getVideoInfoFlags                       ,+    setVideoInfoFlags                       ,+#if ENABLE_OVERLOADING+    videoInfo_flags                         ,+#endif+++-- ** fpsD #attr:fpsD#+{- | the framerate demnominator+-}+    getVideoInfoFpsD                        ,+    setVideoInfoFpsD                        ,+#if ENABLE_OVERLOADING+    videoInfo_fpsD                          ,+#endif+++-- ** fpsN #attr:fpsN#+{- | the framerate numerator+-}+    getVideoInfoFpsN                        ,+    setVideoInfoFpsN                        ,+#if ENABLE_OVERLOADING+    videoInfo_fpsN                          ,+#endif+++-- ** height #attr:height#+{- | the height of the video+-}+    getVideoInfoHeight                      ,+    setVideoInfoHeight                      ,+#if ENABLE_OVERLOADING+    videoInfo_height                        ,+#endif+++-- ** interlaceMode #attr:interlaceMode#+{- | the interlace mode+-}+    getVideoInfoInterlaceMode               ,+    setVideoInfoInterlaceMode               ,+#if ENABLE_OVERLOADING+    videoInfo_interlaceMode                 ,+#endif+++-- ** parD #attr:parD#+{- | the pixel-aspect-ratio demnominator+-}+    getVideoInfoParD                        ,+    setVideoInfoParD                        ,+#if ENABLE_OVERLOADING+    videoInfo_parD                          ,+#endif+++-- ** parN #attr:parN#+{- | the pixel-aspect-ratio numerator+-}+    getVideoInfoParN                        ,+    setVideoInfoParN                        ,+#if ENABLE_OVERLOADING+    videoInfo_parN                          ,+#endif+++-- ** size #attr:size#+{- | the default size of one frame+-}+    getVideoInfoSize                        ,+    setVideoInfoSize                        ,+#if ENABLE_OVERLOADING+    videoInfo_size                          ,+#endif+++-- ** views #attr:views#+{- | the number of views for multiview video+-}+    getVideoInfoViews                       ,+    setVideoInfoViews                       ,+#if ENABLE_OVERLOADING+    videoInfo_views                         ,+#endif+++-- ** width #attr:width#+{- | the width of the video+-}+    getVideoInfoWidth                       ,+    setVideoInfoWidth                       ,+#if ENABLE_OVERLOADING+    videoInfo_width                         ,+#endif+++++    ) 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.Gst.Enums as Gst.Enums+import qualified GI.Gst.Structs.Caps as Gst.Caps+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoAlignment as GstVideo.VideoAlignment+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoColorimetry as GstVideo.VideoColorimetry+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFormatInfo as GstVideo.VideoFormatInfo++-- | Memory-managed wrapper type.+newtype VideoInfo = VideoInfo (ManagedPtr VideoInfo)+foreign import ccall "gst_video_info_get_type" c_gst_video_info_get_type :: +    IO GType++instance BoxedObject VideoInfo where+    boxedType _ = c_gst_video_info_get_type++-- | Construct a `VideoInfo` struct initialized to zero.+newZeroVideoInfo :: MonadIO m => m VideoInfo+newZeroVideoInfo = liftIO $ callocBoxedBytes 120 >>= wrapBoxed VideoInfo++instance tag ~ 'AttrSet => Constructible VideoInfo tag where+    new _ attrs = do+        o <- newZeroVideoInfo+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoInfo`.+noVideoInfo :: Maybe VideoInfo+noVideoInfo = Nothing++{- |+Get the value of the “@finfo@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #finfo+@+-}+getVideoInfoFinfo :: MonadIO m => VideoInfo -> m (Maybe GstVideo.VideoFormatInfo.VideoFormatInfo)+getVideoInfoFinfo s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr GstVideo.VideoFormatInfo.VideoFormatInfo)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newPtr GstVideo.VideoFormatInfo.VideoFormatInfo) val'+        return val''+    return result++{- |+Set the value of the “@finfo@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #finfo 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoFinfo :: MonadIO m => VideoInfo -> Ptr GstVideo.VideoFormatInfo.VideoFormatInfo -> m ()+setVideoInfoFinfo s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Ptr GstVideo.VideoFormatInfo.VideoFormatInfo)++{- |+Set the value of the “@finfo@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #finfo+@+-}+clearVideoInfoFinfo :: MonadIO m => VideoInfo -> m ()+clearVideoInfoFinfo s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr GstVideo.VideoFormatInfo.VideoFormatInfo)++#if ENABLE_OVERLOADING+data VideoInfoFinfoFieldInfo+instance AttrInfo VideoInfoFinfoFieldInfo where+    type AttrAllowedOps VideoInfoFinfoFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoInfoFinfoFieldInfo = (~) (Ptr GstVideo.VideoFormatInfo.VideoFormatInfo)+    type AttrBaseTypeConstraint VideoInfoFinfoFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoFinfoFieldInfo = Maybe GstVideo.VideoFormatInfo.VideoFormatInfo+    type AttrLabel VideoInfoFinfoFieldInfo = "finfo"+    type AttrOrigin VideoInfoFinfoFieldInfo = VideoInfo+    attrGet _ = getVideoInfoFinfo+    attrSet _ = setVideoInfoFinfo+    attrConstruct = undefined+    attrClear _ = clearVideoInfoFinfo++videoInfo_finfo :: AttrLabelProxy "finfo"+videoInfo_finfo = AttrLabelProxy++#endif+++{- |+Get the value of the “@interlace_mode@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #interlaceMode+@+-}+getVideoInfoInterlaceMode :: MonadIO m => VideoInfo -> m GstVideo.Enums.VideoInterlaceMode+getVideoInfoInterlaceMode s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@interlace_mode@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #interlaceMode 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoInterlaceMode :: MonadIO m => VideoInfo -> GstVideo.Enums.VideoInterlaceMode -> m ()+setVideoInfoInterlaceMode s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 8) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoInfoInterlaceModeFieldInfo+instance AttrInfo VideoInfoInterlaceModeFieldInfo where+    type AttrAllowedOps VideoInfoInterlaceModeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoInterlaceModeFieldInfo = (~) GstVideo.Enums.VideoInterlaceMode+    type AttrBaseTypeConstraint VideoInfoInterlaceModeFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoInterlaceModeFieldInfo = GstVideo.Enums.VideoInterlaceMode+    type AttrLabel VideoInfoInterlaceModeFieldInfo = "interlace_mode"+    type AttrOrigin VideoInfoInterlaceModeFieldInfo = VideoInfo+    attrGet _ = getVideoInfoInterlaceMode+    attrSet _ = setVideoInfoInterlaceMode+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_interlaceMode :: AttrLabelProxy "interlaceMode"+videoInfo_interlaceMode = AttrLabelProxy++#endif+++{- |+Get the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #flags+@+-}+getVideoInfoFlags :: MonadIO m => VideoInfo -> m [GstVideo.Flags.VideoFlags]+getVideoInfoFlags s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #flags 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoFlags :: MonadIO m => VideoInfo -> [GstVideo.Flags.VideoFlags] -> m ()+setVideoInfoFlags s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 12) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoInfoFlagsFieldInfo+instance AttrInfo VideoInfoFlagsFieldInfo where+    type AttrAllowedOps VideoInfoFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoFlagsFieldInfo = (~) [GstVideo.Flags.VideoFlags]+    type AttrBaseTypeConstraint VideoInfoFlagsFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoFlagsFieldInfo = [GstVideo.Flags.VideoFlags]+    type AttrLabel VideoInfoFlagsFieldInfo = "flags"+    type AttrOrigin VideoInfoFlagsFieldInfo = VideoInfo+    attrGet _ = getVideoInfoFlags+    attrSet _ = setVideoInfoFlags+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_flags :: AttrLabelProxy "flags"+videoInfo_flags = AttrLabelProxy++#endif+++{- |+Get the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #width+@+-}+getVideoInfoWidth :: MonadIO m => VideoInfo -> m Int32+getVideoInfoWidth s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Int32+    return val++{- |+Set the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #width 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoWidth :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoWidth s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoWidthFieldInfo+instance AttrInfo VideoInfoWidthFieldInfo where+    type AttrAllowedOps VideoInfoWidthFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoWidthFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoWidthFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoWidthFieldInfo = Int32+    type AttrLabel VideoInfoWidthFieldInfo = "width"+    type AttrOrigin VideoInfoWidthFieldInfo = VideoInfo+    attrGet _ = getVideoInfoWidth+    attrSet _ = setVideoInfoWidth+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_width :: AttrLabelProxy "width"+videoInfo_width = AttrLabelProxy++#endif+++{- |+Get the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #height+@+-}+getVideoInfoHeight :: MonadIO m => VideoInfo -> m Int32+getVideoInfoHeight s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Int32+    return val++{- |+Set the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #height 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoHeight :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoHeight s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 20) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoHeightFieldInfo+instance AttrInfo VideoInfoHeightFieldInfo where+    type AttrAllowedOps VideoInfoHeightFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoHeightFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoHeightFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoHeightFieldInfo = Int32+    type AttrLabel VideoInfoHeightFieldInfo = "height"+    type AttrOrigin VideoInfoHeightFieldInfo = VideoInfo+    attrGet _ = getVideoInfoHeight+    attrSet _ = setVideoInfoHeight+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_height :: AttrLabelProxy "height"+videoInfo_height = AttrLabelProxy++#endif+++{- |+Get the value of the “@size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #size+@+-}+getVideoInfoSize :: MonadIO m => VideoInfo -> m Word64+getVideoInfoSize s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word64+    return val++{- |+Set the value of the “@size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #size 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoSize :: MonadIO m => VideoInfo -> Word64 -> m ()+setVideoInfoSize s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Word64)++#if ENABLE_OVERLOADING+data VideoInfoSizeFieldInfo+instance AttrInfo VideoInfoSizeFieldInfo where+    type AttrAllowedOps VideoInfoSizeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoSizeFieldInfo = (~) Word64+    type AttrBaseTypeConstraint VideoInfoSizeFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoSizeFieldInfo = Word64+    type AttrLabel VideoInfoSizeFieldInfo = "size"+    type AttrOrigin VideoInfoSizeFieldInfo = VideoInfo+    attrGet _ = getVideoInfoSize+    attrSet _ = setVideoInfoSize+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_size :: AttrLabelProxy "size"+videoInfo_size = AttrLabelProxy++#endif+++{- |+Get the value of the “@views@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #views+@+-}+getVideoInfoViews :: MonadIO m => VideoInfo -> m Int32+getVideoInfoViews s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++{- |+Set the value of the “@views@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #views 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoViews :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoViews s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoViewsFieldInfo+instance AttrInfo VideoInfoViewsFieldInfo where+    type AttrAllowedOps VideoInfoViewsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoViewsFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoViewsFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoViewsFieldInfo = Int32+    type AttrLabel VideoInfoViewsFieldInfo = "views"+    type AttrOrigin VideoInfoViewsFieldInfo = VideoInfo+    attrGet _ = getVideoInfoViews+    attrSet _ = setVideoInfoViews+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_views :: AttrLabelProxy "views"+videoInfo_views = AttrLabelProxy++#endif+++{- |+Get the value of the “@chroma_site@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #chromaSite+@+-}+getVideoInfoChromaSite :: MonadIO m => VideoInfo -> m [GstVideo.Flags.VideoChromaSite]+getVideoInfoChromaSite s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@chroma_site@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #chromaSite 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoChromaSite :: MonadIO m => VideoInfo -> [GstVideo.Flags.VideoChromaSite] -> m ()+setVideoInfoChromaSite s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 36) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoInfoChromaSiteFieldInfo+instance AttrInfo VideoInfoChromaSiteFieldInfo where+    type AttrAllowedOps VideoInfoChromaSiteFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoChromaSiteFieldInfo = (~) [GstVideo.Flags.VideoChromaSite]+    type AttrBaseTypeConstraint VideoInfoChromaSiteFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoChromaSiteFieldInfo = [GstVideo.Flags.VideoChromaSite]+    type AttrLabel VideoInfoChromaSiteFieldInfo = "chroma_site"+    type AttrOrigin VideoInfoChromaSiteFieldInfo = VideoInfo+    attrGet _ = getVideoInfoChromaSite+    attrSet _ = setVideoInfoChromaSite+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_chromaSite :: AttrLabelProxy "chromaSite"+videoInfo_chromaSite = AttrLabelProxy++#endif+++{- |+Get the value of the “@colorimetry@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #colorimetry+@+-}+getVideoInfoColorimetry :: MonadIO m => VideoInfo -> m GstVideo.VideoColorimetry.VideoColorimetry+getVideoInfoColorimetry s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 40 :: (Ptr GstVideo.VideoColorimetry.VideoColorimetry)+    val' <- (newPtr GstVideo.VideoColorimetry.VideoColorimetry) val+    return val'++#if ENABLE_OVERLOADING+data VideoInfoColorimetryFieldInfo+instance AttrInfo VideoInfoColorimetryFieldInfo where+    type AttrAllowedOps VideoInfoColorimetryFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoInfoColorimetryFieldInfo = (~) (Ptr GstVideo.VideoColorimetry.VideoColorimetry)+    type AttrBaseTypeConstraint VideoInfoColorimetryFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoColorimetryFieldInfo = GstVideo.VideoColorimetry.VideoColorimetry+    type AttrLabel VideoInfoColorimetryFieldInfo = "colorimetry"+    type AttrOrigin VideoInfoColorimetryFieldInfo = VideoInfo+    attrGet _ = getVideoInfoColorimetry+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_colorimetry :: AttrLabelProxy "colorimetry"+videoInfo_colorimetry = AttrLabelProxy++#endif+++{- |+Get the value of the “@par_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #parN+@+-}+getVideoInfoParN :: MonadIO m => VideoInfo -> m Int32+getVideoInfoParN s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 56) :: IO Int32+    return val++{- |+Set the value of the “@par_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #parN 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoParN :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoParN s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 56) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoParNFieldInfo+instance AttrInfo VideoInfoParNFieldInfo where+    type AttrAllowedOps VideoInfoParNFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoParNFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoParNFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoParNFieldInfo = Int32+    type AttrLabel VideoInfoParNFieldInfo = "par_n"+    type AttrOrigin VideoInfoParNFieldInfo = VideoInfo+    attrGet _ = getVideoInfoParN+    attrSet _ = setVideoInfoParN+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_parN :: AttrLabelProxy "parN"+videoInfo_parN = AttrLabelProxy++#endif+++{- |+Get the value of the “@par_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #parD+@+-}+getVideoInfoParD :: MonadIO m => VideoInfo -> m Int32+getVideoInfoParD s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 60) :: IO Int32+    return val++{- |+Set the value of the “@par_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #parD 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoParD :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoParD s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 60) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoParDFieldInfo+instance AttrInfo VideoInfoParDFieldInfo where+    type AttrAllowedOps VideoInfoParDFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoParDFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoParDFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoParDFieldInfo = Int32+    type AttrLabel VideoInfoParDFieldInfo = "par_d"+    type AttrOrigin VideoInfoParDFieldInfo = VideoInfo+    attrGet _ = getVideoInfoParD+    attrSet _ = setVideoInfoParD+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_parD :: AttrLabelProxy "parD"+videoInfo_parD = AttrLabelProxy++#endif+++{- |+Get the value of the “@fps_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #fpsN+@+-}+getVideoInfoFpsN :: MonadIO m => VideoInfo -> m Int32+getVideoInfoFpsN s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 64) :: IO Int32+    return val++{- |+Set the value of the “@fps_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #fpsN 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoFpsN :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoFpsN s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 64) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoFpsNFieldInfo+instance AttrInfo VideoInfoFpsNFieldInfo where+    type AttrAllowedOps VideoInfoFpsNFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoFpsNFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoFpsNFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoFpsNFieldInfo = Int32+    type AttrLabel VideoInfoFpsNFieldInfo = "fps_n"+    type AttrOrigin VideoInfoFpsNFieldInfo = VideoInfo+    attrGet _ = getVideoInfoFpsN+    attrSet _ = setVideoInfoFpsN+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_fpsN :: AttrLabelProxy "fpsN"+videoInfo_fpsN = AttrLabelProxy++#endif+++{- |+Get the value of the “@fps_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoInfo #fpsD+@+-}+getVideoInfoFpsD :: MonadIO m => VideoInfo -> m Int32+getVideoInfoFpsD s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 68) :: IO Int32+    return val++{- |+Set the value of the “@fps_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoInfo [ #fpsD 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoInfoFpsD :: MonadIO m => VideoInfo -> Int32 -> m ()+setVideoInfoFpsD s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 68) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoInfoFpsDFieldInfo+instance AttrInfo VideoInfoFpsDFieldInfo where+    type AttrAllowedOps VideoInfoFpsDFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoInfoFpsDFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoInfoFpsDFieldInfo = (~) VideoInfo+    type AttrGetType VideoInfoFpsDFieldInfo = Int32+    type AttrLabel VideoInfoFpsDFieldInfo = "fps_d"+    type AttrOrigin VideoInfoFpsDFieldInfo = VideoInfo+    attrGet _ = getVideoInfoFpsD+    attrSet _ = setVideoInfoFpsD+    attrConstruct = undefined+    attrClear _ = undefined++videoInfo_fpsD :: AttrLabelProxy "fpsD"+videoInfo_fpsD = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoInfo:offset" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt64)"+-- XXX Skipped attribute for "VideoInfo:stride" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TInt)"++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoInfo+type instance O.AttributeList VideoInfo = VideoInfoAttributeList+type VideoInfoAttributeList = ('[ '("finfo", VideoInfoFinfoFieldInfo), '("interlaceMode", VideoInfoInterlaceModeFieldInfo), '("flags", VideoInfoFlagsFieldInfo), '("width", VideoInfoWidthFieldInfo), '("height", VideoInfoHeightFieldInfo), '("size", VideoInfoSizeFieldInfo), '("views", VideoInfoViewsFieldInfo), '("chromaSite", VideoInfoChromaSiteFieldInfo), '("colorimetry", VideoInfoColorimetryFieldInfo), '("parN", VideoInfoParNFieldInfo), '("parD", VideoInfoParDFieldInfo), '("fpsN", VideoInfoFpsNFieldInfo), '("fpsD", VideoInfoFpsDFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoInfo::new+-- method type : Constructor+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_new" gst_video_info_new :: +    IO (Ptr VideoInfo)++{- |+Allocate a new 'GI.GstVideo.Structs.VideoInfo.VideoInfo' that is also initialized with+'GI.GstVideo.Structs.VideoInfo.videoInfoInit'.++/Since: 1.6/+-}+videoInfoNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m VideoInfo+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoInfo.VideoInfo'. free with 'GI.GstVideo.Structs.VideoInfo.videoInfoFree'. -}+videoInfoNew  = liftIO $ do+    result <- gst_video_info_new+    checkUnexpectedReturnNULL "videoInfoNew" result+    result' <- (wrapBoxed VideoInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoInfo::align+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "align", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "alignment parameters", 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_video_info_align" gst_video_info_align :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr GstVideo.VideoAlignment.VideoAlignment -> -- align : TInterface (Name {namespace = "GstVideo", name = "VideoAlignment"})+    IO CInt++{- |+Adjust the offset and stride fields in /@info@/ so that the padding and+stride alignment in /@align@/ is respected.++Extra padding will be added to the right side when stride alignment padding+is required and /@align@/ will be updated with the new padding values.+-}+videoInfoAlign ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> GstVideo.VideoAlignment.VideoAlignment+    {- ^ /@align@/: alignment parameters -}+    -> m Bool+    {- ^ __Returns:__ 'False' if alignment could not be applied, e.g. because the+  size of a frame can\'t be represented as a 32 bit integer (Since: 1.12) -}+videoInfoAlign info align = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    align' <- unsafeManagedPtrGetPtr align+    result <- gst_video_info_align info' align'+    let result' = (/= 0) result+    touchManagedPtr info+    touchManagedPtr align+    return result'++#if ENABLE_OVERLOADING+data VideoInfoAlignMethodInfo+instance (signature ~ (GstVideo.VideoAlignment.VideoAlignment -> m Bool), MonadIO m) => O.MethodInfo VideoInfoAlignMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoAlign++#endif++-- method VideoInfo::convert+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_format", argType = TInterface (Name {namespace = "Gst", name = "Format"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstFormat of the @src_value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "value to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_format", argType = TInterface (Name {namespace = "Gst", name = "Format"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstFormat of the @dest_value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_value", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "pointer to destination value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_convert" gst_video_info_convert :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    CUInt ->                                -- src_format : TInterface (Name {namespace = "Gst", name = "Format"})+    Int64 ->                                -- src_value : TBasicType TInt64+    CUInt ->                                -- dest_format : TInterface (Name {namespace = "Gst", name = "Format"})+    Ptr Int64 ->                            -- dest_value : TBasicType TInt64+    IO CInt++{- |+Converts among various 'GI.Gst.Enums.Format' types.  This function handles+GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For+raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This+function can be used to handle pad queries of the type GST_QUERY_CONVERT.+-}+videoInfoConvert ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> Gst.Enums.Format+    {- ^ /@srcFormat@/: 'GI.Gst.Enums.Format' of the /@srcValue@/ -}+    -> Int64+    {- ^ /@srcValue@/: value to convert -}+    -> Gst.Enums.Format+    {- ^ /@destFormat@/: 'GI.Gst.Enums.Format' of the /@destValue@/ -}+    -> m ((Bool, Int64))+    {- ^ __Returns:__ TRUE if the conversion was successful. -}+videoInfoConvert info srcFormat srcValue destFormat = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let srcFormat' = (fromIntegral . fromEnum) srcFormat+    let destFormat' = (fromIntegral . fromEnum) destFormat+    destValue <- allocMem :: IO (Ptr Int64)+    result <- gst_video_info_convert info' srcFormat' srcValue destFormat' destValue+    let result' = (/= 0) result+    destValue' <- peek destValue+    touchManagedPtr info+    freeMem destValue+    return (result', destValue')++#if ENABLE_OVERLOADING+data VideoInfoConvertMethodInfo+instance (signature ~ (Gst.Enums.Format -> Int64 -> Gst.Enums.Format -> m ((Bool, Int64))), MonadIO m) => O.MethodInfo VideoInfoConvertMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoConvert++#endif++-- method VideoInfo::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_copy" gst_video_info_copy :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    IO (Ptr VideoInfo)++{- |+Copy a GstVideoInfo structure.++/Since: 1.6/+-}+videoInfoCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> m VideoInfo+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoInfo.VideoInfo'. free with gst_video_info_free. -}+videoInfoCopy info = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    result <- gst_video_info_copy info'+    checkUnexpectedReturnNULL "videoInfoCopy" result+    result' <- (wrapBoxed VideoInfo) result+    touchManagedPtr info+    return result'++#if ENABLE_OVERLOADING+data VideoInfoCopyMethodInfo+instance (signature ~ (m VideoInfo), MonadIO m) => O.MethodInfo VideoInfoCopyMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoCopy++#endif++-- method VideoInfo::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_free" gst_video_info_free :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    IO ()++{- |+Free a GstVideoInfo structure previously allocated with 'GI.GstVideo.Structs.VideoInfo.videoInfoNew'+or 'GI.GstVideo.Structs.VideoInfo.videoInfoCopy'.++/Since: 1.6/+-}+videoInfoFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> m ()+videoInfoFree info = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    gst_video_info_free info'+    touchManagedPtr info+    return ()++#if ENABLE_OVERLOADING+data VideoInfoFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoInfoFreeMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoFree++#endif++-- method VideoInfo::from_caps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface (Name {namespace = "Gst", name = "Caps"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstCaps", 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_video_info_from_caps" gst_video_info_from_caps :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr Gst.Caps.Caps ->                    -- caps : TInterface (Name {namespace = "Gst", name = "Caps"})+    IO CInt++{- |+Parse /@caps@/ and update /@info@/.+-}+videoInfoFromCaps ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> Gst.Caps.Caps+    {- ^ /@caps@/: a 'GI.Gst.Structs.Caps.Caps' -}+    -> m Bool+    {- ^ __Returns:__ TRUE if /@caps@/ could be parsed -}+videoInfoFromCaps info caps = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    caps' <- unsafeManagedPtrGetPtr caps+    result <- gst_video_info_from_caps info' caps'+    let result' = (/= 0) result+    touchManagedPtr info+    touchManagedPtr caps+    return result'++#if ENABLE_OVERLOADING+data VideoInfoFromCapsMethodInfo+instance (signature ~ (Gst.Caps.Caps -> m Bool), MonadIO m) => O.MethodInfo VideoInfoFromCapsMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoFromCaps++#endif++-- method VideoInfo::init+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_init" gst_video_info_init :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    IO ()++{- |+Initialize /@info@/ with default values.+-}+videoInfoInit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> m ()+videoInfoInit info = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    gst_video_info_init info'+    touchManagedPtr info+    return ()++#if ENABLE_OVERLOADING+data VideoInfoInitMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoInfoInitMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoInit++#endif++-- method VideoInfo::is_equal+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", 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_video_info_is_equal" gst_video_info_is_equal :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    Ptr VideoInfo ->                        -- other : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    IO CInt++{- |+Compares two 'GI.GstVideo.Structs.VideoInfo.VideoInfo' and returns whether they are equal or not+-}+videoInfoIsEqual ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> VideoInfo+    {- ^ /@other@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@info@/ and /@other@/ are equal, else 'False'. -}+videoInfoIsEqual info other = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    other' <- unsafeManagedPtrGetPtr other+    result <- gst_video_info_is_equal info' other'+    let result' = (/= 0) result+    touchManagedPtr info+    touchManagedPtr other+    return result'++#if ENABLE_OVERLOADING+data VideoInfoIsEqualMethodInfo+instance (signature ~ (VideoInfo -> m Bool), MonadIO m) => O.MethodInfo VideoInfoIsEqualMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoIsEqual++#endif++-- method VideoInfo::set_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the format", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a height", 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_video_info_set_format" gst_video_info_set_format :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    IO CInt++{- |+Set the default info for a video frame of /@format@/ and /@width@/ and /@height@/.++Note: This initializes /@info@/ first, no values are preserved. This function+does not set the offsets correctly for interlaced vertically+subsampled formats.+-}+videoInfoSetFormat ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: the format -}+    -> Word32+    {- ^ /@width@/: a width -}+    -> Word32+    {- ^ /@height@/: a height -}+    -> m Bool+    {- ^ __Returns:__ 'False' if the returned video info is invalid, e.g. because the+  size of a frame can\'t be represented as a 32 bit integer (Since: 1.12) -}+videoInfoSetFormat info format width height = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let format' = (fromIntegral . fromEnum) format+    result <- gst_video_info_set_format info' format' width height+    let result' = (/= 0) result+    touchManagedPtr info+    return result'++#if ENABLE_OVERLOADING+data VideoInfoSetFormatMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> Word32 -> Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoInfoSetFormatMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoSetFormat++#endif++-- method VideoInfo::set_interlaced_format+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the format", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInterlaceMode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInterlaceMode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a height", 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_video_info_set_interlaced_format" gst_video_info_set_interlaced_format :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    CUInt ->                                -- mode : TInterface (Name {namespace = "GstVideo", name = "VideoInterlaceMode"})+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    IO CInt++{- |+Same as @/gst_video_info_set_format/@ but also allowing to set the interlaced+mode.++/Since: 1.16/+-}+videoInfoSetInterlacedFormat ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: the format -}+    -> GstVideo.Enums.VideoInterlaceMode+    {- ^ /@mode@/: a 'GI.GstVideo.Enums.VideoInterlaceMode' -}+    -> Word32+    {- ^ /@width@/: a width -}+    -> Word32+    {- ^ /@height@/: a height -}+    -> m Bool+    {- ^ __Returns:__ 'False' if the returned video info is invalid, e.g. because the+  size of a frame can\'t be represented as a 32 bit integer. -}+videoInfoSetInterlacedFormat info format mode width height = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    let format' = (fromIntegral . fromEnum) format+    let mode' = (fromIntegral . fromEnum) mode+    result <- gst_video_info_set_interlaced_format info' format' mode' width height+    let result' = (/= 0) result+    touchManagedPtr info+    return result'++#if ENABLE_OVERLOADING+data VideoInfoSetInterlacedFormatMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> GstVideo.Enums.VideoInterlaceMode -> Word32 -> Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoInfoSetInterlacedFormatMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoSetInterlacedFormat++#endif++-- method VideoInfo::to_caps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "info", argType = TInterface (Name {namespace = "GstVideo", name = "VideoInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Caps"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_info_to_caps" gst_video_info_to_caps :: +    Ptr VideoInfo ->                        -- info : TInterface (Name {namespace = "GstVideo", name = "VideoInfo"})+    IO (Ptr Gst.Caps.Caps)++{- |+Convert the values of /@info@/ into a 'GI.Gst.Structs.Caps.Caps'.+-}+videoInfoToCaps ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoInfo+    {- ^ /@info@/: a 'GI.GstVideo.Structs.VideoInfo.VideoInfo' -}+    -> m Gst.Caps.Caps+    {- ^ __Returns:__ a new 'GI.Gst.Structs.Caps.Caps' containing the info of /@info@/. -}+videoInfoToCaps info = liftIO $ do+    info' <- unsafeManagedPtrGetPtr info+    result <- gst_video_info_to_caps info'+    checkUnexpectedReturnNULL "videoInfoToCaps" result+    result' <- (wrapBoxed Gst.Caps.Caps) result+    touchManagedPtr info+    return result'++#if ENABLE_OVERLOADING+data VideoInfoToCapsMethodInfo+instance (signature ~ (m Gst.Caps.Caps), MonadIO m) => O.MethodInfo VideoInfoToCapsMethodInfo VideoInfo signature where+    overloadedMethod _ = videoInfoToCaps++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoInfoMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoInfoMethod "align" o = VideoInfoAlignMethodInfo+    ResolveVideoInfoMethod "convert" o = VideoInfoConvertMethodInfo+    ResolveVideoInfoMethod "copy" o = VideoInfoCopyMethodInfo+    ResolveVideoInfoMethod "free" o = VideoInfoFreeMethodInfo+    ResolveVideoInfoMethod "fromCaps" o = VideoInfoFromCapsMethodInfo+    ResolveVideoInfoMethod "init" o = VideoInfoInitMethodInfo+    ResolveVideoInfoMethod "isEqual" o = VideoInfoIsEqualMethodInfo+    ResolveVideoInfoMethod "toCaps" o = VideoInfoToCapsMethodInfo+    ResolveVideoInfoMethod "setFormat" o = VideoInfoSetFormatMethodInfo+    ResolveVideoInfoMethod "setInterlacedFormat" o = VideoInfoSetInterlacedFormatMethodInfo+    ResolveVideoInfoMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoInfoMethod t VideoInfo, O.MethodInfo info VideoInfo p) => OL.IsLabel t (VideoInfo -> 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++
+ GI/GstVideo/Structs/VideoInfo.hs-boot view
@@ -0,0 +1,56 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoInfo 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++newtype VideoInfo = VideoInfo (ManagedPtr VideoInfo)+instance BoxedObject VideoInfo where+#if ENABLE_OVERLOADING+data VideoInfoAlignMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoConvertMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoFromCapsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoInitMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoIsEqualMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoSetFormatMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoSetInterlacedFormatMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoInfoToCapsMethodInfo+#endif
+ GI/GstVideo/Structs/VideoMeta.hs view
@@ -0,0 +1,842 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata describing image properties+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoMeta+    ( ++-- * Exported types+    VideoMeta(..)                           ,+    newZeroVideoMeta                        ,+    noVideoMeta                             ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoMetaGetInfo                        ,+++-- ** map #method:map#++#if ENABLE_OVERLOADING+    VideoMetaMapMethodInfo                  ,+#endif+    videoMetaMap                            ,+++-- ** unmap #method:unmap#++#if ENABLE_OVERLOADING+    VideoMetaUnmapMethodInfo                ,+#endif+    videoMetaUnmap                          ,+++++ -- * Properties+-- ** buffer #attr:buffer#+{- | the buffer this metadata belongs to+-}+    clearVideoMetaBuffer                    ,+    getVideoMetaBuffer                      ,+    setVideoMetaBuffer                      ,+#if ENABLE_OVERLOADING+    videoMeta_buffer                        ,+#endif+++-- ** flags #attr:flags#+{- | additional video flags+-}+    getVideoMetaFlags                       ,+    setVideoMetaFlags                       ,+#if ENABLE_OVERLOADING+    videoMeta_flags                         ,+#endif+++-- ** format #attr:format#+{- | the video format+-}+    getVideoMetaFormat                      ,+    setVideoMetaFormat                      ,+#if ENABLE_OVERLOADING+    videoMeta_format                        ,+#endif+++-- ** height #attr:height#+{- | the video height+-}+    getVideoMetaHeight                      ,+    setVideoMetaHeight                      ,+#if ENABLE_OVERLOADING+    videoMeta_height                        ,+#endif+++-- ** id #attr:id#+{- | identifier of the frame+-}+    getVideoMetaId                          ,+    setVideoMetaId                          ,+#if ENABLE_OVERLOADING+    videoMeta_id                            ,+#endif+++-- ** map #attr:map#+{- | /No description available in the introspection data./+-}+    clearVideoMetaMap                       ,+    getVideoMetaMap                         ,+    setVideoMetaMap                         ,+#if ENABLE_OVERLOADING+    videoMeta_map                           ,+#endif+++-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoMetaMeta                        ,+#if ENABLE_OVERLOADING+    videoMeta_meta                          ,+#endif+++-- ** nPlanes #attr:nPlanes#+{- | the number of planes in the image+-}+    getVideoMetaNPlanes                     ,+    setVideoMetaNPlanes                     ,+#if ENABLE_OVERLOADING+    videoMeta_nPlanes                       ,+#endif+++-- ** unmap #attr:unmap#+{- | /No description available in the introspection data./+-}+    clearVideoMetaUnmap                     ,+    getVideoMetaUnmap                       ,+    setVideoMetaUnmap                       ,+#if ENABLE_OVERLOADING+    videoMeta_unmap                         ,+#endif+++-- ** width #attr:width#+{- | the video width+-}+    getVideoMetaWidth                       ,+    setVideoMetaWidth                       ,+#if ENABLE_OVERLOADING+    videoMeta_width                         ,+#endif+++++    ) 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.Gst.Flags as Gst.Flags+import qualified GI.Gst.Structs.Buffer as Gst.Buffer+import qualified GI.Gst.Structs.MapInfo as Gst.MapInfo+import qualified GI.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import qualified GI.GstVideo.Callbacks as GstVideo.Callbacks+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags++-- | Memory-managed wrapper type.+newtype VideoMeta = VideoMeta (ManagedPtr VideoMeta)+instance WrappedPtr VideoMeta where+    wrappedPtrCalloc = callocBytes 112+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 112 >=> wrapPtr VideoMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoMeta` struct initialized to zero.+newZeroVideoMeta :: MonadIO m => m VideoMeta+newZeroVideoMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoMeta++instance tag ~ 'AttrSet => Constructible VideoMeta tag where+    new _ attrs = do+        o <- newZeroVideoMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoMeta`.+noVideoMeta :: Maybe VideoMeta+noVideoMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #meta+@+-}+getVideoMetaMeta :: MonadIO m => VideoMeta -> m Gst.Meta.Meta+getVideoMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoMetaMetaFieldInfo+instance AttrInfo VideoMetaMetaFieldInfo where+    type AttrAllowedOps VideoMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoMetaMetaFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoMetaMetaFieldInfo = VideoMeta+    attrGet _ = getVideoMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_meta :: AttrLabelProxy "meta"+videoMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #buffer+@+-}+getVideoMetaBuffer :: MonadIO m => VideoMeta -> m (Maybe Gst.Buffer.Buffer)+getVideoMetaBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Gst.Buffer.Buffer)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed Gst.Buffer.Buffer) val'+        return val''+    return result++{- |+Set the value of the “@buffer@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #buffer 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaBuffer :: MonadIO m => VideoMeta -> Ptr Gst.Buffer.Buffer -> m ()+setVideoMetaBuffer s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Ptr Gst.Buffer.Buffer)++{- |+Set the value of the “@buffer@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #buffer+@+-}+clearVideoMetaBuffer :: MonadIO m => VideoMeta -> m ()+clearVideoMetaBuffer s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr Gst.Buffer.Buffer)++#if ENABLE_OVERLOADING+data VideoMetaBufferFieldInfo+instance AttrInfo VideoMetaBufferFieldInfo where+    type AttrAllowedOps VideoMetaBufferFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoMetaBufferFieldInfo = (~) (Ptr Gst.Buffer.Buffer)+    type AttrBaseTypeConstraint VideoMetaBufferFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaBufferFieldInfo = Maybe Gst.Buffer.Buffer+    type AttrLabel VideoMetaBufferFieldInfo = "buffer"+    type AttrOrigin VideoMetaBufferFieldInfo = VideoMeta+    attrGet _ = getVideoMetaBuffer+    attrSet _ = setVideoMetaBuffer+    attrConstruct = undefined+    attrClear _ = clearVideoMetaBuffer++videoMeta_buffer :: AttrLabelProxy "buffer"+videoMeta_buffer = AttrLabelProxy++#endif+++{- |+Get the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #flags+@+-}+getVideoMetaFlags :: MonadIO m => VideoMeta -> m [GstVideo.Flags.VideoFrameFlags]+getVideoMetaFlags s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #flags 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaFlags :: MonadIO m => VideoMeta -> [GstVideo.Flags.VideoFrameFlags] -> m ()+setVideoMetaFlags s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 24) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoMetaFlagsFieldInfo+instance AttrInfo VideoMetaFlagsFieldInfo where+    type AttrAllowedOps VideoMetaFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaFlagsFieldInfo = (~) [GstVideo.Flags.VideoFrameFlags]+    type AttrBaseTypeConstraint VideoMetaFlagsFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaFlagsFieldInfo = [GstVideo.Flags.VideoFrameFlags]+    type AttrLabel VideoMetaFlagsFieldInfo = "flags"+    type AttrOrigin VideoMetaFlagsFieldInfo = VideoMeta+    attrGet _ = getVideoMetaFlags+    attrSet _ = setVideoMetaFlags+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_flags :: AttrLabelProxy "flags"+videoMeta_flags = AttrLabelProxy++#endif+++{- |+Get the value of the “@format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #format+@+-}+getVideoMetaFormat :: MonadIO m => VideoMeta -> m GstVideo.Enums.VideoFormat+getVideoMetaFormat s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO CUInt+    let val' = (toEnum . fromIntegral) val+    return val'++{- |+Set the value of the “@format@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #format 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaFormat :: MonadIO m => VideoMeta -> GstVideo.Enums.VideoFormat -> m ()+setVideoMetaFormat s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = (fromIntegral . fromEnum) val+    poke (ptr `plusPtr` 28) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoMetaFormatFieldInfo+instance AttrInfo VideoMetaFormatFieldInfo where+    type AttrAllowedOps VideoMetaFormatFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaFormatFieldInfo = (~) GstVideo.Enums.VideoFormat+    type AttrBaseTypeConstraint VideoMetaFormatFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaFormatFieldInfo = GstVideo.Enums.VideoFormat+    type AttrLabel VideoMetaFormatFieldInfo = "format"+    type AttrOrigin VideoMetaFormatFieldInfo = VideoMeta+    attrGet _ = getVideoMetaFormat+    attrSet _ = setVideoMetaFormat+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_format :: AttrLabelProxy "format"+videoMeta_format = AttrLabelProxy++#endif+++{- |+Get the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #id+@+-}+getVideoMetaId :: MonadIO m => VideoMeta -> m Int32+getVideoMetaId s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Int32+    return val++{- |+Set the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #id 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaId :: MonadIO m => VideoMeta -> Int32 -> m ()+setVideoMetaId s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoMetaIdFieldInfo+instance AttrInfo VideoMetaIdFieldInfo where+    type AttrAllowedOps VideoMetaIdFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaIdFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoMetaIdFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaIdFieldInfo = Int32+    type AttrLabel VideoMetaIdFieldInfo = "id"+    type AttrOrigin VideoMetaIdFieldInfo = VideoMeta+    attrGet _ = getVideoMetaId+    attrSet _ = setVideoMetaId+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_id :: AttrLabelProxy "id"+videoMeta_id = AttrLabelProxy++#endif+++{- |+Get the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #width+@+-}+getVideoMetaWidth :: MonadIO m => VideoMeta -> m Word32+getVideoMetaWidth s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Word32+    return val++{- |+Set the value of the “@width@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #width 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaWidth :: MonadIO m => VideoMeta -> Word32 -> m ()+setVideoMetaWidth s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 36) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoMetaWidthFieldInfo+instance AttrInfo VideoMetaWidthFieldInfo where+    type AttrAllowedOps VideoMetaWidthFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaWidthFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoMetaWidthFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaWidthFieldInfo = Word32+    type AttrLabel VideoMetaWidthFieldInfo = "width"+    type AttrOrigin VideoMetaWidthFieldInfo = VideoMeta+    attrGet _ = getVideoMetaWidth+    attrSet _ = setVideoMetaWidth+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_width :: AttrLabelProxy "width"+videoMeta_width = AttrLabelProxy++#endif+++{- |+Get the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #height+@+-}+getVideoMetaHeight :: MonadIO m => VideoMeta -> m Word32+getVideoMetaHeight s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO Word32+    return val++{- |+Set the value of the “@height@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #height 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaHeight :: MonadIO m => VideoMeta -> Word32 -> m ()+setVideoMetaHeight s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 40) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoMetaHeightFieldInfo+instance AttrInfo VideoMetaHeightFieldInfo where+    type AttrAllowedOps VideoMetaHeightFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaHeightFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoMetaHeightFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaHeightFieldInfo = Word32+    type AttrLabel VideoMetaHeightFieldInfo = "height"+    type AttrOrigin VideoMetaHeightFieldInfo = VideoMeta+    attrGet _ = getVideoMetaHeight+    attrSet _ = setVideoMetaHeight+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_height :: AttrLabelProxy "height"+videoMeta_height = AttrLabelProxy++#endif+++{- |+Get the value of the “@n_planes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #nPlanes+@+-}+getVideoMetaNPlanes :: MonadIO m => VideoMeta -> m Word32+getVideoMetaNPlanes s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 44) :: IO Word32+    return val++{- |+Set the value of the “@n_planes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #nPlanes 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaNPlanes :: MonadIO m => VideoMeta -> Word32 -> m ()+setVideoMetaNPlanes s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 44) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoMetaNPlanesFieldInfo+instance AttrInfo VideoMetaNPlanesFieldInfo where+    type AttrAllowedOps VideoMetaNPlanesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoMetaNPlanesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoMetaNPlanesFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaNPlanesFieldInfo = Word32+    type AttrLabel VideoMetaNPlanesFieldInfo = "n_planes"+    type AttrOrigin VideoMetaNPlanesFieldInfo = VideoMeta+    attrGet _ = getVideoMetaNPlanes+    attrSet _ = setVideoMetaNPlanes+    attrConstruct = undefined+    attrClear _ = undefined++videoMeta_nPlanes :: AttrLabelProxy "nPlanes"+videoMeta_nPlanes = AttrLabelProxy++#endif+++-- XXX Skipped attribute for "VideoMeta:offset" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TUInt64)"+-- XXX Skipped attribute for "VideoMeta:stride" :: Not implemented: "Don't know how to unpack C array of type TCArray False 4 (-1) (TBasicType TInt)"+{- |+Get the value of the “@map@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #map+@+-}+getVideoMetaMap :: MonadIO m => VideoMeta -> m (Maybe GstVideo.Callbacks.VideoMetaMapFieldCallback)+getVideoMetaMap s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 96) :: IO (FunPtr GstVideo.Callbacks.C_VideoMetaMapFieldCallback)+    result <- SP.convertFunPtrIfNonNull val $ \val' -> do+        let val'' = GstVideo.Callbacks.dynamic_VideoMetaMapFieldCallback val'+        return val''+    return result++{- |+Set the value of the “@map@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #map 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaMap :: MonadIO m => VideoMeta -> FunPtr GstVideo.Callbacks.C_VideoMetaMapFieldCallback -> m ()+setVideoMetaMap s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 96) (val :: FunPtr GstVideo.Callbacks.C_VideoMetaMapFieldCallback)++{- |+Set the value of the “@map@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #map+@+-}+clearVideoMetaMap :: MonadIO m => VideoMeta -> m ()+clearVideoMetaMap s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 96) (FP.nullFunPtr :: FunPtr GstVideo.Callbacks.C_VideoMetaMapFieldCallback)++#if ENABLE_OVERLOADING+data VideoMetaMapFieldInfo+instance AttrInfo VideoMetaMapFieldInfo where+    type AttrAllowedOps VideoMetaMapFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoMetaMapFieldInfo = (~) (FunPtr GstVideo.Callbacks.C_VideoMetaMapFieldCallback)+    type AttrBaseTypeConstraint VideoMetaMapFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaMapFieldInfo = Maybe GstVideo.Callbacks.VideoMetaMapFieldCallback+    type AttrLabel VideoMetaMapFieldInfo = "map"+    type AttrOrigin VideoMetaMapFieldInfo = VideoMeta+    attrGet _ = getVideoMetaMap+    attrSet _ = setVideoMetaMap+    attrConstruct = undefined+    attrClear _ = clearVideoMetaMap++videoMeta_map :: AttrLabelProxy "map"+videoMeta_map = AttrLabelProxy++#endif+++{- |+Get the value of the “@unmap@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMeta #unmap+@+-}+getVideoMetaUnmap :: MonadIO m => VideoMeta -> m (Maybe GstVideo.Callbacks.VideoMetaUnmapFieldCallback)+getVideoMetaUnmap s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 104) :: IO (FunPtr GstVideo.Callbacks.C_VideoMetaUnmapFieldCallback)+    result <- SP.convertFunPtrIfNonNull val $ \val' -> do+        let val'' = GstVideo.Callbacks.dynamic_VideoMetaUnmapFieldCallback val'+        return val''+    return result++{- |+Set the value of the “@unmap@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMeta [ #unmap 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaUnmap :: MonadIO m => VideoMeta -> FunPtr GstVideo.Callbacks.C_VideoMetaUnmapFieldCallback -> m ()+setVideoMetaUnmap s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 104) (val :: FunPtr GstVideo.Callbacks.C_VideoMetaUnmapFieldCallback)++{- |+Set the value of the “@unmap@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #unmap+@+-}+clearVideoMetaUnmap :: MonadIO m => VideoMeta -> m ()+clearVideoMetaUnmap s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 104) (FP.nullFunPtr :: FunPtr GstVideo.Callbacks.C_VideoMetaUnmapFieldCallback)++#if ENABLE_OVERLOADING+data VideoMetaUnmapFieldInfo+instance AttrInfo VideoMetaUnmapFieldInfo where+    type AttrAllowedOps VideoMetaUnmapFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoMetaUnmapFieldInfo = (~) (FunPtr GstVideo.Callbacks.C_VideoMetaUnmapFieldCallback)+    type AttrBaseTypeConstraint VideoMetaUnmapFieldInfo = (~) VideoMeta+    type AttrGetType VideoMetaUnmapFieldInfo = Maybe GstVideo.Callbacks.VideoMetaUnmapFieldCallback+    type AttrLabel VideoMetaUnmapFieldInfo = "unmap"+    type AttrOrigin VideoMetaUnmapFieldInfo = VideoMeta+    attrGet _ = getVideoMetaUnmap+    attrSet _ = setVideoMetaUnmap+    attrConstruct = undefined+    attrClear _ = clearVideoMetaUnmap++videoMeta_unmap :: AttrLabelProxy "unmap"+videoMeta_unmap = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoMeta+type instance O.AttributeList VideoMeta = VideoMetaAttributeList+type VideoMetaAttributeList = ('[ '("meta", VideoMetaMetaFieldInfo), '("buffer", VideoMetaBufferFieldInfo), '("flags", VideoMetaFlagsFieldInfo), '("format", VideoMetaFormatFieldInfo), '("id", VideoMetaIdFieldInfo), '("width", VideoMetaWidthFieldInfo), '("height", VideoMetaHeightFieldInfo), '("nPlanes", VideoMetaNPlanesFieldInfo), '("map", VideoMetaMapFieldInfo), '("unmap", VideoMetaUnmapFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoMeta::map+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstMapInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TPtr, direction = DirectionOut, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the data of @plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stride", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the stride of @plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gst", name = "MapFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "@GstMapFlags", 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_video_meta_map" gst_video_meta_map :: +    Ptr VideoMeta ->                        -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoMeta"})+    Word32 ->                               -- plane : TBasicType TUInt+    Ptr Gst.MapInfo.MapInfo ->              -- info : TInterface (Name {namespace = "Gst", name = "MapInfo"})+    Ptr (Ptr ()) ->                         -- data : TBasicType TPtr+    Ptr Int32 ->                            -- stride : TBasicType TInt+    CUInt ->                                -- flags : TInterface (Name {namespace = "Gst", name = "MapFlags"})+    IO CInt++{- |+Map the video plane with index /@plane@/ in /@meta@/ and return a pointer to the+first byte of the plane and the stride of the plane.+-}+videoMetaMap ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoMeta.VideoMeta' -}+    -> Word32+    {- ^ /@plane@/: a plane -}+    -> Gst.MapInfo.MapInfo+    {- ^ /@info@/: a 'GI.Gst.Structs.MapInfo.MapInfo' -}+    -> [Gst.Flags.MapFlags]+    {- ^ /@flags@/: /@gstMapFlags@/ -}+    -> m ((Bool, Ptr (), Int32))+    {- ^ __Returns:__ TRUE if the map operation was successful. -}+videoMetaMap meta plane info flags = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    info' <- unsafeManagedPtrGetPtr info+    data_ <- allocMem :: IO (Ptr (Ptr ()))+    stride <- allocMem :: IO (Ptr Int32)+    let flags' = gflagsToWord flags+    result <- gst_video_meta_map meta' plane info' data_ stride flags'+    let result' = (/= 0) result+    data_' <- peek data_+    stride' <- peek stride+    touchManagedPtr meta+    touchManagedPtr info+    freeMem data_+    freeMem stride+    return (result', data_', stride')++#if ENABLE_OVERLOADING+data VideoMetaMapMethodInfo+instance (signature ~ (Word32 -> Gst.MapInfo.MapInfo -> [Gst.Flags.MapFlags] -> m ((Bool, Ptr (), Int32))), MonadIO m) => O.MethodInfo VideoMetaMapMethodInfo VideoMeta signature where+    overloadedMethod _ = videoMetaMap++#endif++-- method VideoMeta::unmap+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plane", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a plane", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface (Name {namespace = "Gst", name = "MapInfo"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstMapInfo", 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_video_meta_unmap" gst_video_meta_unmap :: +    Ptr VideoMeta ->                        -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoMeta"})+    Word32 ->                               -- plane : TBasicType TUInt+    Ptr Gst.MapInfo.MapInfo ->              -- info : TInterface (Name {namespace = "Gst", name = "MapInfo"})+    IO CInt++{- |+Unmap a previously mapped plane with 'GI.GstVideo.Structs.VideoMeta.videoMetaMap'.+-}+videoMetaUnmap ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoMeta.VideoMeta' -}+    -> Word32+    {- ^ /@plane@/: a plane -}+    -> Gst.MapInfo.MapInfo+    {- ^ /@info@/: a 'GI.Gst.Structs.MapInfo.MapInfo' -}+    -> m Bool+    {- ^ __Returns:__ TRUE if the memory was successfully unmapped. -}+videoMetaUnmap meta plane info = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    info' <- unsafeManagedPtrGetPtr info+    result <- gst_video_meta_unmap meta' plane info'+    let result' = (/= 0) result+    touchManagedPtr meta+    touchManagedPtr info+    return result'++#if ENABLE_OVERLOADING+data VideoMetaUnmapMethodInfo+instance (signature ~ (Word32 -> Gst.MapInfo.MapInfo -> m Bool), MonadIO m) => O.MethodInfo VideoMetaUnmapMethodInfo VideoMeta signature where+    overloadedMethod _ = videoMetaUnmap++#endif++-- method VideoMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_meta_get_info" gst_video_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoMetaGetInfo  = liftIO $ do+    result <- gst_video_meta_get_info+    checkUnexpectedReturnNULL "videoMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoMetaMethod "map" o = VideoMetaMapMethodInfo+    ResolveVideoMetaMethod "unmap" o = VideoMetaUnmapMethodInfo+    ResolveVideoMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoMetaMethod t VideoMeta, O.MethodInfo info VideoMeta p) => OL.IsLabel t (VideoMeta -> 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++
+ GI/GstVideo/Structs/VideoMeta.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoMeta 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++newtype VideoMeta = VideoMeta (ManagedPtr VideoMeta)+instance WrappedPtr VideoMeta where+#if ENABLE_OVERLOADING+data VideoMetaMapMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoMetaUnmapMethodInfo+#endif
+ GI/GstVideo/Structs/VideoMetaTransform.hs view
@@ -0,0 +1,268 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra data passed to a video transform 'GI.Gst.Callbacks.MetaTransformFunction' such as:+\"gst-video-scale\".+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoMetaTransform+    ( ++-- * Exported types+    VideoMetaTransform(..)                  ,+    newZeroVideoMetaTransform               ,+    noVideoMetaTransform                    ,+++ -- * Methods+-- ** scaleGetQuark #method:scaleGetQuark#++    videoMetaTransformScaleGetQuark         ,+++++ -- * Properties+-- ** inInfo #attr:inInfo#+{- | the input 'GI.GstVideo.Structs.VideoInfo.VideoInfo'+-}+    clearVideoMetaTransformInInfo           ,+    getVideoMetaTransformInInfo             ,+    setVideoMetaTransformInInfo             ,+#if ENABLE_OVERLOADING+    videoMetaTransform_inInfo               ,+#endif+++-- ** outInfo #attr:outInfo#+{- | the output 'GI.GstVideo.Structs.VideoInfo.VideoInfo'+-}+    clearVideoMetaTransformOutInfo          ,+    getVideoMetaTransformOutInfo            ,+    setVideoMetaTransformOutInfo            ,+#if ENABLE_OVERLOADING+    videoMetaTransform_outInfo              ,+#endif+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoInfo as GstVideo.VideoInfo++-- | Memory-managed wrapper type.+newtype VideoMetaTransform = VideoMetaTransform (ManagedPtr VideoMetaTransform)+instance WrappedPtr VideoMetaTransform where+    wrappedPtrCalloc = callocBytes 16+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 16 >=> wrapPtr VideoMetaTransform)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoMetaTransform` struct initialized to zero.+newZeroVideoMetaTransform :: MonadIO m => m VideoMetaTransform+newZeroVideoMetaTransform = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoMetaTransform++instance tag ~ 'AttrSet => Constructible VideoMetaTransform tag where+    new _ attrs = do+        o <- newZeroVideoMetaTransform+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoMetaTransform`.+noVideoMetaTransform :: Maybe VideoMetaTransform+noVideoMetaTransform = Nothing++{- |+Get the value of the “@in_info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMetaTransform #inInfo+@+-}+getVideoMetaTransformInInfo :: MonadIO m => VideoMetaTransform -> m (Maybe GstVideo.VideoInfo.VideoInfo)+getVideoMetaTransformInInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr GstVideo.VideoInfo.VideoInfo)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed GstVideo.VideoInfo.VideoInfo) val'+        return val''+    return result++{- |+Set the value of the “@in_info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMetaTransform [ #inInfo 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaTransformInInfo :: MonadIO m => VideoMetaTransform -> Ptr GstVideo.VideoInfo.VideoInfo -> m ()+setVideoMetaTransformInInfo s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Ptr GstVideo.VideoInfo.VideoInfo)++{- |+Set the value of the “@in_info@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #inInfo+@+-}+clearVideoMetaTransformInInfo :: MonadIO m => VideoMetaTransform -> m ()+clearVideoMetaTransformInInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (FP.nullPtr :: Ptr GstVideo.VideoInfo.VideoInfo)++#if ENABLE_OVERLOADING+data VideoMetaTransformInInfoFieldInfo+instance AttrInfo VideoMetaTransformInInfoFieldInfo where+    type AttrAllowedOps VideoMetaTransformInInfoFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoMetaTransformInInfoFieldInfo = (~) (Ptr GstVideo.VideoInfo.VideoInfo)+    type AttrBaseTypeConstraint VideoMetaTransformInInfoFieldInfo = (~) VideoMetaTransform+    type AttrGetType VideoMetaTransformInInfoFieldInfo = Maybe GstVideo.VideoInfo.VideoInfo+    type AttrLabel VideoMetaTransformInInfoFieldInfo = "in_info"+    type AttrOrigin VideoMetaTransformInInfoFieldInfo = VideoMetaTransform+    attrGet _ = getVideoMetaTransformInInfo+    attrSet _ = setVideoMetaTransformInInfo+    attrConstruct = undefined+    attrClear _ = clearVideoMetaTransformInInfo++videoMetaTransform_inInfo :: AttrLabelProxy "inInfo"+videoMetaTransform_inInfo = AttrLabelProxy++#endif+++{- |+Get the value of the “@out_info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoMetaTransform #outInfo+@+-}+getVideoMetaTransformOutInfo :: MonadIO m => VideoMetaTransform -> m (Maybe GstVideo.VideoInfo.VideoInfo)+getVideoMetaTransformOutInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr GstVideo.VideoInfo.VideoInfo)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed GstVideo.VideoInfo.VideoInfo) val'+        return val''+    return result++{- |+Set the value of the “@out_info@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoMetaTransform [ #outInfo 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoMetaTransformOutInfo :: MonadIO m => VideoMetaTransform -> Ptr GstVideo.VideoInfo.VideoInfo -> m ()+setVideoMetaTransformOutInfo s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Ptr GstVideo.VideoInfo.VideoInfo)++{- |+Set the value of the “@out_info@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #outInfo+@+-}+clearVideoMetaTransformOutInfo :: MonadIO m => VideoMetaTransform -> m ()+clearVideoMetaTransformOutInfo s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (FP.nullPtr :: Ptr GstVideo.VideoInfo.VideoInfo)++#if ENABLE_OVERLOADING+data VideoMetaTransformOutInfoFieldInfo+instance AttrInfo VideoMetaTransformOutInfoFieldInfo where+    type AttrAllowedOps VideoMetaTransformOutInfoFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoMetaTransformOutInfoFieldInfo = (~) (Ptr GstVideo.VideoInfo.VideoInfo)+    type AttrBaseTypeConstraint VideoMetaTransformOutInfoFieldInfo = (~) VideoMetaTransform+    type AttrGetType VideoMetaTransformOutInfoFieldInfo = Maybe GstVideo.VideoInfo.VideoInfo+    type AttrLabel VideoMetaTransformOutInfoFieldInfo = "out_info"+    type AttrOrigin VideoMetaTransformOutInfoFieldInfo = VideoMetaTransform+    attrGet _ = getVideoMetaTransformOutInfo+    attrSet _ = setVideoMetaTransformOutInfo+    attrConstruct = undefined+    attrClear _ = clearVideoMetaTransformOutInfo++videoMetaTransform_outInfo :: AttrLabelProxy "outInfo"+videoMetaTransform_outInfo = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoMetaTransform+type instance O.AttributeList VideoMetaTransform = VideoMetaTransformAttributeList+type VideoMetaTransformAttributeList = ('[ '("inInfo", VideoMetaTransformInInfoFieldInfo), '("outInfo", VideoMetaTransformOutInfoFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoMetaTransform::scale_get_quark+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TBasicType TUInt32)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_meta_transform_scale_get_quark" gst_video_meta_transform_scale_get_quark :: +    IO Word32++{- |+Get the @/GQuark/@ for the \"gst-video-scale\" metadata transform operation.+-}+videoMetaTransformScaleGetQuark ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Word32+    {- ^ __Returns:__ a @/GQuark/@ -}+videoMetaTransformScaleGetQuark  = liftIO $ do+    result <- gst_video_meta_transform_scale_get_quark+    return result++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoMetaTransformMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoMetaTransformMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoMetaTransformMethod t VideoMetaTransform, O.MethodInfo info VideoMetaTransform p) => OL.IsLabel t (VideoMetaTransform -> 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++
+ GI/GstVideo/Structs/VideoMetaTransform.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoMetaTransform 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++newtype VideoMetaTransform = VideoMetaTransform (ManagedPtr VideoMetaTransform)+instance WrappedPtr VideoMetaTransform where
+ GI/GstVideo/Structs/VideoOverlayComposition.hs view
@@ -0,0 +1,486 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Functions to create and handle overlay compositions on video buffers.++An overlay composition describes one or more overlay rectangles to be+blended on top of a video buffer.++This API serves two main purposes:++* it can be used to attach overlay information (subtitles or logos)+  to non-raw video buffers such as GL\/VAAPI\/VDPAU surfaces. The actual+  blending of the overlay can then be done by e.g. the video sink that+  processes these non-raw buffers.++* it can also be used to blend overlay rectangles on top of raw video+  buffers, thus consolidating blending functionality for raw video in+  one place.++Together, this allows existing overlay elements to easily handle raw+and non-raw video as input in without major changes (once the overlays+have been put into a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' object anyway) - for raw+video the overlay can just use the blending function to blend the data+on top of the video, and for surface buffers it can just attach them to+the buffer and let the sink render the overlays.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoOverlayComposition+    ( ++-- * Exported types+    VideoOverlayComposition(..)             ,+    noVideoOverlayComposition               ,+++ -- * Methods+-- ** addRectangle #method:addRectangle#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionAddRectangleMethodInfo,+#endif+    videoOverlayCompositionAddRectangle     ,+++-- ** blend #method:blend#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionBlendMethodInfo  ,+#endif+    videoOverlayCompositionBlend            ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionCopyMethodInfo   ,+#endif+    videoOverlayCompositionCopy             ,+++-- ** getRectangle #method:getRectangle#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionGetRectangleMethodInfo,+#endif+    videoOverlayCompositionGetRectangle     ,+++-- ** getSeqnum #method:getSeqnum#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionGetSeqnumMethodInfo,+#endif+    videoOverlayCompositionGetSeqnum        ,+++-- ** makeWritable #method:makeWritable#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionMakeWritableMethodInfo,+#endif+    videoOverlayCompositionMakeWritable     ,+++-- ** nRectangles #method:nRectangles#++#if ENABLE_OVERLOADING+    VideoOverlayCompositionNRectanglesMethodInfo,+#endif+    videoOverlayCompositionNRectangles      ,+++-- ** new #method:new#++    videoOverlayCompositionNew              ,+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoFrame as GstVideo.VideoFrame+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoOverlayRectangle as GstVideo.VideoOverlayRectangle++-- | Memory-managed wrapper type.+newtype VideoOverlayComposition = VideoOverlayComposition (ManagedPtr VideoOverlayComposition)+foreign import ccall "gst_video_overlay_composition_get_type" c_gst_video_overlay_composition_get_type :: +    IO GType++instance BoxedObject VideoOverlayComposition where+    boxedType _ = c_gst_video_overlay_composition_get_type++-- | A convenience alias for `Nothing` :: `Maybe` `VideoOverlayComposition`.+noVideoOverlayComposition :: Maybe VideoOverlayComposition+noVideoOverlayComposition = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoOverlayComposition+type instance O.AttributeList VideoOverlayComposition = VideoOverlayCompositionAttributeList+type VideoOverlayCompositionAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoOverlayComposition::new+-- method type : Constructor+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle to add to the\n    composition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_new" gst_video_overlay_composition_new :: +    Ptr GstVideo.VideoOverlayRectangle.VideoOverlayRectangle -> -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO (Ptr VideoOverlayComposition)++{- |+Creates a new video overlay composition object to hold one or more+overlay rectangles.+-}+videoOverlayCompositionNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.VideoOverlayRectangle.VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' to add to the+    composition -}+    -> m VideoOverlayComposition+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition'. Unref with+    @/gst_video_overlay_composition_unref()/@ when no longer needed. -}+videoOverlayCompositionNew rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    result <- gst_video_overlay_composition_new rectangle'+    checkUnexpectedReturnNULL "videoOverlayCompositionNew" result+    result' <- (wrapBoxed VideoOverlayComposition) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoOverlayComposition::add_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle to add to the\n    composition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_add_rectangle" gst_video_overlay_composition_add_rectangle :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    Ptr GstVideo.VideoOverlayRectangle.VideoOverlayRectangle -> -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO ()++{- |+Adds an overlay rectangle to an existing overlay composition object. This+must be done right after creating the overlay composition.+-}+videoOverlayCompositionAddRectangle ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> GstVideo.VideoOverlayRectangle.VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' to add to the+    composition -}+    -> m ()+videoOverlayCompositionAddRectangle comp rectangle = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    gst_video_overlay_composition_add_rectangle comp' rectangle'+    touchManagedPtr comp+    touchManagedPtr rectangle+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayCompositionAddRectangleMethodInfo+instance (signature ~ (GstVideo.VideoOverlayRectangle.VideoOverlayRectangle -> m ()), MonadIO m) => O.MethodInfo VideoOverlayCompositionAddRectangleMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionAddRectangle++#endif++-- method VideoOverlayComposition::blend+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_buf", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFrame"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFrame containing raw video data in a\n            supported format. It should be mapped using GST_MAP_READWRITE", 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_video_overlay_composition_blend" gst_video_overlay_composition_blend :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    Ptr GstVideo.VideoFrame.VideoFrame ->   -- video_buf : TInterface (Name {namespace = "GstVideo", name = "VideoFrame"})+    IO CInt++{- |+Blends the overlay rectangles in /@comp@/ on top of the raw video data+contained in /@videoBuf@/. The data in /@videoBuf@/ must be writable and+mapped appropriately.++Since /@videoBuf@/ data is read and will be modified, it ought be+mapped with flag GST_MAP_READWRITE.+-}+videoOverlayCompositionBlend ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> GstVideo.VideoFrame.VideoFrame+    {- ^ /@videoBuf@/: a 'GI.GstVideo.Structs.VideoFrame.VideoFrame' containing raw video data in a+            supported format. It should be mapped using GST_MAP_READWRITE -}+    -> m Bool+videoOverlayCompositionBlend comp videoBuf = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    videoBuf' <- unsafeManagedPtrGetPtr videoBuf+    result <- gst_video_overlay_composition_blend comp' videoBuf'+    let result' = (/= 0) result+    touchManagedPtr comp+    touchManagedPtr videoBuf+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayCompositionBlendMethodInfo+instance (signature ~ (GstVideo.VideoFrame.VideoFrame -> m Bool), MonadIO m) => O.MethodInfo VideoOverlayCompositionBlendMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionBlend++#endif++-- method VideoOverlayComposition::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition to copy", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_copy" gst_video_overlay_composition_copy :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    IO (Ptr VideoOverlayComposition)++{- |+Makes a copy of /@comp@/ and all contained rectangles, so that it is possible+to modify the composition and contained rectangles (e.g. add additional+rectangles or change the render co-ordinates or render dimension). The+actual overlay pixel data buffers contained in the rectangles are not+copied.+-}+videoOverlayCompositionCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' to copy -}+    -> m VideoOverlayComposition+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' equivalent+    to /@comp@/. -}+videoOverlayCompositionCopy comp = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    result <- gst_video_overlay_composition_copy comp'+    checkUnexpectedReturnNULL "videoOverlayCompositionCopy" result+    result' <- (wrapBoxed VideoOverlayComposition) result+    touchManagedPtr comp+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayCompositionCopyMethodInfo+instance (signature ~ (m VideoOverlayComposition), MonadIO m) => O.MethodInfo VideoOverlayCompositionCopyMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionCopy++#endif++-- method VideoOverlayComposition::get_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of the rectangle to get", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_get_rectangle" gst_video_overlay_composition_get_rectangle :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    Word32 ->                               -- n : TBasicType TUInt+    IO (Ptr GstVideo.VideoOverlayRectangle.VideoOverlayRectangle)++{- |+Returns the /@n@/-th 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' contained in /@comp@/.+-}+videoOverlayCompositionGetRectangle ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> Word32+    {- ^ /@n@/: number of the rectangle to get -}+    -> m GstVideo.VideoOverlayRectangle.VideoOverlayRectangle+    {- ^ __Returns:__ the /@n@/-th rectangle, or NULL if /@n@/ is out of+    bounds. Will not return a new reference, the caller will need to+    obtain her own reference using @/gst_video_overlay_rectangle_ref()/@+    if needed. -}+videoOverlayCompositionGetRectangle comp n = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    result <- gst_video_overlay_composition_get_rectangle comp' n+    checkUnexpectedReturnNULL "videoOverlayCompositionGetRectangle" result+    result' <- (newBoxed GstVideo.VideoOverlayRectangle.VideoOverlayRectangle) result+    touchManagedPtr comp+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayCompositionGetRectangleMethodInfo+instance (signature ~ (Word32 -> m GstVideo.VideoOverlayRectangle.VideoOverlayRectangle), MonadIO m) => O.MethodInfo VideoOverlayCompositionGetRectangleMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionGetRectangle++#endif++-- method VideoOverlayComposition::get_seqnum+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", 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_video_overlay_composition_get_seqnum" gst_video_overlay_composition_get_seqnum :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    IO Word32++{- |+Returns the sequence number of this composition. Sequence numbers are+monotonically increasing and unique for overlay compositions and rectangles+(meaning there will never be a rectangle with the same sequence number as+a composition).+-}+videoOverlayCompositionGetSeqnum ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> m Word32+    {- ^ __Returns:__ the sequence number of /@comp@/ -}+videoOverlayCompositionGetSeqnum comp = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    result <- gst_video_overlay_composition_get_seqnum comp'+    touchManagedPtr comp+    return result++#if ENABLE_OVERLOADING+data VideoOverlayCompositionGetSeqnumMethodInfo+instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo VideoOverlayCompositionGetSeqnumMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionGetSeqnum++#endif++-- method VideoOverlayComposition::make_writable+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition to copy", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_make_writable" gst_video_overlay_composition_make_writable :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    IO (Ptr VideoOverlayComposition)++{- |+Takes ownership of /@comp@/ and returns a version of /@comp@/ that is writable+(i.e. can be modified). Will either return /@comp@/ right away, or create a+new writable copy of /@comp@/ and unref /@comp@/ itself. All the contained+rectangles will also be copied, but the actual overlay pixel data buffers+contained in the rectangles are not copied.+-}+videoOverlayCompositionMakeWritable ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' to copy -}+    -> m VideoOverlayComposition+    {- ^ __Returns:__ a writable 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition'+    equivalent to /@comp@/. -}+videoOverlayCompositionMakeWritable comp = liftIO $ do+    comp' <- B.ManagedPtr.disownBoxed comp+    result <- gst_video_overlay_composition_make_writable comp'+    checkUnexpectedReturnNULL "videoOverlayCompositionMakeWritable" result+    result' <- (wrapBoxed VideoOverlayComposition) result+    touchManagedPtr comp+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayCompositionMakeWritableMethodInfo+instance (signature ~ (m VideoOverlayComposition), MonadIO m) => O.MethodInfo VideoOverlayCompositionMakeWritableMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionMakeWritable++#endif++-- method VideoOverlayComposition::n_rectangles+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "comp", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayComposition", 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_video_overlay_composition_n_rectangles" gst_video_overlay_composition_n_rectangles :: +    Ptr VideoOverlayComposition ->          -- comp : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayComposition"})+    IO Word32++{- |+Returns the number of 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle'\<!-- -->s contained in /@comp@/.+-}+videoOverlayCompositionNRectangles ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayComposition+    {- ^ /@comp@/: a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' -}+    -> m Word32+    {- ^ __Returns:__ the number of rectangles -}+videoOverlayCompositionNRectangles comp = liftIO $ do+    comp' <- unsafeManagedPtrGetPtr comp+    result <- gst_video_overlay_composition_n_rectangles comp'+    touchManagedPtr comp+    return result++#if ENABLE_OVERLOADING+data VideoOverlayCompositionNRectanglesMethodInfo+instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo VideoOverlayCompositionNRectanglesMethodInfo VideoOverlayComposition signature where+    overloadedMethod _ = videoOverlayCompositionNRectangles++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoOverlayCompositionMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoOverlayCompositionMethod "addRectangle" o = VideoOverlayCompositionAddRectangleMethodInfo+    ResolveVideoOverlayCompositionMethod "blend" o = VideoOverlayCompositionBlendMethodInfo+    ResolveVideoOverlayCompositionMethod "copy" o = VideoOverlayCompositionCopyMethodInfo+    ResolveVideoOverlayCompositionMethod "makeWritable" o = VideoOverlayCompositionMakeWritableMethodInfo+    ResolveVideoOverlayCompositionMethod "nRectangles" o = VideoOverlayCompositionNRectanglesMethodInfo+    ResolveVideoOverlayCompositionMethod "getRectangle" o = VideoOverlayCompositionGetRectangleMethodInfo+    ResolveVideoOverlayCompositionMethod "getSeqnum" o = VideoOverlayCompositionGetSeqnumMethodInfo+    ResolveVideoOverlayCompositionMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoOverlayCompositionMethod t VideoOverlayComposition, O.MethodInfo info VideoOverlayComposition p) => OL.IsLabel t (VideoOverlayComposition -> 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++
+ GI/GstVideo/Structs/VideoOverlayComposition.hs-boot view
@@ -0,0 +1,47 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoOverlayComposition 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++newtype VideoOverlayComposition = VideoOverlayComposition (ManagedPtr VideoOverlayComposition)+instance BoxedObject VideoOverlayComposition where+#if ENABLE_OVERLOADING+data VideoOverlayCompositionAddRectangleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionBlendMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionGetRectangleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionGetSeqnumMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionMakeWritableMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayCompositionNRectanglesMethodInfo+#endif
+ GI/GstVideo/Structs/VideoOverlayCompositionMeta.hs view
@@ -0,0 +1,242 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata describing image overlay data.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoOverlayCompositionMeta+    ( ++-- * Exported types+    VideoOverlayCompositionMeta(..)         ,+    newZeroVideoOverlayCompositionMeta      ,+    noVideoOverlayCompositionMeta           ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoOverlayCompositionMetaGetInfo      ,+++++ -- * Properties+-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoOverlayCompositionMetaMeta      ,+#if ENABLE_OVERLOADING+    videoOverlayCompositionMeta_meta        ,+#endif+++-- ** overlay #attr:overlay#+{- | the attached 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition'+-}+    clearVideoOverlayCompositionMetaOverlay ,+    getVideoOverlayCompositionMetaOverlay   ,+    setVideoOverlayCompositionMetaOverlay   ,+#if ENABLE_OVERLOADING+    videoOverlayCompositionMeta_overlay     ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoOverlayComposition as GstVideo.VideoOverlayComposition++-- | Memory-managed wrapper type.+newtype VideoOverlayCompositionMeta = VideoOverlayCompositionMeta (ManagedPtr VideoOverlayCompositionMeta)+instance WrappedPtr VideoOverlayCompositionMeta where+    wrappedPtrCalloc = callocBytes 24+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 24 >=> wrapPtr VideoOverlayCompositionMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoOverlayCompositionMeta` struct initialized to zero.+newZeroVideoOverlayCompositionMeta :: MonadIO m => m VideoOverlayCompositionMeta+newZeroVideoOverlayCompositionMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoOverlayCompositionMeta++instance tag ~ 'AttrSet => Constructible VideoOverlayCompositionMeta tag where+    new _ attrs = do+        o <- newZeroVideoOverlayCompositionMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoOverlayCompositionMeta`.+noVideoOverlayCompositionMeta :: Maybe VideoOverlayCompositionMeta+noVideoOverlayCompositionMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoOverlayCompositionMeta #meta+@+-}+getVideoOverlayCompositionMetaMeta :: MonadIO m => VideoOverlayCompositionMeta -> m Gst.Meta.Meta+getVideoOverlayCompositionMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoOverlayCompositionMetaMetaFieldInfo+instance AttrInfo VideoOverlayCompositionMetaMetaFieldInfo where+    type AttrAllowedOps VideoOverlayCompositionMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoOverlayCompositionMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoOverlayCompositionMetaMetaFieldInfo = (~) VideoOverlayCompositionMeta+    type AttrGetType VideoOverlayCompositionMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoOverlayCompositionMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoOverlayCompositionMetaMetaFieldInfo = VideoOverlayCompositionMeta+    attrGet _ = getVideoOverlayCompositionMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoOverlayCompositionMeta_meta :: AttrLabelProxy "meta"+videoOverlayCompositionMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@overlay@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoOverlayCompositionMeta #overlay+@+-}+getVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> m (Maybe GstVideo.VideoOverlayComposition.VideoOverlayComposition)+getVideoOverlayCompositionMetaOverlay s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed GstVideo.VideoOverlayComposition.VideoOverlayComposition) val'+        return val''+    return result++{- |+Set the value of the “@overlay@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoOverlayCompositionMeta [ #overlay 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition -> m ()+setVideoOverlayCompositionMetaOverlay s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition)++{- |+Set the value of the “@overlay@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #overlay+@+-}+clearVideoOverlayCompositionMetaOverlay :: MonadIO m => VideoOverlayCompositionMeta -> m ()+clearVideoOverlayCompositionMetaOverlay s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition)++#if ENABLE_OVERLOADING+data VideoOverlayCompositionMetaOverlayFieldInfo+instance AttrInfo VideoOverlayCompositionMetaOverlayFieldInfo where+    type AttrAllowedOps VideoOverlayCompositionMetaOverlayFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoOverlayCompositionMetaOverlayFieldInfo = (~) (Ptr GstVideo.VideoOverlayComposition.VideoOverlayComposition)+    type AttrBaseTypeConstraint VideoOverlayCompositionMetaOverlayFieldInfo = (~) VideoOverlayCompositionMeta+    type AttrGetType VideoOverlayCompositionMetaOverlayFieldInfo = Maybe GstVideo.VideoOverlayComposition.VideoOverlayComposition+    type AttrLabel VideoOverlayCompositionMetaOverlayFieldInfo = "overlay"+    type AttrOrigin VideoOverlayCompositionMetaOverlayFieldInfo = VideoOverlayCompositionMeta+    attrGet _ = getVideoOverlayCompositionMetaOverlay+    attrSet _ = setVideoOverlayCompositionMetaOverlay+    attrConstruct = undefined+    attrClear _ = clearVideoOverlayCompositionMetaOverlay++videoOverlayCompositionMeta_overlay :: AttrLabelProxy "overlay"+videoOverlayCompositionMeta_overlay = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoOverlayCompositionMeta+type instance O.AttributeList VideoOverlayCompositionMeta = VideoOverlayCompositionMetaAttributeList+type VideoOverlayCompositionMetaAttributeList = ('[ '("meta", VideoOverlayCompositionMetaMetaFieldInfo), '("overlay", VideoOverlayCompositionMetaOverlayFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoOverlayCompositionMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_composition_meta_get_info" gst_video_overlay_composition_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoOverlayCompositionMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoOverlayCompositionMetaGetInfo  = liftIO $ do+    result <- gst_video_overlay_composition_meta_get_info+    checkUnexpectedReturnNULL "videoOverlayCompositionMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoOverlayCompositionMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoOverlayCompositionMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoOverlayCompositionMetaMethod t VideoOverlayCompositionMeta, O.MethodInfo info VideoOverlayCompositionMeta p) => OL.IsLabel t (VideoOverlayCompositionMeta -> 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++
+ GI/GstVideo/Structs/VideoOverlayCompositionMeta.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoOverlayCompositionMeta 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++newtype VideoOverlayCompositionMeta = VideoOverlayCompositionMeta (ManagedPtr VideoOverlayCompositionMeta)+instance WrappedPtr VideoOverlayCompositionMeta where
+ GI/GstVideo/Structs/VideoOverlayRectangle.hs view
@@ -0,0 +1,868 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++An opaque video overlay rectangle object. A rectangle contains a single+overlay rectangle which can be added to a composition.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoOverlayRectangle+    ( ++-- * Exported types+    VideoOverlayRectangle(..)               ,+    noVideoOverlayRectangle                 ,+++ -- * Methods+-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleCopyMethodInfo     ,+#endif+    videoOverlayRectangleCopy               ,+++-- ** getFlags #method:getFlags#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetFlagsMethodInfo ,+#endif+    videoOverlayRectangleGetFlags           ,+++-- ** getGlobalAlpha #method:getGlobalAlpha#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetGlobalAlphaMethodInfo,+#endif+    videoOverlayRectangleGetGlobalAlpha     ,+++-- ** getPixelsArgb #method:getPixelsArgb#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsArgbMethodInfo,+#endif+    videoOverlayRectangleGetPixelsArgb      ,+++-- ** getPixelsAyuv #method:getPixelsAyuv#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsAyuvMethodInfo,+#endif+    videoOverlayRectangleGetPixelsAyuv      ,+++-- ** getPixelsRaw #method:getPixelsRaw#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsRawMethodInfo,+#endif+    videoOverlayRectangleGetPixelsRaw       ,+++-- ** getPixelsUnscaledArgb #method:getPixelsUnscaledArgb#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsUnscaledArgbMethodInfo,+#endif+    videoOverlayRectangleGetPixelsUnscaledArgb,+++-- ** getPixelsUnscaledAyuv #method:getPixelsUnscaledAyuv#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsUnscaledAyuvMethodInfo,+#endif+    videoOverlayRectangleGetPixelsUnscaledAyuv,+++-- ** getPixelsUnscaledRaw #method:getPixelsUnscaledRaw#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetPixelsUnscaledRawMethodInfo,+#endif+    videoOverlayRectangleGetPixelsUnscaledRaw,+++-- ** getRenderRectangle #method:getRenderRectangle#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetRenderRectangleMethodInfo,+#endif+    videoOverlayRectangleGetRenderRectangle ,+++-- ** getSeqnum #method:getSeqnum#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleGetSeqnumMethodInfo,+#endif+    videoOverlayRectangleGetSeqnum          ,+++-- ** newRaw #method:newRaw#++    videoOverlayRectangleNewRaw             ,+++-- ** setGlobalAlpha #method:setGlobalAlpha#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleSetGlobalAlphaMethodInfo,+#endif+    videoOverlayRectangleSetGlobalAlpha     ,+++-- ** setRenderRectangle #method:setRenderRectangle#++#if ENABLE_OVERLOADING+    VideoOverlayRectangleSetRenderRectangleMethodInfo,+#endif+    videoOverlayRectangleSetRenderRectangle ,+++++    ) 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.Gst.Structs.Buffer as Gst.Buffer+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags++-- | Memory-managed wrapper type.+newtype VideoOverlayRectangle = VideoOverlayRectangle (ManagedPtr VideoOverlayRectangle)+foreign import ccall "gst_video_overlay_rectangle_get_type" c_gst_video_overlay_rectangle_get_type :: +    IO GType++instance BoxedObject VideoOverlayRectangle where+    boxedType _ = c_gst_video_overlay_rectangle_get_type++-- | A convenience alias for `Nothing` :: `Maybe` `VideoOverlayRectangle`.+noVideoOverlayRectangle :: Maybe VideoOverlayRectangle+noVideoOverlayRectangle = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoOverlayRectangle+type instance O.AttributeList VideoOverlayRectangle = VideoOverlayRectangleAttributeList+type VideoOverlayRectangleAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoOverlayRectangle::new_raw+-- method type : Constructor+-- Args : [Arg {argCName = "pixels", argType = TInterface (Name {namespace = "Gst", name = "Buffer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstBuffer pointing to the pixel memory", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the X co-ordinate on the video where the top-left corner of this\n    overlay rectangle should be rendered to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the Y co-ordinate on the video where the top-left corner of this\n    overlay rectangle should be rendered to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the render width of this rectangle on the video", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the render height of this rectangle on the video", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_new_raw" gst_video_overlay_rectangle_new_raw :: +    Ptr Gst.Buffer.Buffer ->                -- pixels : TInterface (Name {namespace = "Gst", name = "Buffer"})+    Int32 ->                                -- render_x : TBasicType TInt+    Int32 ->                                -- render_y : TBasicType TInt+    Word32 ->                               -- render_width : TBasicType TUInt+    Word32 ->                               -- render_height : TBasicType TUInt+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr VideoOverlayRectangle)++{- |+Creates a new video overlay rectangle with ARGB or AYUV pixel data.+The layout in case of ARGB of the components in memory is B-G-R-A+on little-endian platforms+(corresponding to @/GST_VIDEO_FORMAT_BGRA/@) and A-R-G-B on big-endian+platforms (corresponding to @/GST_VIDEO_FORMAT_ARGB/@). In other words,+pixels are treated as 32-bit words and the lowest 8 bits then contain+the blue component value and the highest 8 bits contain the alpha+component value. Unless specified in the flags, the RGB values are+non-premultiplied. This is the format that is used by most hardware,+and also many rendering libraries such as Cairo, for example.+The pixel data buffer must have 'GI.GstVideo.Structs.VideoMeta.VideoMeta' set.+-}+videoOverlayRectangleNewRaw ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Gst.Buffer.Buffer+    {- ^ /@pixels@/: a 'GI.Gst.Structs.Buffer.Buffer' pointing to the pixel memory -}+    -> Int32+    {- ^ /@renderX@/: the X co-ordinate on the video where the top-left corner of this+    overlay rectangle should be rendered to -}+    -> Int32+    {- ^ /@renderY@/: the Y co-ordinate on the video where the top-left corner of this+    overlay rectangle should be rendered to -}+    -> Word32+    {- ^ /@renderWidth@/: the render width of this rectangle on the video -}+    -> Word32+    {- ^ /@renderHeight@/: the render height of this rectangle on the video -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags -}+    -> m VideoOverlayRectangle+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle'. Unref with+    @/gst_video_overlay_rectangle_unref()/@ when no longer needed. -}+videoOverlayRectangleNewRaw pixels renderX renderY renderWidth renderHeight flags = liftIO $ do+    pixels' <- unsafeManagedPtrGetPtr pixels+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_new_raw pixels' renderX renderY renderWidth renderHeight flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleNewRaw" result+    result' <- (wrapBoxed VideoOverlayRectangle) result+    touchManagedPtr pixels+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoOverlayRectangle::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle to copy", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_copy" gst_video_overlay_rectangle_copy :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO (Ptr VideoOverlayRectangle)++{- |+Makes a copy of /@rectangle@/, so that it is possible to modify it+(e.g. to change the render co-ordinates or render dimension). The+actual overlay pixel data buffers contained in the rectangle are not+copied.+-}+videoOverlayRectangleCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' to copy -}+    -> m VideoOverlayRectangle+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' equivalent+    to /@rectangle@/. -}+videoOverlayRectangleCopy rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    result <- gst_video_overlay_rectangle_copy rectangle'+    checkUnexpectedReturnNULL "videoOverlayRectangleCopy" result+    result' <- (wrapBoxed VideoOverlayRectangle) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleCopyMethodInfo+instance (signature ~ (m VideoOverlayRectangle), MonadIO m) => O.MethodInfo VideoOverlayRectangleCopyMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleCopy++#endif++-- method VideoOverlayRectangle::get_flags+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_flags" gst_video_overlay_rectangle_get_flags :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO CUInt++{- |+Retrieves the flags associated with a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle'.+This is useful if the caller can handle both premultiplied alpha and+non premultiplied alpha, for example. By knowing whether the rectangle+uses premultiplied or not, it can request the pixel data in the format+it is stored in, to avoid unnecessary conversion.+-}+videoOverlayRectangleGetFlags ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> m [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ __Returns:__ the 'GI.GstVideo.Flags.VideoOverlayFormatFlags' associated with the rectangle. -}+videoOverlayRectangleGetFlags rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    result <- gst_video_overlay_rectangle_get_flags rectangle'+    let result' = wordToGFlags result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetFlagsMethodInfo+instance (signature ~ (m [GstVideo.Flags.VideoOverlayFormatFlags]), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetFlagsMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetFlags++#endif++-- method VideoOverlayRectangle::get_global_alpha+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TFloat)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_global_alpha" gst_video_overlay_rectangle_get_global_alpha :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO CFloat++{- |+Retrieves the global-alpha value associated with a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle'.+-}+videoOverlayRectangleGetGlobalAlpha ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> m Float+    {- ^ __Returns:__ the global-alpha value associated with the rectangle. -}+videoOverlayRectangleGetGlobalAlpha rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    result <- gst_video_overlay_rectangle_get_global_alpha rectangle'+    let result' = realToFrac result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetGlobalAlphaMethodInfo+instance (signature ~ (m Float), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetGlobalAlphaMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetGlobalAlpha++#endif++-- method VideoOverlayRectangle::get_pixels_argb+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_argb" gst_video_overlay_rectangle_get_pixels_argb :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+/No description available in the introspection data./+-}+videoOverlayRectangleGetPixelsArgb ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the ARGB pixel data with+   width and height of the render dimensions as per+   'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'. This function does+   not return a reference, the caller should obtain a reference of her own+   with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsArgb rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_argb rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsArgb" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsArgbMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsArgbMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsArgb++#endif++-- method VideoOverlayRectangle::get_pixels_ayuv+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_ayuv" gst_video_overlay_rectangle_get_pixels_ayuv :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+/No description available in the introspection data./+-}+videoOverlayRectangleGetPixelsAyuv ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the AYUV pixel data with+   width and height of the render dimensions as per+   'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'. This function does+   not return a reference, the caller should obtain a reference of her own+   with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsAyuv rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_ayuv rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsAyuv" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsAyuvMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsAyuvMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsAyuv++#endif++-- method VideoOverlayRectangle::get_pixels_raw+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_raw" gst_video_overlay_rectangle_get_pixels_raw :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+/No description available in the introspection data./+-}+videoOverlayRectangleGetPixelsRaw ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the pixel data with+   format as originally provided and specified in video meta with+   width and height of the render dimensions as per+   'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'. This function does+   not return a reference, the caller should obtain a reference of her own+   with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsRaw rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_raw rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsRaw" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsRawMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsRawMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsRaw++#endif++-- method VideoOverlayRectangle::get_pixels_unscaled_argb+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags.\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_unscaled_argb" gst_video_overlay_rectangle_get_pixels_unscaled_argb :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+Retrieves the pixel data as it is. This is useful if the caller can+do the scaling itself when handling the overlaying. The rectangle will+need to be scaled to the render dimensions, which can be retrieved using+'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'.+-}+videoOverlayRectangleGetPixelsUnscaledArgb ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags.+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the ARGB pixel data with+   'GI.GstVideo.Structs.VideoMeta.VideoMeta' set. This function does not return a reference, the caller+   should obtain a reference of her own with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsUnscaledArgb rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_unscaled_argb rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsUnscaledArgb" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledArgbMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsUnscaledArgbMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsUnscaledArgb++#endif++-- method VideoOverlayRectangle::get_pixels_unscaled_ayuv+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags.\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_unscaled_ayuv" gst_video_overlay_rectangle_get_pixels_unscaled_ayuv :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+Retrieves the pixel data as it is. This is useful if the caller can+do the scaling itself when handling the overlaying. The rectangle will+need to be scaled to the render dimensions, which can be retrieved using+'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'.+-}+videoOverlayRectangleGetPixelsUnscaledAyuv ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags.+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the AYUV pixel data with+   'GI.GstVideo.Structs.VideoMeta.VideoMeta' set. This function does not return a reference, the caller+   should obtain a reference of her own with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsUnscaledAyuv rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_unscaled_ayuv rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsUnscaledAyuv" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledAyuvMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsUnscaledAyuvMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsUnscaledAyuv++#endif++-- method VideoOverlayRectangle::get_pixels_unscaled_raw+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "flags.\n   If a global_alpha value != 1 is set for the rectangle, the caller\n   should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag\n   if he wants to apply global-alpha himself. If the flag is not set\n   global_alpha is applied internally before returning the pixel-data.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Buffer"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_pixels_unscaled_raw" gst_video_overlay_rectangle_get_pixels_unscaled_raw :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayFormatFlags"})+    IO (Ptr Gst.Buffer.Buffer)++{- |+Retrieves the pixel data as it is. This is useful if the caller can+do the scaling itself when handling the overlaying. The rectangle will+need to be scaled to the render dimensions, which can be retrieved using+'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleGetRenderRectangle'.+-}+videoOverlayRectangleGetPixelsUnscaledRaw ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> [GstVideo.Flags.VideoOverlayFormatFlags]+    {- ^ /@flags@/: flags.+   If a global_alpha value != 1 is set for the rectangle, the caller+   should set the @/GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA/@ flag+   if he wants to apply global-alpha himself. If the flag is not set+   global_alpha is applied internally before returning the pixel-data. -}+    -> m Gst.Buffer.Buffer+    {- ^ __Returns:__ a 'GI.Gst.Structs.Buffer.Buffer' holding the pixel data with+   'GI.GstVideo.Structs.VideoMeta.VideoMeta' set. This function does not return a reference, the caller+   should obtain a reference of her own with @/gst_buffer_ref()/@ if needed. -}+videoOverlayRectangleGetPixelsUnscaledRaw rectangle flags = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let flags' = gflagsToWord flags+    result <- gst_video_overlay_rectangle_get_pixels_unscaled_raw rectangle' flags'+    checkUnexpectedReturnNULL "videoOverlayRectangleGetPixelsUnscaledRaw" result+    result' <- (newBoxed Gst.Buffer.Buffer) result+    touchManagedPtr rectangle+    return result'++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledRawMethodInfo+instance (signature ~ ([GstVideo.Flags.VideoOverlayFormatFlags] -> m Gst.Buffer.Buffer), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetPixelsUnscaledRawMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetPixelsUnscaledRaw++#endif++-- method VideoOverlayRectangle::get_render_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_x", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address where to store the X render offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "render_y", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address where to store the Y render offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "render_width", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address where to store the render width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "render_height", argType = TBasicType TUInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "address where to store the render height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_get_render_rectangle" gst_video_overlay_rectangle_get_render_rectangle :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    Ptr Int32 ->                            -- render_x : TBasicType TInt+    Ptr Int32 ->                            -- render_y : TBasicType TInt+    Ptr Word32 ->                           -- render_width : TBasicType TUInt+    Ptr Word32 ->                           -- render_height : TBasicType TUInt+    IO CInt++{- |+Retrieves the render position and render dimension of the overlay+rectangle on the video.+-}+videoOverlayRectangleGetRenderRectangle ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> m ((Bool, Int32, Int32, Word32, Word32))+    {- ^ __Returns:__ TRUE if valid render dimensions were retrieved. -}+videoOverlayRectangleGetRenderRectangle rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    renderX <- allocMem :: IO (Ptr Int32)+    renderY <- allocMem :: IO (Ptr Int32)+    renderWidth <- allocMem :: IO (Ptr Word32)+    renderHeight <- allocMem :: IO (Ptr Word32)+    result <- gst_video_overlay_rectangle_get_render_rectangle rectangle' renderX renderY renderWidth renderHeight+    let result' = (/= 0) result+    renderX' <- peek renderX+    renderY' <- peek renderY+    renderWidth' <- peek renderWidth+    renderHeight' <- peek renderHeight+    touchManagedPtr rectangle+    freeMem renderX+    freeMem renderY+    freeMem renderWidth+    freeMem renderHeight+    return (result', renderX', renderY', renderWidth', renderHeight')++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetRenderRectangleMethodInfo+instance (signature ~ (m ((Bool, Int32, Int32, Word32, Word32))), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetRenderRectangleMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetRenderRectangle++#endif++-- method VideoOverlayRectangle::get_seqnum+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", 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_video_overlay_rectangle_get_seqnum" gst_video_overlay_rectangle_get_seqnum :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    IO Word32++{- |+Returns the sequence number of this rectangle. Sequence numbers are+monotonically increasing and unique for overlay compositions and rectangles+(meaning there will never be a rectangle with the same sequence number as+a composition).++Using the sequence number of a rectangle as an indicator for changed+pixel-data of a rectangle is dangereous. Some API calls, like e.g.+'GI.GstVideo.Structs.VideoOverlayRectangle.videoOverlayRectangleSetGlobalAlpha', automatically update+the per rectangle sequence number, which is misleading for renderers\/+consumers, that handle global-alpha themselves. For them  the+pixel-data returned by gst_video_overlay_rectangle_get_pixels_*()+wont be different for different global-alpha values. In this case a+renderer could also use the GstBuffer pointers as a hint for changed+pixel-data.+-}+videoOverlayRectangleGetSeqnum ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> m Word32+    {- ^ __Returns:__ the sequence number of /@rectangle@/ -}+videoOverlayRectangleGetSeqnum rectangle = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    result <- gst_video_overlay_rectangle_get_seqnum rectangle'+    touchManagedPtr rectangle+    return result++#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetSeqnumMethodInfo+instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo VideoOverlayRectangleGetSeqnumMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleGetSeqnum++#endif++-- method VideoOverlayRectangle::set_global_alpha+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "global_alpha", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Global alpha value (0 to 1.0)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_set_global_alpha" gst_video_overlay_rectangle_set_global_alpha :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    CFloat ->                               -- global_alpha : TBasicType TFloat+    IO ()++{- |+Sets the global alpha value associated with a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle'. Per-+pixel alpha values are multiplied with this value. Valid+values: 0 \<= global_alpha \<= 1; 1 to deactivate.++/@rectangle@/ must be writable, meaning its refcount must be 1. You can+make the rectangles inside a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' writable using+'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionMakeWritable' or+'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionCopy'.+-}+videoOverlayRectangleSetGlobalAlpha ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> Float+    {- ^ /@globalAlpha@/: Global alpha value (0 to 1.0) -}+    -> m ()+videoOverlayRectangleSetGlobalAlpha rectangle globalAlpha = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    let globalAlpha' = realToFrac globalAlpha+    gst_video_overlay_rectangle_set_global_alpha rectangle' globalAlpha'+    touchManagedPtr rectangle+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayRectangleSetGlobalAlphaMethodInfo+instance (signature ~ (Float -> m ()), MonadIO m) => O.MethodInfo VideoOverlayRectangleSetGlobalAlphaMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleSetGlobalAlpha++#endif++-- method VideoOverlayRectangle::set_render_rectangle+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "rectangle", argType = TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoOverlayRectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "render X position of rectangle on video", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "render Y position of rectangle on video", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "render width of rectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "render_height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "render height of rectangle", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_overlay_rectangle_set_render_rectangle" gst_video_overlay_rectangle_set_render_rectangle :: +    Ptr VideoOverlayRectangle ->            -- rectangle : TInterface (Name {namespace = "GstVideo", name = "VideoOverlayRectangle"})+    Int32 ->                                -- render_x : TBasicType TInt+    Int32 ->                                -- render_y : TBasicType TInt+    Word32 ->                               -- render_width : TBasicType TUInt+    Word32 ->                               -- render_height : TBasicType TUInt+    IO ()++{- |+Sets the render position and dimensions of the rectangle on the video.+This function is mainly for elements that modify the size of the video+in some way (e.g. through scaling or cropping) and need to adjust the+details of any overlays to match the operation that changed the size.++/@rectangle@/ must be writable, meaning its refcount must be 1. You can+make the rectangles inside a 'GI.GstVideo.Structs.VideoOverlayComposition.VideoOverlayComposition' writable using+'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionMakeWritable' or+'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionCopy'.+-}+videoOverlayRectangleSetRenderRectangle ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoOverlayRectangle+    {- ^ /@rectangle@/: a 'GI.GstVideo.Structs.VideoOverlayRectangle.VideoOverlayRectangle' -}+    -> Int32+    {- ^ /@renderX@/: render X position of rectangle on video -}+    -> Int32+    {- ^ /@renderY@/: render Y position of rectangle on video -}+    -> Word32+    {- ^ /@renderWidth@/: render width of rectangle -}+    -> Word32+    {- ^ /@renderHeight@/: render height of rectangle -}+    -> m ()+videoOverlayRectangleSetRenderRectangle rectangle renderX renderY renderWidth renderHeight = liftIO $ do+    rectangle' <- unsafeManagedPtrGetPtr rectangle+    gst_video_overlay_rectangle_set_render_rectangle rectangle' renderX renderY renderWidth renderHeight+    touchManagedPtr rectangle+    return ()++#if ENABLE_OVERLOADING+data VideoOverlayRectangleSetRenderRectangleMethodInfo+instance (signature ~ (Int32 -> Int32 -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoOverlayRectangleSetRenderRectangleMethodInfo VideoOverlayRectangle signature where+    overloadedMethod _ = videoOverlayRectangleSetRenderRectangle++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoOverlayRectangleMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoOverlayRectangleMethod "copy" o = VideoOverlayRectangleCopyMethodInfo+    ResolveVideoOverlayRectangleMethod "getFlags" o = VideoOverlayRectangleGetFlagsMethodInfo+    ResolveVideoOverlayRectangleMethod "getGlobalAlpha" o = VideoOverlayRectangleGetGlobalAlphaMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsArgb" o = VideoOverlayRectangleGetPixelsArgbMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsAyuv" o = VideoOverlayRectangleGetPixelsAyuvMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsRaw" o = VideoOverlayRectangleGetPixelsRawMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsUnscaledArgb" o = VideoOverlayRectangleGetPixelsUnscaledArgbMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsUnscaledAyuv" o = VideoOverlayRectangleGetPixelsUnscaledAyuvMethodInfo+    ResolveVideoOverlayRectangleMethod "getPixelsUnscaledRaw" o = VideoOverlayRectangleGetPixelsUnscaledRawMethodInfo+    ResolveVideoOverlayRectangleMethod "getRenderRectangle" o = VideoOverlayRectangleGetRenderRectangleMethodInfo+    ResolveVideoOverlayRectangleMethod "getSeqnum" o = VideoOverlayRectangleGetSeqnumMethodInfo+    ResolveVideoOverlayRectangleMethod "setGlobalAlpha" o = VideoOverlayRectangleSetGlobalAlphaMethodInfo+    ResolveVideoOverlayRectangleMethod "setRenderRectangle" o = VideoOverlayRectangleSetRenderRectangleMethodInfo+    ResolveVideoOverlayRectangleMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoOverlayRectangleMethod t VideoOverlayRectangle, O.MethodInfo info VideoOverlayRectangle p) => OL.IsLabel t (VideoOverlayRectangle -> 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++
+ GI/GstVideo/Structs/VideoOverlayRectangle.hs-boot view
@@ -0,0 +1,65 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoOverlayRectangle 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++newtype VideoOverlayRectangle = VideoOverlayRectangle (ManagedPtr VideoOverlayRectangle)+instance BoxedObject VideoOverlayRectangle where+#if ENABLE_OVERLOADING+data VideoOverlayRectangleCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetFlagsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetGlobalAlphaMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsArgbMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsAyuvMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsRawMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledArgbMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledAyuvMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetPixelsUnscaledRawMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetRenderRectangleMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleGetSeqnumMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleSetGlobalAlphaMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoOverlayRectangleSetRenderRectangleMethodInfo+#endif
+ GI/GstVideo/Structs/VideoRectangle.hs view
@@ -0,0 +1,311 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Helper structure representing a rectangular area.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoRectangle+    ( ++-- * Exported types+    VideoRectangle(..)                      ,+    newZeroVideoRectangle                   ,+    noVideoRectangle                        ,+++ -- * Properties+-- ** h #attr:h#+{- | height of the rectangle+-}+    getVideoRectangleH                      ,+    setVideoRectangleH                      ,+#if ENABLE_OVERLOADING+    videoRectangle_h                        ,+#endif+++-- ** w #attr:w#+{- | width of the rectangle+-}+    getVideoRectangleW                      ,+    setVideoRectangleW                      ,+#if ENABLE_OVERLOADING+    videoRectangle_w                        ,+#endif+++-- ** x #attr:x#+{- | X coordinate of rectangle\'s top-left point+-}+    getVideoRectangleX                      ,+    setVideoRectangleX                      ,+#if ENABLE_OVERLOADING+    videoRectangle_x                        ,+#endif+++-- ** y #attr:y#+{- | Y coordinate of rectangle\'s top-left point+-}+    getVideoRectangleY                      ,+    setVideoRectangleY                      ,+#if ENABLE_OVERLOADING+    videoRectangle_y                        ,+#endif+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoRectangle = VideoRectangle (ManagedPtr VideoRectangle)+instance WrappedPtr VideoRectangle where+    wrappedPtrCalloc = callocBytes 16+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 16 >=> wrapPtr VideoRectangle)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoRectangle` struct initialized to zero.+newZeroVideoRectangle :: MonadIO m => m VideoRectangle+newZeroVideoRectangle = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoRectangle++instance tag ~ 'AttrSet => Constructible VideoRectangle tag where+    new _ attrs = do+        o <- newZeroVideoRectangle+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoRectangle`.+noVideoRectangle :: Maybe VideoRectangle+noVideoRectangle = Nothing++{- |+Get the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRectangle #x+@+-}+getVideoRectangleX :: MonadIO m => VideoRectangle -> m Int32+getVideoRectangleX s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Int32+    return val++{- |+Set the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRectangle [ #x 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRectangleX :: MonadIO m => VideoRectangle -> Int32 -> m ()+setVideoRectangleX s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRectangleXFieldInfo+instance AttrInfo VideoRectangleXFieldInfo where+    type AttrAllowedOps VideoRectangleXFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRectangleXFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRectangleXFieldInfo = (~) VideoRectangle+    type AttrGetType VideoRectangleXFieldInfo = Int32+    type AttrLabel VideoRectangleXFieldInfo = "x"+    type AttrOrigin VideoRectangleXFieldInfo = VideoRectangle+    attrGet _ = getVideoRectangleX+    attrSet _ = setVideoRectangleX+    attrConstruct = undefined+    attrClear _ = undefined++videoRectangle_x :: AttrLabelProxy "x"+videoRectangle_x = AttrLabelProxy++#endif+++{- |+Get the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRectangle #y+@+-}+getVideoRectangleY :: MonadIO m => VideoRectangle -> m Int32+getVideoRectangleY s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Int32+    return val++{- |+Set the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRectangle [ #y 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRectangleY :: MonadIO m => VideoRectangle -> Int32 -> m ()+setVideoRectangleY s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 4) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRectangleYFieldInfo+instance AttrInfo VideoRectangleYFieldInfo where+    type AttrAllowedOps VideoRectangleYFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRectangleYFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRectangleYFieldInfo = (~) VideoRectangle+    type AttrGetType VideoRectangleYFieldInfo = Int32+    type AttrLabel VideoRectangleYFieldInfo = "y"+    type AttrOrigin VideoRectangleYFieldInfo = VideoRectangle+    attrGet _ = getVideoRectangleY+    attrSet _ = setVideoRectangleY+    attrConstruct = undefined+    attrClear _ = undefined++videoRectangle_y :: AttrLabelProxy "y"+videoRectangle_y = AttrLabelProxy++#endif+++{- |+Get the value of the “@w@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRectangle #w+@+-}+getVideoRectangleW :: MonadIO m => VideoRectangle -> m Int32+getVideoRectangleW s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Int32+    return val++{- |+Set the value of the “@w@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRectangle [ #w 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRectangleW :: MonadIO m => VideoRectangle -> Int32 -> m ()+setVideoRectangleW s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRectangleWFieldInfo+instance AttrInfo VideoRectangleWFieldInfo where+    type AttrAllowedOps VideoRectangleWFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRectangleWFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRectangleWFieldInfo = (~) VideoRectangle+    type AttrGetType VideoRectangleWFieldInfo = Int32+    type AttrLabel VideoRectangleWFieldInfo = "w"+    type AttrOrigin VideoRectangleWFieldInfo = VideoRectangle+    attrGet _ = getVideoRectangleW+    attrSet _ = setVideoRectangleW+    attrConstruct = undefined+    attrClear _ = undefined++videoRectangle_w :: AttrLabelProxy "w"+videoRectangle_w = AttrLabelProxy++#endif+++{- |+Get the value of the “@h@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRectangle #h+@+-}+getVideoRectangleH :: MonadIO m => VideoRectangle -> m Int32+getVideoRectangleH s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Int32+    return val++{- |+Set the value of the “@h@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRectangle [ #h 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRectangleH :: MonadIO m => VideoRectangle -> Int32 -> m ()+setVideoRectangleH s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 12) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRectangleHFieldInfo+instance AttrInfo VideoRectangleHFieldInfo where+    type AttrAllowedOps VideoRectangleHFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRectangleHFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRectangleHFieldInfo = (~) VideoRectangle+    type AttrGetType VideoRectangleHFieldInfo = Int32+    type AttrLabel VideoRectangleHFieldInfo = "h"+    type AttrOrigin VideoRectangleHFieldInfo = VideoRectangle+    attrGet _ = getVideoRectangleH+    attrSet _ = setVideoRectangleH+    attrConstruct = undefined+    attrClear _ = undefined++videoRectangle_h :: AttrLabelProxy "h"+videoRectangle_h = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoRectangle+type instance O.AttributeList VideoRectangle = VideoRectangleAttributeList+type VideoRectangleAttributeList = ('[ '("x", VideoRectangleXFieldInfo), '("y", VideoRectangleYFieldInfo), '("w", VideoRectangleWFieldInfo), '("h", VideoRectangleHFieldInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoRectangleMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoRectangleMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoRectangleMethod t VideoRectangle, O.MethodInfo info VideoRectangle p) => OL.IsLabel t (VideoRectangle -> 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++
+ GI/GstVideo/Structs/VideoRectangle.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoRectangle 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++newtype VideoRectangle = VideoRectangle (ManagedPtr VideoRectangle)+instance WrappedPtr VideoRectangle where
+ GI/GstVideo/Structs/VideoRegionOfInterestMeta.hs view
@@ -0,0 +1,736 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata describing an image region of interest+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoRegionOfInterestMeta+    ( ++-- * Exported types+    VideoRegionOfInterestMeta(..)           ,+    newZeroVideoRegionOfInterestMeta        ,+    noVideoRegionOfInterestMeta             ,+++ -- * Methods+-- ** addParam #method:addParam#++#if ENABLE_OVERLOADING+    VideoRegionOfInterestMetaAddParamMethodInfo,+#endif+    videoRegionOfInterestMetaAddParam       ,+++-- ** getInfo #method:getInfo#++    videoRegionOfInterestMetaGetInfo        ,+++-- ** getParam #method:getParam#++#if ENABLE_OVERLOADING+    VideoRegionOfInterestMetaGetParamMethodInfo,+#endif+    videoRegionOfInterestMetaGetParam       ,+++++ -- * Properties+-- ** h #attr:h#+{- | bounding box height+-}+    getVideoRegionOfInterestMetaH           ,+    setVideoRegionOfInterestMetaH           ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_h             ,+#endif+++-- ** id #attr:id#+{- | identifier of this particular ROI+-}+    getVideoRegionOfInterestMetaId          ,+    setVideoRegionOfInterestMetaId          ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_id            ,+#endif+++-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoRegionOfInterestMetaMeta        ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_meta          ,+#endif+++-- ** params #attr:params#+{- | list of 'GI.Gst.Structs.Structure.Structure' containing element-specific params for downstream, see @/gst_video_region_of_interest_meta_add_params()/@. (Since: 1.14)+-}+    clearVideoRegionOfInterestMetaParams    ,+    getVideoRegionOfInterestMetaParams      ,+    setVideoRegionOfInterestMetaParams      ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_params        ,+#endif+++-- ** parentId #attr:parentId#+{- | identifier of its parent ROI, used f.i. for ROI hierarchisation.+-}+    getVideoRegionOfInterestMetaParentId    ,+    setVideoRegionOfInterestMetaParentId    ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_parentId      ,+#endif+++-- ** roiType #attr:roiType#+{- | GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)+-}+    getVideoRegionOfInterestMetaRoiType     ,+    setVideoRegionOfInterestMetaRoiType     ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_roiType       ,+#endif+++-- ** w #attr:w#+{- | bounding box width+-}+    getVideoRegionOfInterestMetaW           ,+    setVideoRegionOfInterestMetaW           ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_w             ,+#endif+++-- ** x #attr:x#+{- | x component of upper-left corner+-}+    getVideoRegionOfInterestMetaX           ,+    setVideoRegionOfInterestMetaX           ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_x             ,+#endif+++-- ** y #attr:y#+{- | y component of upper-left corner+-}+    getVideoRegionOfInterestMetaY           ,+    setVideoRegionOfInterestMetaY           ,+#if ENABLE_OVERLOADING+    videoRegionOfInterestMeta_y             ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import qualified GI.Gst.Structs.Structure as Gst.Structure++-- | Memory-managed wrapper type.+newtype VideoRegionOfInterestMeta = VideoRegionOfInterestMeta (ManagedPtr VideoRegionOfInterestMeta)+instance WrappedPtr VideoRegionOfInterestMeta where+    wrappedPtrCalloc = callocBytes 56+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 56 >=> wrapPtr VideoRegionOfInterestMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoRegionOfInterestMeta` struct initialized to zero.+newZeroVideoRegionOfInterestMeta :: MonadIO m => m VideoRegionOfInterestMeta+newZeroVideoRegionOfInterestMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoRegionOfInterestMeta++instance tag ~ 'AttrSet => Constructible VideoRegionOfInterestMeta tag where+    new _ attrs = do+        o <- newZeroVideoRegionOfInterestMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoRegionOfInterestMeta`.+noVideoRegionOfInterestMeta :: Maybe VideoRegionOfInterestMeta+noVideoRegionOfInterestMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #meta+@+-}+getVideoRegionOfInterestMetaMeta :: MonadIO m => VideoRegionOfInterestMeta -> m Gst.Meta.Meta+getVideoRegionOfInterestMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaMetaFieldInfo+instance AttrInfo VideoRegionOfInterestMetaMetaFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaMetaFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoRegionOfInterestMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoRegionOfInterestMetaMetaFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_meta :: AttrLabelProxy "meta"+videoRegionOfInterestMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@roi_type@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #roiType+@+-}+getVideoRegionOfInterestMetaRoiType :: MonadIO m => VideoRegionOfInterestMeta -> m Word32+getVideoRegionOfInterestMetaRoiType s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Word32+    return val++{- |+Set the value of the “@roi_type@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #roiType 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaRoiType :: MonadIO m => VideoRegionOfInterestMeta -> Word32 -> m ()+setVideoRegionOfInterestMetaRoiType s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaRoiTypeFieldInfo+instance AttrInfo VideoRegionOfInterestMetaRoiTypeFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaRoiTypeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaRoiTypeFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaRoiTypeFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaRoiTypeFieldInfo = Word32+    type AttrLabel VideoRegionOfInterestMetaRoiTypeFieldInfo = "roi_type"+    type AttrOrigin VideoRegionOfInterestMetaRoiTypeFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaRoiType+    attrSet _ = setVideoRegionOfInterestMetaRoiType+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_roiType :: AttrLabelProxy "roiType"+videoRegionOfInterestMeta_roiType = AttrLabelProxy++#endif+++{- |+Get the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #id+@+-}+getVideoRegionOfInterestMetaId :: MonadIO m => VideoRegionOfInterestMeta -> m Int32+getVideoRegionOfInterestMetaId s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 20) :: IO Int32+    return val++{- |+Set the value of the “@id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #id 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaId :: MonadIO m => VideoRegionOfInterestMeta -> Int32 -> m ()+setVideoRegionOfInterestMetaId s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 20) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaIdFieldInfo+instance AttrInfo VideoRegionOfInterestMetaIdFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaIdFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaIdFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaIdFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaIdFieldInfo = Int32+    type AttrLabel VideoRegionOfInterestMetaIdFieldInfo = "id"+    type AttrOrigin VideoRegionOfInterestMetaIdFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaId+    attrSet _ = setVideoRegionOfInterestMetaId+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_id :: AttrLabelProxy "id"+videoRegionOfInterestMeta_id = AttrLabelProxy++#endif+++{- |+Get the value of the “@parent_id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #parentId+@+-}+getVideoRegionOfInterestMetaParentId :: MonadIO m => VideoRegionOfInterestMeta -> m Int32+getVideoRegionOfInterestMetaParentId s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Int32+    return val++{- |+Set the value of the “@parent_id@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #parentId 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaParentId :: MonadIO m => VideoRegionOfInterestMeta -> Int32 -> m ()+setVideoRegionOfInterestMetaParentId s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaParentIdFieldInfo+instance AttrInfo VideoRegionOfInterestMetaParentIdFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaParentIdFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaParentIdFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaParentIdFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaParentIdFieldInfo = Int32+    type AttrLabel VideoRegionOfInterestMetaParentIdFieldInfo = "parent_id"+    type AttrOrigin VideoRegionOfInterestMetaParentIdFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaParentId+    attrSet _ = setVideoRegionOfInterestMetaParentId+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_parentId :: AttrLabelProxy "parentId"+videoRegionOfInterestMeta_parentId = AttrLabelProxy++#endif+++{- |+Get the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #x+@+-}+getVideoRegionOfInterestMetaX :: MonadIO m => VideoRegionOfInterestMeta -> m Word32+getVideoRegionOfInterestMetaX s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++{- |+Set the value of the “@x@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #x 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaX :: MonadIO m => VideoRegionOfInterestMeta -> Word32 -> m ()+setVideoRegionOfInterestMetaX s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 28) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaXFieldInfo+instance AttrInfo VideoRegionOfInterestMetaXFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaXFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaXFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaXFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaXFieldInfo = Word32+    type AttrLabel VideoRegionOfInterestMetaXFieldInfo = "x"+    type AttrOrigin VideoRegionOfInterestMetaXFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaX+    attrSet _ = setVideoRegionOfInterestMetaX+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_x :: AttrLabelProxy "x"+videoRegionOfInterestMeta_x = AttrLabelProxy++#endif+++{- |+Get the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #y+@+-}+getVideoRegionOfInterestMetaY :: MonadIO m => VideoRegionOfInterestMeta -> m Word32+getVideoRegionOfInterestMetaY s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word32+    return val++{- |+Set the value of the “@y@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #y 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaY :: MonadIO m => VideoRegionOfInterestMeta -> Word32 -> m ()+setVideoRegionOfInterestMetaY s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaYFieldInfo+instance AttrInfo VideoRegionOfInterestMetaYFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaYFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaYFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaYFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaYFieldInfo = Word32+    type AttrLabel VideoRegionOfInterestMetaYFieldInfo = "y"+    type AttrOrigin VideoRegionOfInterestMetaYFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaY+    attrSet _ = setVideoRegionOfInterestMetaY+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_y :: AttrLabelProxy "y"+videoRegionOfInterestMeta_y = AttrLabelProxy++#endif+++{- |+Get the value of the “@w@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #w+@+-}+getVideoRegionOfInterestMetaW :: MonadIO m => VideoRegionOfInterestMeta -> m Word32+getVideoRegionOfInterestMetaW s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Word32+    return val++{- |+Set the value of the “@w@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #w 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaW :: MonadIO m => VideoRegionOfInterestMeta -> Word32 -> m ()+setVideoRegionOfInterestMetaW s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 36) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaWFieldInfo+instance AttrInfo VideoRegionOfInterestMetaWFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaWFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaWFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaWFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaWFieldInfo = Word32+    type AttrLabel VideoRegionOfInterestMetaWFieldInfo = "w"+    type AttrOrigin VideoRegionOfInterestMetaWFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaW+    attrSet _ = setVideoRegionOfInterestMetaW+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_w :: AttrLabelProxy "w"+videoRegionOfInterestMeta_w = AttrLabelProxy++#endif+++{- |+Get the value of the “@h@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #h+@+-}+getVideoRegionOfInterestMetaH :: MonadIO m => VideoRegionOfInterestMeta -> m Word32+getVideoRegionOfInterestMetaH s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO Word32+    return val++{- |+Set the value of the “@h@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #h 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaH :: MonadIO m => VideoRegionOfInterestMeta -> Word32 -> m ()+setVideoRegionOfInterestMetaH s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 40) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaHFieldInfo+instance AttrInfo VideoRegionOfInterestMetaHFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaHFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaHFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaHFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaHFieldInfo = Word32+    type AttrLabel VideoRegionOfInterestMetaHFieldInfo = "h"+    type AttrOrigin VideoRegionOfInterestMetaHFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaH+    attrSet _ = setVideoRegionOfInterestMetaH+    attrConstruct = undefined+    attrClear _ = undefined++videoRegionOfInterestMeta_h :: AttrLabelProxy "h"+videoRegionOfInterestMeta_h = AttrLabelProxy++#endif+++{- |+Get the value of the “@params@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoRegionOfInterestMeta #params+@+-}+getVideoRegionOfInterestMetaParams :: MonadIO m => VideoRegionOfInterestMeta -> m ([Ptr ()])+getVideoRegionOfInterestMetaParams s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr (GList (Ptr ())))+    val' <- unpackGList val+    return val'++{- |+Set the value of the “@params@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoRegionOfInterestMeta [ #params 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoRegionOfInterestMetaParams :: MonadIO m => VideoRegionOfInterestMeta -> Ptr (GList (Ptr ())) -> m ()+setVideoRegionOfInterestMetaParams s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 48) (val :: Ptr (GList (Ptr ())))++{- |+Set the value of the “@params@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #params+@+-}+clearVideoRegionOfInterestMetaParams :: MonadIO m => VideoRegionOfInterestMeta -> m ()+clearVideoRegionOfInterestMetaParams s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 48) (FP.nullPtr :: Ptr (GList (Ptr ())))++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaParamsFieldInfo+instance AttrInfo VideoRegionOfInterestMetaParamsFieldInfo where+    type AttrAllowedOps VideoRegionOfInterestMetaParamsFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoRegionOfInterestMetaParamsFieldInfo = (~) (Ptr (GList (Ptr ())))+    type AttrBaseTypeConstraint VideoRegionOfInterestMetaParamsFieldInfo = (~) VideoRegionOfInterestMeta+    type AttrGetType VideoRegionOfInterestMetaParamsFieldInfo = [Ptr ()]+    type AttrLabel VideoRegionOfInterestMetaParamsFieldInfo = "params"+    type AttrOrigin VideoRegionOfInterestMetaParamsFieldInfo = VideoRegionOfInterestMeta+    attrGet _ = getVideoRegionOfInterestMetaParams+    attrSet _ = setVideoRegionOfInterestMetaParams+    attrConstruct = undefined+    attrClear _ = clearVideoRegionOfInterestMetaParams++videoRegionOfInterestMeta_params :: AttrLabelProxy "params"+videoRegionOfInterestMeta_params = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoRegionOfInterestMeta+type instance O.AttributeList VideoRegionOfInterestMeta = VideoRegionOfInterestMetaAttributeList+type VideoRegionOfInterestMetaAttributeList = ('[ '("meta", VideoRegionOfInterestMetaMetaFieldInfo), '("roiType", VideoRegionOfInterestMetaRoiTypeFieldInfo), '("id", VideoRegionOfInterestMetaIdFieldInfo), '("parentId", VideoRegionOfInterestMetaParentIdFieldInfo), '("x", VideoRegionOfInterestMetaXFieldInfo), '("y", VideoRegionOfInterestMetaYFieldInfo), '("w", VideoRegionOfInterestMetaWFieldInfo), '("h", VideoRegionOfInterestMetaHFieldInfo), '("params", VideoRegionOfInterestMetaParamsFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoRegionOfInterestMeta::add_param+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoRegionOfInterestMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstStructure", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_region_of_interest_meta_add_param" gst_video_region_of_interest_meta_add_param :: +    Ptr VideoRegionOfInterestMeta ->        -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"})+    Ptr Gst.Structure.Structure ->          -- s : TInterface (Name {namespace = "Gst", name = "Structure"})+    IO ()++{- |+Attach element-specific parameters to /@meta@/ meant to be used by downstream+elements which may handle this ROI.+The name of /@s@/ is used to identify the element these parameters are meant for.++This is typically used to tell encoders how they should encode this specific region.+For example, a structure named \"roi\/x264enc\" could be used to give the+QP offsets this encoder should use when encoding the region described in /@meta@/.+Multiple parameters can be defined for the same meta so different encoders+can be supported by cross platform applications).++/Since: 1.14/+-}+videoRegionOfInterestMetaAddParam ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoRegionOfInterestMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' -}+    -> Gst.Structure.Structure+    {- ^ /@s@/: a 'GI.Gst.Structs.Structure.Structure' -}+    -> m ()+videoRegionOfInterestMetaAddParam meta s = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    s' <- B.ManagedPtr.disownBoxed s+    gst_video_region_of_interest_meta_add_param meta' s'+    touchManagedPtr meta+    touchManagedPtr s+    return ()++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaAddParamMethodInfo+instance (signature ~ (Gst.Structure.Structure -> m ()), MonadIO m) => O.MethodInfo VideoRegionOfInterestMetaAddParamMethodInfo VideoRegionOfInterestMeta signature where+    overloadedMethod _ = videoRegionOfInterestMetaAddParam++#endif++-- method VideoRegionOfInterestMeta::get_param+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "meta", argType = TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoRegionOfInterestMeta", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a name.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "Structure"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_region_of_interest_meta_get_param" gst_video_region_of_interest_meta_get_param :: +    Ptr VideoRegionOfInterestMeta ->        -- meta : TInterface (Name {namespace = "GstVideo", name = "VideoRegionOfInterestMeta"})+    CString ->                              -- name : TBasicType TUTF8+    IO (Ptr Gst.Structure.Structure)++{- |+Retrieve the parameter for /@meta@/ having /@name@/ as structure name,+or 'Nothing' if there is none.++/Since: 1.14/+-}+videoRegionOfInterestMetaGetParam ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoRegionOfInterestMeta+    {- ^ /@meta@/: a 'GI.GstVideo.Structs.VideoRegionOfInterestMeta.VideoRegionOfInterestMeta' -}+    -> T.Text+    {- ^ /@name@/: a name. -}+    -> m (Maybe Gst.Structure.Structure)+    {- ^ __Returns:__ a 'GI.Gst.Structs.Structure.Structure' -}+videoRegionOfInterestMetaGetParam meta name = liftIO $ do+    meta' <- unsafeManagedPtrGetPtr meta+    name' <- textToCString name+    result <- gst_video_region_of_interest_meta_get_param meta' name'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (newBoxed Gst.Structure.Structure) result'+        return result''+    touchManagedPtr meta+    freeMem name'+    return maybeResult++#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaGetParamMethodInfo+instance (signature ~ (T.Text -> m (Maybe Gst.Structure.Structure)), MonadIO m) => O.MethodInfo VideoRegionOfInterestMetaGetParamMethodInfo VideoRegionOfInterestMeta signature where+    overloadedMethod _ = videoRegionOfInterestMetaGetParam++#endif++-- method VideoRegionOfInterestMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_region_of_interest_meta_get_info" gst_video_region_of_interest_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoRegionOfInterestMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoRegionOfInterestMetaGetInfo  = liftIO $ do+    result <- gst_video_region_of_interest_meta_get_info+    checkUnexpectedReturnNULL "videoRegionOfInterestMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoRegionOfInterestMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoRegionOfInterestMetaMethod "addParam" o = VideoRegionOfInterestMetaAddParamMethodInfo+    ResolveVideoRegionOfInterestMetaMethod "getParam" o = VideoRegionOfInterestMetaGetParamMethodInfo+    ResolveVideoRegionOfInterestMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoRegionOfInterestMetaMethod t VideoRegionOfInterestMeta, O.MethodInfo info VideoRegionOfInterestMeta p) => OL.IsLabel t (VideoRegionOfInterestMeta -> 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++
+ GI/GstVideo/Structs/VideoRegionOfInterestMeta.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoRegionOfInterestMeta 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++newtype VideoRegionOfInterestMeta = VideoRegionOfInterestMeta (ManagedPtr VideoRegionOfInterestMeta)+instance WrappedPtr VideoRegionOfInterestMeta where+#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaAddParamMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoRegionOfInterestMetaGetParamMethodInfo+#endif
+ GI/GstVideo/Structs/VideoResampler.hs view
@@ -0,0 +1,649 @@+++{- |+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.GstVideo.Structs.VideoResampler.VideoResampler' is a structure which holds the information+required to perform various kinds of resampling filtering.++/Since: 1.6/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoResampler+    ( ++-- * Exported types+    VideoResampler(..)                      ,+    newZeroVideoResampler                   ,+    noVideoResampler                        ,+++ -- * Methods+-- ** clear #method:clear#++#if ENABLE_OVERLOADING+    VideoResamplerClearMethodInfo           ,+#endif+    videoResamplerClear                     ,+++-- ** init #method:init#++#if ENABLE_OVERLOADING+    VideoResamplerInitMethodInfo            ,+#endif+    videoResamplerInit                      ,+++++ -- * Properties+-- ** inSize #attr:inSize#+{- | the input size+-}+    getVideoResamplerInSize                 ,+    setVideoResamplerInSize                 ,+#if ENABLE_OVERLOADING+    videoResampler_inSize                   ,+#endif+++-- ** maxTaps #attr:maxTaps#+{- | the maximum number of taps+-}+    getVideoResamplerMaxTaps                ,+    setVideoResamplerMaxTaps                ,+#if ENABLE_OVERLOADING+    videoResampler_maxTaps                  ,+#endif+++-- ** nPhases #attr:nPhases#+{- | the number of phases+-}+    getVideoResamplerNPhases                ,+    setVideoResamplerNPhases                ,+#if ENABLE_OVERLOADING+    videoResampler_nPhases                  ,+#endif+++-- ** nTaps #attr:nTaps#+{- | array with new number of taps for each phase+-}+    getVideoResamplerNTaps                  ,+    setVideoResamplerNTaps                  ,+#if ENABLE_OVERLOADING+    videoResampler_nTaps                    ,+#endif+++-- ** offset #attr:offset#+{- | array with the source offset for each output element+-}+    getVideoResamplerOffset                 ,+    setVideoResamplerOffset                 ,+#if ENABLE_OVERLOADING+    videoResampler_offset                   ,+#endif+++-- ** outSize #attr:outSize#+{- | the output size+-}+    getVideoResamplerOutSize                ,+    setVideoResamplerOutSize                ,+#if ENABLE_OVERLOADING+    videoResampler_outSize                  ,+#endif+++-- ** phase #attr:phase#+{- | array with the phase to use for each output element+-}+    getVideoResamplerPhase                  ,+    setVideoResamplerPhase                  ,+#if ENABLE_OVERLOADING+    videoResampler_phase                    ,+#endif+++-- ** taps #attr:taps#+{- | the taps for all phases+-}+    getVideoResamplerTaps                   ,+    setVideoResamplerTaps                   ,+#if ENABLE_OVERLOADING+    videoResampler_taps                     ,+#endif+++++    ) 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.Gst.Structs.Structure as Gst.Structure+import {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags++-- | Memory-managed wrapper type.+newtype VideoResampler = VideoResampler (ManagedPtr VideoResampler)+instance WrappedPtr VideoResampler where+    wrappedPtrCalloc = callocBytes 80+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 80 >=> wrapPtr VideoResampler)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoResampler` struct initialized to zero.+newZeroVideoResampler :: MonadIO m => m VideoResampler+newZeroVideoResampler = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoResampler++instance tag ~ 'AttrSet => Constructible VideoResampler tag where+    new _ attrs = do+        o <- newZeroVideoResampler+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoResampler`.+noVideoResampler :: Maybe VideoResampler+noVideoResampler = Nothing++{- |+Get the value of the “@in_size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #inSize+@+-}+getVideoResamplerInSize :: MonadIO m => VideoResampler -> m Int32+getVideoResamplerInSize s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Int32+    return val++{- |+Set the value of the “@in_size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #inSize 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerInSize :: MonadIO m => VideoResampler -> Int32 -> m ()+setVideoResamplerInSize s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoResamplerInSizeFieldInfo+instance AttrInfo VideoResamplerInSizeFieldInfo where+    type AttrAllowedOps VideoResamplerInSizeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerInSizeFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoResamplerInSizeFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerInSizeFieldInfo = Int32+    type AttrLabel VideoResamplerInSizeFieldInfo = "in_size"+    type AttrOrigin VideoResamplerInSizeFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerInSize+    attrSet _ = setVideoResamplerInSize+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_inSize :: AttrLabelProxy "inSize"+videoResampler_inSize = AttrLabelProxy++#endif+++{- |+Get the value of the “@out_size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #outSize+@+-}+getVideoResamplerOutSize :: MonadIO m => VideoResampler -> m Int32+getVideoResamplerOutSize s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Int32+    return val++{- |+Set the value of the “@out_size@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #outSize 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerOutSize :: MonadIO m => VideoResampler -> Int32 -> m ()+setVideoResamplerOutSize s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 4) (val :: Int32)++#if ENABLE_OVERLOADING+data VideoResamplerOutSizeFieldInfo+instance AttrInfo VideoResamplerOutSizeFieldInfo where+    type AttrAllowedOps VideoResamplerOutSizeFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerOutSizeFieldInfo = (~) Int32+    type AttrBaseTypeConstraint VideoResamplerOutSizeFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerOutSizeFieldInfo = Int32+    type AttrLabel VideoResamplerOutSizeFieldInfo = "out_size"+    type AttrOrigin VideoResamplerOutSizeFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerOutSize+    attrSet _ = setVideoResamplerOutSize+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_outSize :: AttrLabelProxy "outSize"+videoResampler_outSize = AttrLabelProxy++#endif+++{- |+Get the value of the “@max_taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #maxTaps+@+-}+getVideoResamplerMaxTaps :: MonadIO m => VideoResampler -> m Word32+getVideoResamplerMaxTaps s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++{- |+Set the value of the “@max_taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #maxTaps 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerMaxTaps :: MonadIO m => VideoResampler -> Word32 -> m ()+setVideoResamplerMaxTaps s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoResamplerMaxTapsFieldInfo+instance AttrInfo VideoResamplerMaxTapsFieldInfo where+    type AttrAllowedOps VideoResamplerMaxTapsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerMaxTapsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoResamplerMaxTapsFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerMaxTapsFieldInfo = Word32+    type AttrLabel VideoResamplerMaxTapsFieldInfo = "max_taps"+    type AttrOrigin VideoResamplerMaxTapsFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerMaxTaps+    attrSet _ = setVideoResamplerMaxTaps+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_maxTaps :: AttrLabelProxy "maxTaps"+videoResampler_maxTaps = AttrLabelProxy++#endif+++{- |+Get the value of the “@n_phases@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #nPhases+@+-}+getVideoResamplerNPhases :: MonadIO m => VideoResampler -> m Word32+getVideoResamplerNPhases s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++{- |+Set the value of the “@n_phases@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #nPhases 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerNPhases :: MonadIO m => VideoResampler -> Word32 -> m ()+setVideoResamplerNPhases s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 12) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoResamplerNPhasesFieldInfo+instance AttrInfo VideoResamplerNPhasesFieldInfo where+    type AttrAllowedOps VideoResamplerNPhasesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerNPhasesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoResamplerNPhasesFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerNPhasesFieldInfo = Word32+    type AttrLabel VideoResamplerNPhasesFieldInfo = "n_phases"+    type AttrOrigin VideoResamplerNPhasesFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerNPhases+    attrSet _ = setVideoResamplerNPhases+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_nPhases :: AttrLabelProxy "nPhases"+videoResampler_nPhases = AttrLabelProxy++#endif+++{- |+Get the value of the “@offset@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #offset+@+-}+getVideoResamplerOffset :: MonadIO m => VideoResampler -> m Word32+getVideoResamplerOffset s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO Word32+    return val++{- |+Set the value of the “@offset@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #offset 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerOffset :: MonadIO m => VideoResampler -> Word32 -> m ()+setVideoResamplerOffset s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoResamplerOffsetFieldInfo+instance AttrInfo VideoResamplerOffsetFieldInfo where+    type AttrAllowedOps VideoResamplerOffsetFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerOffsetFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoResamplerOffsetFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerOffsetFieldInfo = Word32+    type AttrLabel VideoResamplerOffsetFieldInfo = "offset"+    type AttrOrigin VideoResamplerOffsetFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerOffset+    attrSet _ = setVideoResamplerOffset+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_offset :: AttrLabelProxy "offset"+videoResampler_offset = AttrLabelProxy++#endif+++{- |+Get the value of the “@phase@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #phase+@+-}+getVideoResamplerPhase :: MonadIO m => VideoResampler -> m Word32+getVideoResamplerPhase s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word32+    return val++{- |+Set the value of the “@phase@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #phase 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerPhase :: MonadIO m => VideoResampler -> Word32 -> m ()+setVideoResamplerPhase s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoResamplerPhaseFieldInfo+instance AttrInfo VideoResamplerPhaseFieldInfo where+    type AttrAllowedOps VideoResamplerPhaseFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerPhaseFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoResamplerPhaseFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerPhaseFieldInfo = Word32+    type AttrLabel VideoResamplerPhaseFieldInfo = "phase"+    type AttrOrigin VideoResamplerPhaseFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerPhase+    attrSet _ = setVideoResamplerPhase+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_phase :: AttrLabelProxy "phase"+videoResampler_phase = AttrLabelProxy++#endif+++{- |+Get the value of the “@n_taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #nTaps+@+-}+getVideoResamplerNTaps :: MonadIO m => VideoResampler -> m Word32+getVideoResamplerNTaps s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word32+    return val++{- |+Set the value of the “@n_taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #nTaps 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerNTaps :: MonadIO m => VideoResampler -> Word32 -> m ()+setVideoResamplerNTaps s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoResamplerNTapsFieldInfo+instance AttrInfo VideoResamplerNTapsFieldInfo where+    type AttrAllowedOps VideoResamplerNTapsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerNTapsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoResamplerNTapsFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerNTapsFieldInfo = Word32+    type AttrLabel VideoResamplerNTapsFieldInfo = "n_taps"+    type AttrOrigin VideoResamplerNTapsFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerNTaps+    attrSet _ = setVideoResamplerNTaps+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_nTaps :: AttrLabelProxy "nTaps"+videoResampler_nTaps = AttrLabelProxy++#endif+++{- |+Get the value of the “@taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoResampler #taps+@+-}+getVideoResamplerTaps :: MonadIO m => VideoResampler -> m Double+getVideoResamplerTaps s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO CDouble+    let val' = realToFrac val+    return val'++{- |+Set the value of the “@taps@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoResampler [ #taps 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoResamplerTaps :: MonadIO m => VideoResampler -> Double -> m ()+setVideoResamplerTaps s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = realToFrac val+    poke (ptr `plusPtr` 40) (val' :: CDouble)++#if ENABLE_OVERLOADING+data VideoResamplerTapsFieldInfo+instance AttrInfo VideoResamplerTapsFieldInfo where+    type AttrAllowedOps VideoResamplerTapsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoResamplerTapsFieldInfo = (~) Double+    type AttrBaseTypeConstraint VideoResamplerTapsFieldInfo = (~) VideoResampler+    type AttrGetType VideoResamplerTapsFieldInfo = Double+    type AttrLabel VideoResamplerTapsFieldInfo = "taps"+    type AttrOrigin VideoResamplerTapsFieldInfo = VideoResampler+    attrGet _ = getVideoResamplerTaps+    attrSet _ = setVideoResamplerTaps+    attrConstruct = undefined+    attrClear _ = undefined++videoResampler_taps :: AttrLabelProxy "taps"+videoResampler_taps = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoResampler+type instance O.AttributeList VideoResampler = VideoResamplerAttributeList+type VideoResamplerAttributeList = ('[ '("inSize", VideoResamplerInSizeFieldInfo), '("outSize", VideoResamplerOutSizeFieldInfo), '("maxTaps", VideoResamplerMaxTapsFieldInfo), '("nPhases", VideoResamplerNPhasesFieldInfo), '("offset", VideoResamplerOffsetFieldInfo), '("phase", VideoResamplerPhaseFieldInfo), '("nTaps", VideoResamplerNTapsFieldInfo), '("taps", VideoResamplerTapsFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoResampler::clear+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "resampler", argType = TInterface (Name {namespace = "GstVideo", name = "VideoResampler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoResampler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_resampler_clear" gst_video_resampler_clear :: +    Ptr VideoResampler ->                   -- resampler : TInterface (Name {namespace = "GstVideo", name = "VideoResampler"})+    IO ()++{- |+Clear a previously initialized 'GI.GstVideo.Structs.VideoResampler.VideoResampler' /@resampler@/.++/Since: 1.6/+-}+videoResamplerClear ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoResampler+    {- ^ /@resampler@/: a 'GI.GstVideo.Structs.VideoResampler.VideoResampler' -}+    -> m ()+videoResamplerClear resampler = liftIO $ do+    resampler' <- unsafeManagedPtrGetPtr resampler+    gst_video_resampler_clear resampler'+    touchManagedPtr resampler+    return ()++#if ENABLE_OVERLOADING+data VideoResamplerClearMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoResamplerClearMethodInfo VideoResampler signature where+    overloadedMethod _ = videoResamplerClear++#endif++-- method VideoResampler::init+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "resampler", argType = TInterface (Name {namespace = "GstVideo", name = "VideoResampler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "method", argType = TInterface (Name {namespace = "GstVideo", name = "VideoResamplerMethod"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoResamplerFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_phases", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_taps", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "shift", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in_size", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_size", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface (Name {namespace = "Gst", name = "Structure"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, 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_video_resampler_init" gst_video_resampler_init :: +    Ptr VideoResampler ->                   -- resampler : TInterface (Name {namespace = "GstVideo", name = "VideoResampler"})+    CUInt ->                                -- method : TInterface (Name {namespace = "GstVideo", name = "VideoResamplerMethod"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoResamplerFlags"})+    Word32 ->                               -- n_phases : TBasicType TUInt+    Word32 ->                               -- n_taps : TBasicType TUInt+    CDouble ->                              -- shift : TBasicType TDouble+    Word32 ->                               -- in_size : TBasicType TUInt+    Word32 ->                               -- out_size : TBasicType TUInt+    Ptr Gst.Structure.Structure ->          -- options : TInterface (Name {namespace = "Gst", name = "Structure"})+    IO CInt++{- |+/No description available in the introspection data./+-}+videoResamplerInit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoResampler+    -> GstVideo.Enums.VideoResamplerMethod+    -> [GstVideo.Flags.VideoResamplerFlags]+    -> Word32+    -> Word32+    -> Double+    -> Word32+    -> Word32+    -> Gst.Structure.Structure+    -> m Bool+videoResamplerInit resampler method flags nPhases nTaps shift inSize outSize options = liftIO $ do+    resampler' <- unsafeManagedPtrGetPtr resampler+    let method' = (fromIntegral . fromEnum) method+    let flags' = gflagsToWord flags+    let shift' = realToFrac shift+    options' <- unsafeManagedPtrGetPtr options+    result <- gst_video_resampler_init resampler' method' flags' nPhases nTaps shift' inSize outSize options'+    let result' = (/= 0) result+    touchManagedPtr resampler+    touchManagedPtr options+    return result'++#if ENABLE_OVERLOADING+data VideoResamplerInitMethodInfo+instance (signature ~ (GstVideo.Enums.VideoResamplerMethod -> [GstVideo.Flags.VideoResamplerFlags] -> Word32 -> Word32 -> Double -> Word32 -> Word32 -> Gst.Structure.Structure -> m Bool), MonadIO m) => O.MethodInfo VideoResamplerInitMethodInfo VideoResampler signature where+    overloadedMethod _ = videoResamplerInit++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoResamplerMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoResamplerMethod "clear" o = VideoResamplerClearMethodInfo+    ResolveVideoResamplerMethod "init" o = VideoResamplerInitMethodInfo+    ResolveVideoResamplerMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoResamplerMethod t VideoResampler, O.MethodInfo info VideoResampler p) => OL.IsLabel t (VideoResampler -> 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++
+ GI/GstVideo/Structs/VideoResampler.hs-boot view
@@ -0,0 +1,32 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoResampler 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++newtype VideoResampler = VideoResampler (ManagedPtr VideoResampler)+instance WrappedPtr VideoResampler where+#if ENABLE_OVERLOADING+data VideoResamplerClearMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoResamplerInitMethodInfo+#endif
+ GI/GstVideo/Structs/VideoScaler.hs view
@@ -0,0 +1,426 @@+++{- |+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.GstVideo.Structs.VideoScaler.VideoScaler' is a utility object for rescaling and resampling+video frames using various interpolation \/ sampling methods.+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoScaler+    ( ++-- * Exported types+    VideoScaler(..)                         ,+    noVideoScaler                           ,+++ -- * Methods+-- ** 2d #method:2d#++#if ENABLE_OVERLOADING+    VideoScaler2dMethodInfo                 ,+#endif+    videoScaler2d                           ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoScalerFreeMethodInfo               ,+#endif+    videoScalerFree                         ,+++-- ** getCoeff #method:getCoeff#++#if ENABLE_OVERLOADING+    VideoScalerGetCoeffMethodInfo           ,+#endif+    videoScalerGetCoeff                     ,+++-- ** getMaxTaps #method:getMaxTaps#++#if ENABLE_OVERLOADING+    VideoScalerGetMaxTapsMethodInfo         ,+#endif+    videoScalerGetMaxTaps                   ,+++-- ** horizontal #method:horizontal#++#if ENABLE_OVERLOADING+    VideoScalerHorizontalMethodInfo         ,+#endif+    videoScalerHorizontal                   ,+++-- ** vertical #method:vertical#++#if ENABLE_OVERLOADING+    VideoScalerVerticalMethodInfo           ,+#endif+    videoScalerVertical                     ,+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoScaler = VideoScaler (ManagedPtr VideoScaler)+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?+instance WrappedPtr VideoScaler where+    wrappedPtrCalloc = return nullPtr+    wrappedPtrCopy = return+    wrappedPtrFree = Nothing++-- | A convenience alias for `Nothing` :: `Maybe` `VideoScaler`.+noVideoScaler :: Maybe VideoScaler+noVideoScaler = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoScaler+type instance O.AttributeList VideoScaler = VideoScalerAttributeList+type VideoScalerAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoScaler::2d+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "hscale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a horzontal #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "vscale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a vertical #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat for @srcs and @dest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "source pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "source pixels stride", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "destination pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_stride", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "destination pixels stride", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the horizontal destination offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the vertical destination offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of output pixels to scale", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of output lines to scale", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_scaler_2d" gst_video_scaler_2d :: +    Ptr VideoScaler ->                      -- hscale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    Ptr VideoScaler ->                      -- vscale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Ptr () ->                               -- src : TBasicType TPtr+    Int32 ->                                -- src_stride : TBasicType TInt+    Ptr () ->                               -- dest : TBasicType TPtr+    Int32 ->                                -- dest_stride : TBasicType TInt+    Word32 ->                               -- x : TBasicType TUInt+    Word32 ->                               -- y : TBasicType TUInt+    Word32 ->                               -- width : TBasicType TUInt+    Word32 ->                               -- height : TBasicType TUInt+    IO ()++{- |+Scale a rectangle of pixels in /@src@/ with /@srcStride@/ to /@dest@/ with+/@destStride@/ using the horizontal scaler /@hscaler@/ and the vertical+scaler /@vscale@/.++One or both of /@hscale@/ and /@vscale@/ can be NULL to only perform scaling in+one dimension or do a copy without scaling.++/@x@/ and /@y@/ are the coordinates in the destination image to process.+-}+videoScaler2d ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@hscale@/: a horzontal 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> VideoScaler+    {- ^ /@vscale@/: a vertical 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' for /@srcs@/ and /@dest@/ -}+    -> Ptr ()+    {- ^ /@src@/: source pixels -}+    -> Int32+    {- ^ /@srcStride@/: source pixels stride -}+    -> Ptr ()+    {- ^ /@dest@/: destination pixels -}+    -> Int32+    {- ^ /@destStride@/: destination pixels stride -}+    -> Word32+    {- ^ /@x@/: the horizontal destination offset -}+    -> Word32+    {- ^ /@y@/: the vertical destination offset -}+    -> Word32+    {- ^ /@width@/: the number of output pixels to scale -}+    -> Word32+    {- ^ /@height@/: the number of output lines to scale -}+    -> m ()+videoScaler2d hscale vscale format src srcStride dest destStride x y width height = liftIO $ do+    hscale' <- unsafeManagedPtrGetPtr hscale+    vscale' <- unsafeManagedPtrGetPtr vscale+    let format' = (fromIntegral . fromEnum) format+    gst_video_scaler_2d hscale' vscale' format' src srcStride dest destStride x y width height+    touchManagedPtr hscale+    touchManagedPtr vscale+    return ()++#if ENABLE_OVERLOADING+data VideoScaler2dMethodInfo+instance (signature ~ (VideoScaler -> GstVideo.Enums.VideoFormat -> Ptr () -> Int32 -> Ptr () -> Int32 -> Word32 -> Word32 -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoScaler2dMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScaler2d++#endif++-- method VideoScaler::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "scale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_scaler_free" gst_video_scaler_free :: +    Ptr VideoScaler ->                      -- scale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    IO ()++{- |+Free a previously allocated 'GI.GstVideo.Structs.VideoScaler.VideoScaler' /@scale@/.+-}+videoScalerFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@scale@/: a 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> m ()+videoScalerFree scale = liftIO $ do+    scale' <- unsafeManagedPtrGetPtr scale+    gst_video_scaler_free scale'+    touchManagedPtr scale+    return ()++#if ENABLE_OVERLOADING+data VideoScalerFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoScalerFreeMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScalerFree++#endif++-- method VideoScaler::get_coeff+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "scale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_offset", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an output offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in_offset", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "result input offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_taps", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "result n_taps", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TDouble)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_scaler_get_coeff" gst_video_scaler_get_coeff :: +    Ptr VideoScaler ->                      -- scale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    Word32 ->                               -- out_offset : TBasicType TUInt+    Word32 ->                               -- in_offset : TBasicType TUInt+    Word32 ->                               -- n_taps : TBasicType TUInt+    IO CDouble++{- |+For a given pixel at /@outOffset@/, get the first required input pixel at+/@inOffset@/ and the /@nTaps@/ filter coefficients.++Note that for interlaced content, /@inOffset@/ needs to be incremented with+2 to get the next input line.+-}+videoScalerGetCoeff ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@scale@/: a 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> Word32+    {- ^ /@outOffset@/: an output offset -}+    -> Word32+    {- ^ /@inOffset@/: result input offset -}+    -> Word32+    {- ^ /@nTaps@/: result n_taps -}+    -> m Double+    {- ^ __Returns:__ an array of /@nTap@/ gdouble values with filter coefficients. -}+videoScalerGetCoeff scale outOffset inOffset nTaps = liftIO $ do+    scale' <- unsafeManagedPtrGetPtr scale+    result <- gst_video_scaler_get_coeff scale' outOffset inOffset nTaps+    let result' = realToFrac result+    touchManagedPtr scale+    return result'++#if ENABLE_OVERLOADING+data VideoScalerGetCoeffMethodInfo+instance (signature ~ (Word32 -> Word32 -> Word32 -> m Double), MonadIO m) => O.MethodInfo VideoScalerGetCoeffMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScalerGetCoeff++#endif++-- method VideoScaler::get_max_taps+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "scale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoScaler", 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_video_scaler_get_max_taps" gst_video_scaler_get_max_taps :: +    Ptr VideoScaler ->                      -- scale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    IO Word32++{- |+Get the maximum number of taps for /@scale@/.+-}+videoScalerGetMaxTaps ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@scale@/: a 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> m Word32+    {- ^ __Returns:__ the maximum number of taps -}+videoScalerGetMaxTaps scale = liftIO $ do+    scale' <- unsafeManagedPtrGetPtr scale+    result <- gst_video_scaler_get_max_taps scale'+    touchManagedPtr scale+    return result++#if ENABLE_OVERLOADING+data VideoScalerGetMaxTapsMethodInfo+instance (signature ~ (m Word32), MonadIO m) => O.MethodInfo VideoScalerGetMaxTapsMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScalerGetMaxTaps++#endif++-- method VideoScaler::horizontal+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "scale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat for @src and @dest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "source pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "destination pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_offset", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the horizontal destination offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of pixels to scale", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_scaler_horizontal" gst_video_scaler_horizontal :: +    Ptr VideoScaler ->                      -- scale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Ptr () ->                               -- src : TBasicType TPtr+    Ptr () ->                               -- dest : TBasicType TPtr+    Word32 ->                               -- dest_offset : TBasicType TUInt+    Word32 ->                               -- width : TBasicType TUInt+    IO ()++{- |+Horizontally scale the pixels in /@src@/ to /@dest@/, starting from /@destOffset@/+for /@width@/ samples.+-}+videoScalerHorizontal ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@scale@/: a 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' for /@src@/ and /@dest@/ -}+    -> Ptr ()+    {- ^ /@src@/: source pixels -}+    -> Ptr ()+    {- ^ /@dest@/: destination pixels -}+    -> Word32+    {- ^ /@destOffset@/: the horizontal destination offset -}+    -> Word32+    {- ^ /@width@/: the number of pixels to scale -}+    -> m ()+videoScalerHorizontal scale format src dest destOffset width = liftIO $ do+    scale' <- unsafeManagedPtrGetPtr scale+    let format' = (fromIntegral . fromEnum) format+    gst_video_scaler_horizontal scale' format' src dest destOffset width+    touchManagedPtr scale+    return ()++#if ENABLE_OVERLOADING+data VideoScalerHorizontalMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> Ptr () -> Ptr () -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoScalerHorizontalMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScalerHorizontal++#endif++-- method VideoScaler::vertical+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "scale", argType = TInterface (Name {namespace = "GstVideo", name = "VideoScaler"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoScaler", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat for @srcs and @dest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_lines", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "source pixels lines", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "destination pixels", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_offset", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the vertical destination offset", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of pixels to scale", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_scaler_vertical" gst_video_scaler_vertical :: +    Ptr VideoScaler ->                      -- scale : TInterface (Name {namespace = "GstVideo", name = "VideoScaler"})+    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Ptr () ->                               -- src_lines : TBasicType TPtr+    Ptr () ->                               -- dest : TBasicType TPtr+    Word32 ->                               -- dest_offset : TBasicType TUInt+    Word32 ->                               -- width : TBasicType TUInt+    IO ()++{- |+Vertically combine /@width@/ pixels in the lines in /@srcLines@/ to /@dest@/.+/@dest@/ is the location of the target line at /@destOffset@/ and+/@srcs@/ are the input lines for /@destOffset@/, as obtained with+@/gst_video_scaler_get_info()/@.+-}+videoScalerVertical ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoScaler+    {- ^ /@scale@/: a 'GI.GstVideo.Structs.VideoScaler.VideoScaler' -}+    -> GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' for /@srcs@/ and /@dest@/ -}+    -> Ptr ()+    {- ^ /@srcLines@/: source pixels lines -}+    -> Ptr ()+    {- ^ /@dest@/: destination pixels -}+    -> Word32+    {- ^ /@destOffset@/: the vertical destination offset -}+    -> Word32+    {- ^ /@width@/: the number of pixels to scale -}+    -> m ()+videoScalerVertical scale format srcLines dest destOffset width = liftIO $ do+    scale' <- unsafeManagedPtrGetPtr scale+    let format' = (fromIntegral . fromEnum) format+    gst_video_scaler_vertical scale' format' srcLines dest destOffset width+    touchManagedPtr scale+    return ()++#if ENABLE_OVERLOADING+data VideoScalerVerticalMethodInfo+instance (signature ~ (GstVideo.Enums.VideoFormat -> Ptr () -> Ptr () -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoScalerVerticalMethodInfo VideoScaler signature where+    overloadedMethod _ = videoScalerVertical++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoScalerMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoScalerMethod "2d" o = VideoScaler2dMethodInfo+    ResolveVideoScalerMethod "free" o = VideoScalerFreeMethodInfo+    ResolveVideoScalerMethod "horizontal" o = VideoScalerHorizontalMethodInfo+    ResolveVideoScalerMethod "vertical" o = VideoScalerVerticalMethodInfo+    ResolveVideoScalerMethod "getCoeff" o = VideoScalerGetCoeffMethodInfo+    ResolveVideoScalerMethod "getMaxTaps" o = VideoScalerGetMaxTapsMethodInfo+    ResolveVideoScalerMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoScalerMethod t VideoScaler, O.MethodInfo info VideoScaler p) => OL.IsLabel t (VideoScaler -> 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++
+ GI/GstVideo/Structs/VideoScaler.hs-boot view
@@ -0,0 +1,44 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoScaler 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++newtype VideoScaler = VideoScaler (ManagedPtr VideoScaler)+instance WrappedPtr VideoScaler where+#if ENABLE_OVERLOADING+data VideoScaler2dMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoScalerFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoScalerGetCoeffMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoScalerGetMaxTapsMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoScalerHorizontalMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoScalerVerticalMethodInfo+#endif
+ GI/GstVideo/Structs/VideoTimeCode.hs view
@@ -0,0 +1,1476 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++/@fieldCount@/ must be 0 for progressive video and 1 or 2 for interlaced.++A representation of a SMPTE time code.++/@hours@/ must be positive and less than 24. Will wrap around otherwise.+/@minutes@/ and /@seconds@/ must be positive and less than 60.+/@frames@/ must be less than or equal to /@config@/.fps_n \/ /@config@/.fps_d+These values are *NOT* automatically normalized.++/Since: 1.10/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoTimeCode+    ( ++-- * Exported types+    VideoTimeCode(..)                       ,+    newZeroVideoTimeCode                    ,+    noVideoTimeCode                         ,+++ -- * Methods+-- ** addFrames #method:addFrames#++#if ENABLE_OVERLOADING+    VideoTimeCodeAddFramesMethodInfo        ,+#endif+    videoTimeCodeAddFrames                  ,+++-- ** addInterval #method:addInterval#++#if ENABLE_OVERLOADING+    VideoTimeCodeAddIntervalMethodInfo      ,+#endif+    videoTimeCodeAddInterval                ,+++-- ** clear #method:clear#++#if ENABLE_OVERLOADING+    VideoTimeCodeClearMethodInfo            ,+#endif+    videoTimeCodeClear                      ,+++-- ** compare #method:compare#++#if ENABLE_OVERLOADING+    VideoTimeCodeCompareMethodInfo          ,+#endif+    videoTimeCodeCompare                    ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoTimeCodeCopyMethodInfo             ,+#endif+    videoTimeCodeCopy                       ,+++-- ** framesSinceDailyJam #method:framesSinceDailyJam#++#if ENABLE_OVERLOADING+    VideoTimeCodeFramesSinceDailyJamMethodInfo,+#endif+    videoTimeCodeFramesSinceDailyJam        ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoTimeCodeFreeMethodInfo             ,+#endif+    videoTimeCodeFree                       ,+++-- ** incrementFrame #method:incrementFrame#++#if ENABLE_OVERLOADING+    VideoTimeCodeIncrementFrameMethodInfo   ,+#endif+    videoTimeCodeIncrementFrame             ,+++-- ** init #method:init#++#if ENABLE_OVERLOADING+    VideoTimeCodeInitMethodInfo             ,+#endif+    videoTimeCodeInit                       ,+++-- ** initFromDateTime #method:initFromDateTime#++#if ENABLE_OVERLOADING+    VideoTimeCodeInitFromDateTimeMethodInfo ,+#endif+    videoTimeCodeInitFromDateTime           ,+++-- ** initFromDateTimeFull #method:initFromDateTimeFull#++#if ENABLE_OVERLOADING+    VideoTimeCodeInitFromDateTimeFullMethodInfo,+#endif+    videoTimeCodeInitFromDateTimeFull       ,+++-- ** isValid #method:isValid#++#if ENABLE_OVERLOADING+    VideoTimeCodeIsValidMethodInfo          ,+#endif+    videoTimeCodeIsValid                    ,+++-- ** new #method:new#++    videoTimeCodeNew                        ,+++-- ** newEmpty #method:newEmpty#++    videoTimeCodeNewEmpty                   ,+++-- ** newFromDateTime #method:newFromDateTime#++    videoTimeCodeNewFromDateTime            ,+++-- ** newFromDateTimeFull #method:newFromDateTimeFull#++    videoTimeCodeNewFromDateTimeFull        ,+++-- ** newFromString #method:newFromString#++    videoTimeCodeNewFromString              ,+++-- ** nsecSinceDailyJam #method:nsecSinceDailyJam#++#if ENABLE_OVERLOADING+    VideoTimeCodeNsecSinceDailyJamMethodInfo,+#endif+    videoTimeCodeNsecSinceDailyJam          ,+++-- ** toDateTime #method:toDateTime#++#if ENABLE_OVERLOADING+    VideoTimeCodeToDateTimeMethodInfo       ,+#endif+    videoTimeCodeToDateTime                 ,+++-- ** toString #method:toString#++#if ENABLE_OVERLOADING+    VideoTimeCodeToStringMethodInfo         ,+#endif+    videoTimeCodeToString                   ,+++++ -- * Properties+-- ** config #attr:config#+{- | the corresponding 'GI.GstVideo.Structs.VideoTimeCodeConfig.VideoTimeCodeConfig'+-}+    getVideoTimeCodeConfig                  ,+#if ENABLE_OVERLOADING+    videoTimeCode_config                    ,+#endif+++-- ** fieldCount #attr:fieldCount#+{- | Interlaced video field count+-}+    getVideoTimeCodeFieldCount              ,+    setVideoTimeCodeFieldCount              ,+#if ENABLE_OVERLOADING+    videoTimeCode_fieldCount                ,+#endif+++-- ** frames #attr:frames#+{- | the frames field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode'+-}+    getVideoTimeCodeFrames                  ,+    setVideoTimeCodeFrames                  ,+#if ENABLE_OVERLOADING+    videoTimeCode_frames                    ,+#endif+++-- ** hours #attr:hours#+{- | the hours field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode'+-}+    getVideoTimeCodeHours                   ,+    setVideoTimeCodeHours                   ,+#if ENABLE_OVERLOADING+    videoTimeCode_hours                     ,+#endif+++-- ** minutes #attr:minutes#+{- | the minutes field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode'+-}+    getVideoTimeCodeMinutes                 ,+    setVideoTimeCodeMinutes                 ,+#if ENABLE_OVERLOADING+    videoTimeCode_minutes                   ,+#endif+++-- ** seconds #attr:seconds#+{- | the seconds field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode'+-}+    getVideoTimeCodeSeconds                 ,+    setVideoTimeCodeSeconds                 ,+#if ENABLE_OVERLOADING+    videoTimeCode_seconds                   ,+#endif+++++    ) 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.GLib.Structs.DateTime as GLib.DateTime+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCodeConfig as GstVideo.VideoTimeCodeConfig+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCodeInterval as GstVideo.VideoTimeCodeInterval++-- | Memory-managed wrapper type.+newtype VideoTimeCode = VideoTimeCode (ManagedPtr VideoTimeCode)+foreign import ccall "gst_video_time_code_get_type" c_gst_video_time_code_get_type :: +    IO GType++instance BoxedObject VideoTimeCode where+    boxedType _ = c_gst_video_time_code_get_type++-- | Construct a `VideoTimeCode` struct initialized to zero.+newZeroVideoTimeCode :: MonadIO m => m VideoTimeCode+newZeroVideoTimeCode = liftIO $ callocBoxedBytes 48 >>= wrapBoxed VideoTimeCode++instance tag ~ 'AttrSet => Constructible VideoTimeCode tag where+    new _ attrs = do+        o <- newZeroVideoTimeCode+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoTimeCode`.+noVideoTimeCode :: Maybe VideoTimeCode+noVideoTimeCode = Nothing++{- |+Get the value of the “@config@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #config+@+-}+getVideoTimeCodeConfig :: MonadIO m => VideoTimeCode -> m GstVideo.VideoTimeCodeConfig.VideoTimeCodeConfig+getVideoTimeCodeConfig s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr GstVideo.VideoTimeCodeConfig.VideoTimeCodeConfig)+    val' <- (newPtr GstVideo.VideoTimeCodeConfig.VideoTimeCodeConfig) val+    return val'++#if ENABLE_OVERLOADING+data VideoTimeCodeConfigFieldInfo+instance AttrInfo VideoTimeCodeConfigFieldInfo where+    type AttrAllowedOps VideoTimeCodeConfigFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeConfigFieldInfo = (~) (Ptr GstVideo.VideoTimeCodeConfig.VideoTimeCodeConfig)+    type AttrBaseTypeConstraint VideoTimeCodeConfigFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeConfigFieldInfo = GstVideo.VideoTimeCodeConfig.VideoTimeCodeConfig+    type AttrLabel VideoTimeCodeConfigFieldInfo = "config"+    type AttrOrigin VideoTimeCodeConfigFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeConfig+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_config :: AttrLabelProxy "config"+videoTimeCode_config = AttrLabelProxy++#endif+++{- |+Get the value of the “@hours@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #hours+@+-}+getVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> m Word32+getVideoTimeCodeHours s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 24) :: IO Word32+    return val++{- |+Set the value of the “@hours@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCode [ #hours 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeHours :: MonadIO m => VideoTimeCode -> Word32 -> m ()+setVideoTimeCodeHours s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 24) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeHoursFieldInfo+instance AttrInfo VideoTimeCodeHoursFieldInfo where+    type AttrAllowedOps VideoTimeCodeHoursFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeHoursFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeHoursFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeHoursFieldInfo = Word32+    type AttrLabel VideoTimeCodeHoursFieldInfo = "hours"+    type AttrOrigin VideoTimeCodeHoursFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeHours+    attrSet _ = setVideoTimeCodeHours+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_hours :: AttrLabelProxy "hours"+videoTimeCode_hours = AttrLabelProxy++#endif+++{- |+Get the value of the “@minutes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #minutes+@+-}+getVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> m Word32+getVideoTimeCodeMinutes s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 28) :: IO Word32+    return val++{- |+Set the value of the “@minutes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCode [ #minutes 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeMinutes :: MonadIO m => VideoTimeCode -> Word32 -> m ()+setVideoTimeCodeMinutes s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 28) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeMinutesFieldInfo+instance AttrInfo VideoTimeCodeMinutesFieldInfo where+    type AttrAllowedOps VideoTimeCodeMinutesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeMinutesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeMinutesFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeMinutesFieldInfo = Word32+    type AttrLabel VideoTimeCodeMinutesFieldInfo = "minutes"+    type AttrOrigin VideoTimeCodeMinutesFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeMinutes+    attrSet _ = setVideoTimeCodeMinutes+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_minutes :: AttrLabelProxy "minutes"+videoTimeCode_minutes = AttrLabelProxy++#endif+++{- |+Get the value of the “@seconds@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #seconds+@+-}+getVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> m Word32+getVideoTimeCodeSeconds s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 32) :: IO Word32+    return val++{- |+Set the value of the “@seconds@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCode [ #seconds 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeSeconds :: MonadIO m => VideoTimeCode -> Word32 -> m ()+setVideoTimeCodeSeconds s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 32) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeSecondsFieldInfo+instance AttrInfo VideoTimeCodeSecondsFieldInfo where+    type AttrAllowedOps VideoTimeCodeSecondsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeSecondsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeSecondsFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeSecondsFieldInfo = Word32+    type AttrLabel VideoTimeCodeSecondsFieldInfo = "seconds"+    type AttrOrigin VideoTimeCodeSecondsFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeSeconds+    attrSet _ = setVideoTimeCodeSeconds+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_seconds :: AttrLabelProxy "seconds"+videoTimeCode_seconds = AttrLabelProxy++#endif+++{- |+Get the value of the “@frames@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #frames+@+-}+getVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> m Word32+getVideoTimeCodeFrames s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 36) :: IO Word32+    return val++{- |+Set the value of the “@frames@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCode [ #frames 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeFrames :: MonadIO m => VideoTimeCode -> Word32 -> m ()+setVideoTimeCodeFrames s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 36) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeFramesFieldInfo+instance AttrInfo VideoTimeCodeFramesFieldInfo where+    type AttrAllowedOps VideoTimeCodeFramesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeFramesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeFramesFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeFramesFieldInfo = Word32+    type AttrLabel VideoTimeCodeFramesFieldInfo = "frames"+    type AttrOrigin VideoTimeCodeFramesFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeFrames+    attrSet _ = setVideoTimeCodeFrames+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_frames :: AttrLabelProxy "frames"+videoTimeCode_frames = AttrLabelProxy++#endif+++{- |+Get the value of the “@field_count@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCode #fieldCount+@+-}+getVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> m Word32+getVideoTimeCodeFieldCount s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 40) :: IO Word32+    return val++{- |+Set the value of the “@field_count@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCode [ #fieldCount 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeFieldCount :: MonadIO m => VideoTimeCode -> Word32 -> m ()+setVideoTimeCodeFieldCount s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 40) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeFieldCountFieldInfo+instance AttrInfo VideoTimeCodeFieldCountFieldInfo where+    type AttrAllowedOps VideoTimeCodeFieldCountFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeFieldCountFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeFieldCountFieldInfo = (~) VideoTimeCode+    type AttrGetType VideoTimeCodeFieldCountFieldInfo = Word32+    type AttrLabel VideoTimeCodeFieldCountFieldInfo = "field_count"+    type AttrOrigin VideoTimeCodeFieldCountFieldInfo = VideoTimeCode+    attrGet _ = getVideoTimeCodeFieldCount+    attrSet _ = setVideoTimeCodeFieldCount+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCode_fieldCount :: AttrLabelProxy "fieldCount"+videoTimeCode_fieldCount = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoTimeCode+type instance O.AttributeList VideoTimeCode = VideoTimeCodeAttributeList+type VideoTimeCodeAttributeList = ('[ '("config", VideoTimeCodeConfigFieldInfo), '("hours", VideoTimeCodeHoursFieldInfo), '("minutes", VideoTimeCodeMinutesFieldInfo), '("seconds", VideoTimeCodeSecondsFieldInfo), '("frames", VideoTimeCodeFramesFieldInfo), '("fieldCount", VideoTimeCodeFieldCountFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoTimeCode::new+-- method type : Constructor+-- Args : [Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "latest_daily_jam", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The latest daily jam of the #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hours field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the minutes field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the seconds field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frames field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_new" gst_video_time_code_new :: +    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- latest_daily_jam : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- hours : TBasicType TUInt+    Word32 ->                               -- minutes : TBasicType TUInt+    Word32 ->                               -- seconds : TBasicType TUInt+    Word32 ->                               -- frames : TBasicType TUInt+    Word32 ->                               -- field_count : TBasicType TUInt+    IO (Ptr VideoTimeCode)++{- |+/@fieldCount@/ is 0 for progressive, 1 or 2 for interlaced.+/@latestDaiyJam@/ reference is stolen from caller.++/Since: 1.10/+-}+videoTimeCodeNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@latestDailyJam@/: The latest daily jam of the 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@hours@/: the hours field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@minutes@/: the minutes field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@seconds@/: the seconds field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@frames@/: the frames field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m VideoTimeCode+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' with the given values.+The values are not checked for being in a valid range. To see if your+timecode actually has valid content, use 'GI.GstVideo.Structs.VideoTimeCode.videoTimeCodeIsValid'. -}+videoTimeCodeNew fpsN fpsD latestDailyJam flags hours minutes seconds frames fieldCount = liftIO $ do+    latestDailyJam' <- unsafeManagedPtrGetPtr latestDailyJam+    let flags' = gflagsToWord flags+    result <- gst_video_time_code_new fpsN fpsD latestDailyJam' flags' hours minutes seconds frames fieldCount+    checkUnexpectedReturnNULL "videoTimeCodeNew" result+    result' <- (wrapBoxed VideoTimeCode) result+    touchManagedPtr latestDailyJam+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCode::new_empty+-- method type : Constructor+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_new_empty" gst_video_time_code_new_empty :: +    IO (Ptr VideoTimeCode)++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeNewEmpty ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m VideoTimeCode+    {- ^ __Returns:__ a new empty, invalid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+videoTimeCodeNewEmpty  = liftIO $ do+    result <- gst_video_time_code_new_empty+    checkUnexpectedReturnNULL "videoTimeCodeNewEmpty" result+    result' <- (wrapBoxed VideoTimeCode) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCode::new_from_date_time+-- method type : Constructor+-- Args : [Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GDateTime to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_new_from_date_time" gst_video_time_code_new_from_date_time :: +    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- dt : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- field_count : TBasicType TUInt+    IO (Ptr VideoTimeCode)++{- |+The resulting config->latest_daily_jam is set to+midnight, and timecode is set to the given time.++This might return a completely invalid timecode, use+'GI.GstVideo.Structs.VideoTimeCode.videoTimeCodeNewFromDateTimeFull' to ensure+that you would get 'Nothing' instead in that case.++/Since: 1.12/+-}+videoTimeCodeNewFromDateTime ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@dt@/: 'GI.GLib.Structs.DateTime.DateTime' to convert -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m VideoTimeCode+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' representation of /@dt@/. -}+videoTimeCodeNewFromDateTime fpsN fpsD dt flags fieldCount = liftIO $ do+    dt' <- unsafeManagedPtrGetPtr dt+    let flags' = gflagsToWord flags+    result <- gst_video_time_code_new_from_date_time fpsN fpsD dt' flags' fieldCount+    checkUnexpectedReturnNULL "videoTimeCodeNewFromDateTime" result+    result' <- (wrapBoxed VideoTimeCode) result+    touchManagedPtr dt+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCode::new_from_date_time_full+-- method type : Constructor+-- Args : [Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GDateTime to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_new_from_date_time_full" gst_video_time_code_new_from_date_time_full :: +    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- dt : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- field_count : TBasicType TUInt+    IO (Ptr VideoTimeCode)++{- |+The resulting config->latest_daily_jam is set to+midnight, and timecode is set to the given time.++/Since: 1.16/+-}+videoTimeCodeNewFromDateTimeFull ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@dt@/: 'GI.GLib.Structs.DateTime.DateTime' to convert -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m VideoTimeCode+    {- ^ __Returns:__ the 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' representation of /@dt@/, or 'Nothing' if+  no valid timecode could be created. -}+videoTimeCodeNewFromDateTimeFull fpsN fpsD dt flags fieldCount = liftIO $ do+    dt' <- unsafeManagedPtrGetPtr dt+    let flags' = gflagsToWord flags+    result <- gst_video_time_code_new_from_date_time_full fpsN fpsD dt' flags' fieldCount+    checkUnexpectedReturnNULL "videoTimeCodeNewFromDateTimeFull" result+    result' <- (wrapBoxed VideoTimeCode) result+    touchManagedPtr dt+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCode::new_from_string+-- method type : Constructor+-- Args : [Arg {argCName = "tc_str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The string that represents the #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_new_from_string" gst_video_time_code_new_from_string :: +    CString ->                              -- tc_str : TBasicType TUTF8+    IO (Ptr VideoTimeCode)++{- |+/No description available in the introspection data./++/Since: 1.12/+-}+videoTimeCodeNewFromString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    T.Text+    {- ^ /@tcStr@/: The string that represents the 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m (Maybe VideoTimeCode)+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' from the given string or 'Nothing'+  if the string could not be passed. -}+videoTimeCodeNewFromString tcStr = liftIO $ do+    tcStr' <- textToCString tcStr+    result <- gst_video_time_code_new_from_string tcStr'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (wrapBoxed VideoTimeCode) result'+        return result''+    freeMem tcStr'+    return maybeResult++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCode::add_frames+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "How many frames to add or subtract", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_add_frames" gst_video_time_code_add_frames :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Int64 ->                                -- frames : TBasicType TInt64+    IO ()++{- |+Adds or subtracts /@frames@/ amount of frames to /@tc@/. tc needs to+contain valid data, as verified by 'GI.GstVideo.Structs.VideoTimeCode.videoTimeCodeIsValid'.++/Since: 1.10/+-}+videoTimeCodeAddFrames ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Int64+    {- ^ /@frames@/: How many frames to add or subtract -}+    -> m ()+videoTimeCodeAddFrames tc frames = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_add_frames tc' frames+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeAddFramesMethodInfo+instance (signature ~ (Int64 -> m ()), MonadIO m) => O.MethodInfo VideoTimeCodeAddFramesMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeAddFrames++#endif++-- method VideoTimeCode::add_interval+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstVideoTimeCode where the diff should be added. This\nmust contain valid timecode values.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tc_inter", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GstVideoTimeCodeInterval to add to @tc.\nThe interval must contain valid values, except that for drop-frame\ntimecode, it may also contain timecodes which would normally\nbe dropped. These are then corrected to the next reasonable timecode.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_add_interval" gst_video_time_code_add_interval :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Ptr GstVideo.VideoTimeCodeInterval.VideoTimeCodeInterval -> -- tc_inter : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"})+    IO (Ptr VideoTimeCode)++{- |+This makes a component-wise addition of /@tcInter@/ to /@tc@/. For example,+adding (\"01:02:03:04\", \"00:01:00:00\") will return \"01:03:03:04\".+When it comes to drop-frame timecodes,+adding (\"00:00:00;00\", \"00:01:00:00\") will return \"00:01:00;02\"+because of drop-frame oddities. However,+adding (\"00:09:00;02\", \"00:01:00:00\") will return \"00:10:00;00\"+because this time we can have an exact minute.++/Since: 1.12/+-}+videoTimeCodeAddInterval ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: The 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' where the diff should be added. This+must contain valid timecode values. -}+    -> GstVideo.VideoTimeCodeInterval.VideoTimeCodeInterval+    {- ^ /@tcInter@/: The 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' to add to /@tc@/.+The interval must contain valid values, except that for drop-frame+timecode, it may also contain timecodes which would normally+be dropped. These are then corrected to the next reasonable timecode. -}+    -> m (Maybe VideoTimeCode)+    {- ^ __Returns:__ A new 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' with /@tcInter@/ added or 'Nothing'+  if the interval can\'t be added. -}+videoTimeCodeAddInterval tc tcInter = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    tcInter' <- unsafeManagedPtrGetPtr tcInter+    result <- gst_video_time_code_add_interval tc' tcInter'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (wrapBoxed VideoTimeCode) result'+        return result''+    touchManagedPtr tc+    touchManagedPtr tcInter+    return maybeResult++#if ENABLE_OVERLOADING+data VideoTimeCodeAddIntervalMethodInfo+instance (signature ~ (GstVideo.VideoTimeCodeInterval.VideoTimeCodeInterval -> m (Maybe VideoTimeCode)), MonadIO m) => O.MethodInfo VideoTimeCodeAddIntervalMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeAddInterval++#endif++-- method VideoTimeCode::clear+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_clear" gst_video_time_code_clear :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO ()++{- |+Initializes /@tc@/ with empty\/zero\/NULL values and frees any memory+it might currently use.++/Since: 1.10/+-}+videoTimeCodeClear ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m ()+videoTimeCodeClear tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_clear tc'+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeClearMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoTimeCodeClearMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeClear++#endif++-- method VideoTimeCode::compare+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc1", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tc2", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "another valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TInt)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_compare" gst_video_time_code_compare :: +    Ptr VideoTimeCode ->                    -- tc1 : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Ptr VideoTimeCode ->                    -- tc2 : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO Int32++{- |+Compares /@tc1@/ and /@tc2@/. If both have latest daily jam information, it is+taken into account. Otherwise, it is assumed that the daily jam of both+/@tc1@/ and /@tc2@/ was at the same time. Both time codes must be valid.++/Since: 1.10/+-}+videoTimeCodeCompare ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc1@/: a valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> VideoTimeCode+    {- ^ /@tc2@/: another valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m Int32+    {- ^ __Returns:__ 1 if /@tc1@/ is after /@tc2@/, -1 if /@tc1@/ is before /@tc2@/, 0 otherwise. -}+videoTimeCodeCompare tc1 tc2 = liftIO $ do+    tc1' <- unsafeManagedPtrGetPtr tc1+    tc2' <- unsafeManagedPtrGetPtr tc2+    result <- gst_video_time_code_compare tc1' tc2'+    touchManagedPtr tc1+    touchManagedPtr tc2+    return result++#if ENABLE_OVERLOADING+data VideoTimeCodeCompareMethodInfo+instance (signature ~ (VideoTimeCode -> m Int32), MonadIO m) => O.MethodInfo VideoTimeCodeCompareMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeCompare++#endif++-- method VideoTimeCode::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_copy" gst_video_time_code_copy :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO (Ptr VideoTimeCode)++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m VideoTimeCode+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' with the same values as /@tc@/. -}+videoTimeCodeCopy tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_copy tc'+    checkUnexpectedReturnNULL "videoTimeCodeCopy" result+    result' <- (wrapBoxed VideoTimeCode) result+    touchManagedPtr tc+    return result'++#if ENABLE_OVERLOADING+data VideoTimeCodeCopyMethodInfo+instance (signature ~ (m VideoTimeCode), MonadIO m) => O.MethodInfo VideoTimeCodeCopyMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeCopy++#endif++-- method VideoTimeCode::frames_since_daily_jam+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUInt64)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_frames_since_daily_jam" gst_video_time_code_frames_since_daily_jam :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO Word64++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeFramesSinceDailyJam ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m Word64+    {- ^ __Returns:__ how many frames have passed since the daily jam of /@tc@/. -}+videoTimeCodeFramesSinceDailyJam tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_frames_since_daily_jam tc'+    touchManagedPtr tc+    return result++#if ENABLE_OVERLOADING+data VideoTimeCodeFramesSinceDailyJamMethodInfo+instance (signature ~ (m Word64), MonadIO m) => O.MethodInfo VideoTimeCodeFramesSinceDailyJamMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeFramesSinceDailyJam++#endif++-- method VideoTimeCode::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_free" gst_video_time_code_free :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO ()++{- |+Frees /@tc@/.++/Since: 1.10/+-}+videoTimeCodeFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m ()+videoTimeCodeFree tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_free tc'+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoTimeCodeFreeMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeFree++#endif++-- method VideoTimeCode::increment_frame+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_increment_frame" gst_video_time_code_increment_frame :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO ()++{- |+Adds one frame to /@tc@/.++/Since: 1.10/+-}+videoTimeCodeIncrementFrame ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m ()+videoTimeCodeIncrementFrame tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_increment_frame tc'+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeIncrementFrameMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoTimeCodeIncrementFrameMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeIncrementFrame++#endif++-- method VideoTimeCode::init+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "latest_daily_jam", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The latest daily jam of the #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hours field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the minutes field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the seconds field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frames field of #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_init" gst_video_time_code_init :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- latest_daily_jam : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- hours : TBasicType TUInt+    Word32 ->                               -- minutes : TBasicType TUInt+    Word32 ->                               -- seconds : TBasicType TUInt+    Word32 ->                               -- frames : TBasicType TUInt+    Word32 ->                               -- field_count : TBasicType TUInt+    IO ()++{- |+/@fieldCount@/ is 0 for progressive, 1 or 2 for interlaced.+/@latestDaiyJam@/ reference is stolen from caller.++Initializes /@tc@/ with the given values.+The values are not checked for being in a valid range. To see if your+timecode actually has valid content, use 'GI.GstVideo.Structs.VideoTimeCode.videoTimeCodeIsValid'.++/Since: 1.10/+-}+videoTimeCodeInit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@latestDailyJam@/: The latest daily jam of the 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@hours@/: the hours field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@minutes@/: the minutes field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@seconds@/: the seconds field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@frames@/: the frames field of 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m ()+videoTimeCodeInit tc fpsN fpsD latestDailyJam flags hours minutes seconds frames fieldCount = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    latestDailyJam' <- unsafeManagedPtrGetPtr latestDailyJam+    let flags' = gflagsToWord flags+    gst_video_time_code_init tc' fpsN fpsD latestDailyJam' flags' hours minutes seconds frames fieldCount+    touchManagedPtr tc+    touchManagedPtr latestDailyJam+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeInitMethodInfo+instance (signature ~ (Word32 -> Word32 -> GLib.DateTime.DateTime -> [GstVideo.Flags.VideoTimeCodeFlags] -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoTimeCodeInitMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeInit++#endif++-- method VideoTimeCode::init_from_date_time+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an uninitialized #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GDateTime to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_init_from_date_time" gst_video_time_code_init_from_date_time :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- dt : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- field_count : TBasicType TUInt+    IO ()++{- |+The resulting config->latest_daily_jam is set to midnight, and timecode is+set to the given time.++Will assert on invalid parameters, use 'GI.GstVideo.Structs.VideoTimeCode.videoTimeCodeInitFromDateTimeFull'+for being able to handle invalid parameters.++/Since: 1.12/+-}+videoTimeCodeInitFromDateTime ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: an uninitialized 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@dt@/: 'GI.GLib.Structs.DateTime.DateTime' to convert -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m ()+videoTimeCodeInitFromDateTime tc fpsN fpsD dt flags fieldCount = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    dt' <- unsafeManagedPtrGetPtr dt+    let flags' = gflagsToWord flags+    gst_video_time_code_init_from_date_time tc' fpsN fpsD dt' flags' fieldCount+    touchManagedPtr tc+    touchManagedPtr dt+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeInitFromDateTimeMethodInfo+instance (signature ~ (Word32 -> Word32 -> GLib.DateTime.DateTime -> [GstVideo.Flags.VideoTimeCodeFlags] -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoTimeCodeInitFromDateTimeMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeInitFromDateTime++#endif++-- method VideoTimeCode::init_from_date_time_full+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_n", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Numerator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fps_d", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Denominator of the frame rate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt", argType = TInterface (Name {namespace = "GLib", name = "DateTime"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GDateTime to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCodeFlags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Interlaced video field count", 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_video_time_code_init_from_date_time_full" gst_video_time_code_init_from_date_time_full :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    Word32 ->                               -- fps_n : TBasicType TUInt+    Word32 ->                               -- fps_d : TBasicType TUInt+    Ptr GLib.DateTime.DateTime ->           -- dt : TInterface (Name {namespace = "GLib", name = "DateTime"})+    CUInt ->                                -- flags : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeFlags"})+    Word32 ->                               -- field_count : TBasicType TUInt+    IO CInt++{- |+The resulting config->latest_daily_jam is set to+midnight, and timecode is set to the given time.++/Since: 1.16/+-}+videoTimeCodeInitFromDateTimeFull ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> Word32+    {- ^ /@fpsN@/: Numerator of the frame rate -}+    -> Word32+    {- ^ /@fpsD@/: Denominator of the frame rate -}+    -> GLib.DateTime.DateTime+    {- ^ /@dt@/: 'GI.GLib.Structs.DateTime.DateTime' to convert -}+    -> [GstVideo.Flags.VideoTimeCodeFlags]+    {- ^ /@flags@/: 'GI.GstVideo.Flags.VideoTimeCodeFlags' -}+    -> Word32+    {- ^ /@fieldCount@/: Interlaced video field count -}+    -> m Bool+    {- ^ __Returns:__ 'True' if /@tc@/ could be correctly initialized to a valid timecode -}+videoTimeCodeInitFromDateTimeFull tc fpsN fpsD dt flags fieldCount = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    dt' <- unsafeManagedPtrGetPtr dt+    let flags' = gflagsToWord flags+    result <- gst_video_time_code_init_from_date_time_full tc' fpsN fpsD dt' flags' fieldCount+    let result' = (/= 0) result+    touchManagedPtr tc+    touchManagedPtr dt+    return result'++#if ENABLE_OVERLOADING+data VideoTimeCodeInitFromDateTimeFullMethodInfo+instance (signature ~ (Word32 -> Word32 -> GLib.DateTime.DateTime -> [GstVideo.Flags.VideoTimeCodeFlags] -> Word32 -> m Bool), MonadIO m) => O.MethodInfo VideoTimeCodeInitFromDateTimeFullMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeInitFromDateTimeFull++#endif++-- method VideoTimeCode::is_valid+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "#GstVideoTimeCode to check", 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_video_time_code_is_valid" gst_video_time_code_is_valid :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO CInt++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeIsValid ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' to check -}+    -> m Bool+    {- ^ __Returns:__ whether /@tc@/ is a valid timecode (supported frame rate,+hours\/minutes\/seconds\/frames not overflowing) -}+videoTimeCodeIsValid tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_is_valid tc'+    let result' = (/= 0) result+    touchManagedPtr tc+    return result'++#if ENABLE_OVERLOADING+data VideoTimeCodeIsValidMethodInfo+instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo VideoTimeCodeIsValidMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeIsValid++#endif++-- method VideoTimeCode::nsec_since_daily_jam+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a valid #GstVideoTimeCode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUInt64)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_nsec_since_daily_jam" gst_video_time_code_nsec_since_daily_jam :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO Word64++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeNsecSinceDailyJam ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: a valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' -}+    -> m Word64+    {- ^ __Returns:__ how many nsec have passed since the daily jam of /@tc@/. -}+videoTimeCodeNsecSinceDailyJam tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_nsec_since_daily_jam tc'+    touchManagedPtr tc+    return result++#if ENABLE_OVERLOADING+data VideoTimeCodeNsecSinceDailyJamMethodInfo+instance (signature ~ (m Word64), MonadIO m) => O.MethodInfo VideoTimeCodeNsecSinceDailyJamMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeNsecSinceDailyJam++#endif++-- method VideoTimeCode::to_date_time+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GstVideoTimeCode to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GLib", name = "DateTime"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_to_date_time" gst_video_time_code_to_date_time :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO (Ptr GLib.DateTime.DateTime)++{- |+The /@tc@/.config->latest_daily_jam is required to be non-NULL.++/Since: 1.10/+-}+videoTimeCodeToDateTime ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: A valid 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' to convert -}+    -> m (Maybe GLib.DateTime.DateTime)+    {- ^ __Returns:__ the 'GI.GLib.Structs.DateTime.DateTime' representation of /@tc@/ or 'Nothing' if /@tc@/+  has no daily jam. -}+videoTimeCodeToDateTime tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_to_date_time tc'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (wrapBoxed GLib.DateTime.DateTime) result'+        return result''+    touchManagedPtr tc+    return maybeResult++#if ENABLE_OVERLOADING+data VideoTimeCodeToDateTimeMethodInfo+instance (signature ~ (m (Maybe GLib.DateTime.DateTime)), MonadIO m) => O.MethodInfo VideoTimeCodeToDateTimeMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeToDateTime++#endif++-- method VideoTimeCode::to_string+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GstVideoTimeCode to convert", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TBasicType TUTF8)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_to_string" gst_video_time_code_to_string :: +    Ptr VideoTimeCode ->                    -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCode"})+    IO CString++{- |+/No description available in the introspection data./++/Since: 1.10/+-}+videoTimeCodeToString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCode+    {- ^ /@tc@/: A 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' to convert -}+    -> m T.Text+    {- ^ __Returns:__ the SMPTE ST 2059-1:2015 string representation of /@tc@/. That will+take the form hh:mm:ss:ff. The last separator (between seconds and frames)+may vary:++\';\' for drop-frame, non-interlaced content and for drop-frame interlaced+field 2+\',\' for drop-frame interlaced field 1+\':\' for non-drop-frame, non-interlaced content and for non-drop-frame+interlaced field 2+\'.\' for non-drop-frame interlaced field 1 -}+videoTimeCodeToString tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_to_string tc'+    checkUnexpectedReturnNULL "videoTimeCodeToString" result+    result' <- cstringToText result+    freeMem result+    touchManagedPtr tc+    return result'++#if ENABLE_OVERLOADING+data VideoTimeCodeToStringMethodInfo+instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo VideoTimeCodeToStringMethodInfo VideoTimeCode signature where+    overloadedMethod _ = videoTimeCodeToString++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoTimeCodeMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoTimeCodeMethod "addFrames" o = VideoTimeCodeAddFramesMethodInfo+    ResolveVideoTimeCodeMethod "addInterval" o = VideoTimeCodeAddIntervalMethodInfo+    ResolveVideoTimeCodeMethod "clear" o = VideoTimeCodeClearMethodInfo+    ResolveVideoTimeCodeMethod "compare" o = VideoTimeCodeCompareMethodInfo+    ResolveVideoTimeCodeMethod "copy" o = VideoTimeCodeCopyMethodInfo+    ResolveVideoTimeCodeMethod "framesSinceDailyJam" o = VideoTimeCodeFramesSinceDailyJamMethodInfo+    ResolveVideoTimeCodeMethod "free" o = VideoTimeCodeFreeMethodInfo+    ResolveVideoTimeCodeMethod "incrementFrame" o = VideoTimeCodeIncrementFrameMethodInfo+    ResolveVideoTimeCodeMethod "init" o = VideoTimeCodeInitMethodInfo+    ResolveVideoTimeCodeMethod "initFromDateTime" o = VideoTimeCodeInitFromDateTimeMethodInfo+    ResolveVideoTimeCodeMethod "initFromDateTimeFull" o = VideoTimeCodeInitFromDateTimeFullMethodInfo+    ResolveVideoTimeCodeMethod "isValid" o = VideoTimeCodeIsValidMethodInfo+    ResolveVideoTimeCodeMethod "nsecSinceDailyJam" o = VideoTimeCodeNsecSinceDailyJamMethodInfo+    ResolveVideoTimeCodeMethod "toDateTime" o = VideoTimeCodeToDateTimeMethodInfo+    ResolveVideoTimeCodeMethod "toString" o = VideoTimeCodeToStringMethodInfo+    ResolveVideoTimeCodeMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoTimeCodeMethod t VideoTimeCode, O.MethodInfo info VideoTimeCode p) => OL.IsLabel t (VideoTimeCode -> 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++
+ GI/GstVideo/Structs/VideoTimeCode.hs-boot view
@@ -0,0 +1,71 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoTimeCode 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++newtype VideoTimeCode = VideoTimeCode (ManagedPtr VideoTimeCode)+instance BoxedObject VideoTimeCode where+#if ENABLE_OVERLOADING+data VideoTimeCodeAddFramesMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeAddIntervalMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeClearMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeCompareMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeFramesSinceDailyJamMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeIncrementFrameMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeInitMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeInitFromDateTimeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeInitFromDateTimeFullMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeIsValidMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeNsecSinceDailyJamMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeToDateTimeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeToStringMethodInfo+#endif
+ GI/GstVideo/Structs/VideoTimeCodeConfig.hs view
@@ -0,0 +1,336 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Supported frame rates: 30000\/1001, 60000\/1001 (both with and without drop+frame), and integer frame rates e.g. 25\/1, 30\/1, 50\/1, 60\/1.++The configuration of the time code.++/Since: 1.10/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoTimeCodeConfig+    ( ++-- * Exported types+    VideoTimeCodeConfig(..)                 ,+    newZeroVideoTimeCodeConfig              ,+    noVideoTimeCodeConfig                   ,+++ -- * Properties+-- ** flags #attr:flags#+{- | the corresponding 'GI.GstVideo.Flags.VideoTimeCodeFlags'+-}+    getVideoTimeCodeConfigFlags             ,+    setVideoTimeCodeConfigFlags             ,+#if ENABLE_OVERLOADING+    videoTimeCodeConfig_flags               ,+#endif+++-- ** fpsD #attr:fpsD#+{- | Denominator of the frame rate+-}+    getVideoTimeCodeConfigFpsD              ,+    setVideoTimeCodeConfigFpsD              ,+#if ENABLE_OVERLOADING+    videoTimeCodeConfig_fpsD                ,+#endif+++-- ** fpsN #attr:fpsN#+{- | Numerator of the frame rate+-}+    getVideoTimeCodeConfigFpsN              ,+    setVideoTimeCodeConfigFpsN              ,+#if ENABLE_OVERLOADING+    videoTimeCodeConfig_fpsN                ,+#endif+++-- ** latestDailyJam #attr:latestDailyJam#+{- | The latest daily jam information, if present, or NULL+-}+    clearVideoTimeCodeConfigLatestDailyJam  ,+    getVideoTimeCodeConfigLatestDailyJam    ,+    setVideoTimeCodeConfigLatestDailyJam    ,+#if ENABLE_OVERLOADING+    videoTimeCodeConfig_latestDailyJam      ,+#endif+++++    ) 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.GLib.Structs.DateTime as GLib.DateTime+import {-# SOURCE #-} qualified GI.GstVideo.Flags as GstVideo.Flags++-- | Memory-managed wrapper type.+newtype VideoTimeCodeConfig = VideoTimeCodeConfig (ManagedPtr VideoTimeCodeConfig)+instance WrappedPtr VideoTimeCodeConfig where+    wrappedPtrCalloc = callocBytes 24+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 24 >=> wrapPtr VideoTimeCodeConfig)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoTimeCodeConfig` struct initialized to zero.+newZeroVideoTimeCodeConfig :: MonadIO m => m VideoTimeCodeConfig+newZeroVideoTimeCodeConfig = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoTimeCodeConfig++instance tag ~ 'AttrSet => Constructible VideoTimeCodeConfig tag where+    new _ attrs = do+        o <- newZeroVideoTimeCodeConfig+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoTimeCodeConfig`.+noVideoTimeCodeConfig :: Maybe VideoTimeCodeConfig+noVideoTimeCodeConfig = Nothing++{- |+Get the value of the “@fps_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeConfig #fpsN+@+-}+getVideoTimeCodeConfigFpsN :: MonadIO m => VideoTimeCodeConfig -> m Word32+getVideoTimeCodeConfigFpsN s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++{- |+Set the value of the “@fps_n@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeConfig [ #fpsN 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeConfigFpsN :: MonadIO m => VideoTimeCodeConfig -> Word32 -> m ()+setVideoTimeCodeConfigFpsN s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeConfigFpsNFieldInfo+instance AttrInfo VideoTimeCodeConfigFpsNFieldInfo where+    type AttrAllowedOps VideoTimeCodeConfigFpsNFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeConfigFpsNFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeConfigFpsNFieldInfo = (~) VideoTimeCodeConfig+    type AttrGetType VideoTimeCodeConfigFpsNFieldInfo = Word32+    type AttrLabel VideoTimeCodeConfigFpsNFieldInfo = "fps_n"+    type AttrOrigin VideoTimeCodeConfigFpsNFieldInfo = VideoTimeCodeConfig+    attrGet _ = getVideoTimeCodeConfigFpsN+    attrSet _ = setVideoTimeCodeConfigFpsN+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeConfig_fpsN :: AttrLabelProxy "fpsN"+videoTimeCodeConfig_fpsN = AttrLabelProxy++#endif+++{- |+Get the value of the “@fps_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeConfig #fpsD+@+-}+getVideoTimeCodeConfigFpsD :: MonadIO m => VideoTimeCodeConfig -> m Word32+getVideoTimeCodeConfigFpsD s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word32+    return val++{- |+Set the value of the “@fps_d@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeConfig [ #fpsD 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeConfigFpsD :: MonadIO m => VideoTimeCodeConfig -> Word32 -> m ()+setVideoTimeCodeConfigFpsD s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 4) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeConfigFpsDFieldInfo+instance AttrInfo VideoTimeCodeConfigFpsDFieldInfo where+    type AttrAllowedOps VideoTimeCodeConfigFpsDFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeConfigFpsDFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeConfigFpsDFieldInfo = (~) VideoTimeCodeConfig+    type AttrGetType VideoTimeCodeConfigFpsDFieldInfo = Word32+    type AttrLabel VideoTimeCodeConfigFpsDFieldInfo = "fps_d"+    type AttrOrigin VideoTimeCodeConfigFpsDFieldInfo = VideoTimeCodeConfig+    attrGet _ = getVideoTimeCodeConfigFpsD+    attrSet _ = setVideoTimeCodeConfigFpsD+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeConfig_fpsD :: AttrLabelProxy "fpsD"+videoTimeCodeConfig_fpsD = AttrLabelProxy++#endif+++{- |+Get the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeConfig #flags+@+-}+getVideoTimeCodeConfigFlags :: MonadIO m => VideoTimeCodeConfig -> m [GstVideo.Flags.VideoTimeCodeFlags]+getVideoTimeCodeConfigFlags s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO CUInt+    let val' = wordToGFlags val+    return val'++{- |+Set the value of the “@flags@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeConfig [ #flags 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeConfigFlags :: MonadIO m => VideoTimeCodeConfig -> [GstVideo.Flags.VideoTimeCodeFlags] -> m ()+setVideoTimeCodeConfigFlags s val = liftIO $ withManagedPtr s $ \ptr -> do+    let val' = gflagsToWord val+    poke (ptr `plusPtr` 8) (val' :: CUInt)++#if ENABLE_OVERLOADING+data VideoTimeCodeConfigFlagsFieldInfo+instance AttrInfo VideoTimeCodeConfigFlagsFieldInfo where+    type AttrAllowedOps VideoTimeCodeConfigFlagsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeConfigFlagsFieldInfo = (~) [GstVideo.Flags.VideoTimeCodeFlags]+    type AttrBaseTypeConstraint VideoTimeCodeConfigFlagsFieldInfo = (~) VideoTimeCodeConfig+    type AttrGetType VideoTimeCodeConfigFlagsFieldInfo = [GstVideo.Flags.VideoTimeCodeFlags]+    type AttrLabel VideoTimeCodeConfigFlagsFieldInfo = "flags"+    type AttrOrigin VideoTimeCodeConfigFlagsFieldInfo = VideoTimeCodeConfig+    attrGet _ = getVideoTimeCodeConfigFlags+    attrSet _ = setVideoTimeCodeConfigFlags+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeConfig_flags :: AttrLabelProxy "flags"+videoTimeCodeConfig_flags = AttrLabelProxy++#endif+++{- |+Get the value of the “@latest_daily_jam@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeConfig #latestDailyJam+@+-}+getVideoTimeCodeConfigLatestDailyJam :: MonadIO m => VideoTimeCodeConfig -> m (Maybe GLib.DateTime.DateTime)+getVideoTimeCodeConfigLatestDailyJam s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr GLib.DateTime.DateTime)+    result <- SP.convertIfNonNull val $ \val' -> do+        val'' <- (newBoxed GLib.DateTime.DateTime) val'+        return val''+    return result++{- |+Set the value of the “@latest_daily_jam@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeConfig [ #latestDailyJam 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeConfigLatestDailyJam :: MonadIO m => VideoTimeCodeConfig -> Ptr GLib.DateTime.DateTime -> m ()+setVideoTimeCodeConfigLatestDailyJam s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (val :: Ptr GLib.DateTime.DateTime)++{- |+Set the value of the “@latest_daily_jam@” field to `Nothing`.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.clear' #latestDailyJam+@+-}+clearVideoTimeCodeConfigLatestDailyJam :: MonadIO m => VideoTimeCodeConfig -> m ()+clearVideoTimeCodeConfigLatestDailyJam s = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 16) (FP.nullPtr :: Ptr GLib.DateTime.DateTime)++#if ENABLE_OVERLOADING+data VideoTimeCodeConfigLatestDailyJamFieldInfo+instance AttrInfo VideoTimeCodeConfigLatestDailyJamFieldInfo where+    type AttrAllowedOps VideoTimeCodeConfigLatestDailyJamFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]+    type AttrSetTypeConstraint VideoTimeCodeConfigLatestDailyJamFieldInfo = (~) (Ptr GLib.DateTime.DateTime)+    type AttrBaseTypeConstraint VideoTimeCodeConfigLatestDailyJamFieldInfo = (~) VideoTimeCodeConfig+    type AttrGetType VideoTimeCodeConfigLatestDailyJamFieldInfo = Maybe GLib.DateTime.DateTime+    type AttrLabel VideoTimeCodeConfigLatestDailyJamFieldInfo = "latest_daily_jam"+    type AttrOrigin VideoTimeCodeConfigLatestDailyJamFieldInfo = VideoTimeCodeConfig+    attrGet _ = getVideoTimeCodeConfigLatestDailyJam+    attrSet _ = setVideoTimeCodeConfigLatestDailyJam+    attrConstruct = undefined+    attrClear _ = clearVideoTimeCodeConfigLatestDailyJam++videoTimeCodeConfig_latestDailyJam :: AttrLabelProxy "latestDailyJam"+videoTimeCodeConfig_latestDailyJam = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoTimeCodeConfig+type instance O.AttributeList VideoTimeCodeConfig = VideoTimeCodeConfigAttributeList+type VideoTimeCodeConfigAttributeList = ('[ '("fpsN", VideoTimeCodeConfigFpsNFieldInfo), '("fpsD", VideoTimeCodeConfigFpsDFieldInfo), '("flags", VideoTimeCodeConfigFlagsFieldInfo), '("latestDailyJam", VideoTimeCodeConfigLatestDailyJamFieldInfo)] :: [(Symbol, *)])+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoTimeCodeConfigMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoTimeCodeConfigMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoTimeCodeConfigMethod t VideoTimeCodeConfig, O.MethodInfo info VideoTimeCodeConfig p) => OL.IsLabel t (VideoTimeCodeConfig -> 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++
+ GI/GstVideo/Structs/VideoTimeCodeConfig.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoTimeCodeConfig 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++newtype VideoTimeCodeConfig = VideoTimeCodeConfig (ManagedPtr VideoTimeCodeConfig)+instance WrappedPtr VideoTimeCodeConfig where
+ GI/GstVideo/Structs/VideoTimeCodeInterval.hs view
@@ -0,0 +1,596 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++A representation of a difference between two 'GI.GstVideo.Structs.VideoTimeCode.VideoTimeCode' instances.+Will not necessarily correspond to a real timecode (e.g. 00:00:10;00)++/Since: 1.12/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoTimeCodeInterval+    ( ++-- * Exported types+    VideoTimeCodeInterval(..)               ,+    newZeroVideoTimeCodeInterval            ,+    noVideoTimeCodeInterval                 ,+++ -- * Methods+-- ** clear #method:clear#++#if ENABLE_OVERLOADING+    VideoTimeCodeIntervalClearMethodInfo    ,+#endif+    videoTimeCodeIntervalClear              ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoTimeCodeIntervalCopyMethodInfo     ,+#endif+    videoTimeCodeIntervalCopy               ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoTimeCodeIntervalFreeMethodInfo     ,+#endif+    videoTimeCodeIntervalFree               ,+++-- ** init #method:init#++#if ENABLE_OVERLOADING+    VideoTimeCodeIntervalInitMethodInfo     ,+#endif+    videoTimeCodeIntervalInit               ,+++-- ** new #method:new#++    videoTimeCodeIntervalNew                ,+++-- ** newFromString #method:newFromString#++    videoTimeCodeIntervalNewFromString      ,+++++ -- * Properties+-- ** frames #attr:frames#+{- | the frames field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval'+-}+    getVideoTimeCodeIntervalFrames          ,+    setVideoTimeCodeIntervalFrames          ,+#if ENABLE_OVERLOADING+    videoTimeCodeInterval_frames            ,+#endif+++-- ** hours #attr:hours#+{- | the hours field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval'+-}+    getVideoTimeCodeIntervalHours           ,+    setVideoTimeCodeIntervalHours           ,+#if ENABLE_OVERLOADING+    videoTimeCodeInterval_hours             ,+#endif+++-- ** minutes #attr:minutes#+{- | the minutes field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval'+-}+    getVideoTimeCodeIntervalMinutes         ,+    setVideoTimeCodeIntervalMinutes         ,+#if ENABLE_OVERLOADING+    videoTimeCodeInterval_minutes           ,+#endif+++-- ** seconds #attr:seconds#+{- | the seconds field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval'+-}+    getVideoTimeCodeIntervalSeconds         ,+    setVideoTimeCodeIntervalSeconds         ,+#if ENABLE_OVERLOADING+    videoTimeCodeInterval_seconds           ,+#endif+++++    ) 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+++-- | Memory-managed wrapper type.+newtype VideoTimeCodeInterval = VideoTimeCodeInterval (ManagedPtr VideoTimeCodeInterval)+foreign import ccall "gst_video_time_code_interval_get_type" c_gst_video_time_code_interval_get_type :: +    IO GType++instance BoxedObject VideoTimeCodeInterval where+    boxedType _ = c_gst_video_time_code_interval_get_type++-- | Construct a `VideoTimeCodeInterval` struct initialized to zero.+newZeroVideoTimeCodeInterval :: MonadIO m => m VideoTimeCodeInterval+newZeroVideoTimeCodeInterval = liftIO $ callocBoxedBytes 16 >>= wrapBoxed VideoTimeCodeInterval++instance tag ~ 'AttrSet => Constructible VideoTimeCodeInterval tag where+    new _ attrs = do+        o <- newZeroVideoTimeCodeInterval+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoTimeCodeInterval`.+noVideoTimeCodeInterval :: Maybe VideoTimeCodeInterval+noVideoTimeCodeInterval = Nothing++{- |+Get the value of the “@hours@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeInterval #hours+@+-}+getVideoTimeCodeIntervalHours :: MonadIO m => VideoTimeCodeInterval -> m Word32+getVideoTimeCodeIntervalHours s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 0) :: IO Word32+    return val++{- |+Set the value of the “@hours@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeInterval [ #hours 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeIntervalHours :: MonadIO m => VideoTimeCodeInterval -> Word32 -> m ()+setVideoTimeCodeIntervalHours s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 0) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalHoursFieldInfo+instance AttrInfo VideoTimeCodeIntervalHoursFieldInfo where+    type AttrAllowedOps VideoTimeCodeIntervalHoursFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeIntervalHoursFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeIntervalHoursFieldInfo = (~) VideoTimeCodeInterval+    type AttrGetType VideoTimeCodeIntervalHoursFieldInfo = Word32+    type AttrLabel VideoTimeCodeIntervalHoursFieldInfo = "hours"+    type AttrOrigin VideoTimeCodeIntervalHoursFieldInfo = VideoTimeCodeInterval+    attrGet _ = getVideoTimeCodeIntervalHours+    attrSet _ = setVideoTimeCodeIntervalHours+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeInterval_hours :: AttrLabelProxy "hours"+videoTimeCodeInterval_hours = AttrLabelProxy++#endif+++{- |+Get the value of the “@minutes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeInterval #minutes+@+-}+getVideoTimeCodeIntervalMinutes :: MonadIO m => VideoTimeCodeInterval -> m Word32+getVideoTimeCodeIntervalMinutes s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 4) :: IO Word32+    return val++{- |+Set the value of the “@minutes@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeInterval [ #minutes 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeIntervalMinutes :: MonadIO m => VideoTimeCodeInterval -> Word32 -> m ()+setVideoTimeCodeIntervalMinutes s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 4) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalMinutesFieldInfo+instance AttrInfo VideoTimeCodeIntervalMinutesFieldInfo where+    type AttrAllowedOps VideoTimeCodeIntervalMinutesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeIntervalMinutesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeIntervalMinutesFieldInfo = (~) VideoTimeCodeInterval+    type AttrGetType VideoTimeCodeIntervalMinutesFieldInfo = Word32+    type AttrLabel VideoTimeCodeIntervalMinutesFieldInfo = "minutes"+    type AttrOrigin VideoTimeCodeIntervalMinutesFieldInfo = VideoTimeCodeInterval+    attrGet _ = getVideoTimeCodeIntervalMinutes+    attrSet _ = setVideoTimeCodeIntervalMinutes+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeInterval_minutes :: AttrLabelProxy "minutes"+videoTimeCodeInterval_minutes = AttrLabelProxy++#endif+++{- |+Get the value of the “@seconds@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeInterval #seconds+@+-}+getVideoTimeCodeIntervalSeconds :: MonadIO m => VideoTimeCodeInterval -> m Word32+getVideoTimeCodeIntervalSeconds s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 8) :: IO Word32+    return val++{- |+Set the value of the “@seconds@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeInterval [ #seconds 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeIntervalSeconds :: MonadIO m => VideoTimeCodeInterval -> Word32 -> m ()+setVideoTimeCodeIntervalSeconds s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 8) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalSecondsFieldInfo+instance AttrInfo VideoTimeCodeIntervalSecondsFieldInfo where+    type AttrAllowedOps VideoTimeCodeIntervalSecondsFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeIntervalSecondsFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeIntervalSecondsFieldInfo = (~) VideoTimeCodeInterval+    type AttrGetType VideoTimeCodeIntervalSecondsFieldInfo = Word32+    type AttrLabel VideoTimeCodeIntervalSecondsFieldInfo = "seconds"+    type AttrOrigin VideoTimeCodeIntervalSecondsFieldInfo = VideoTimeCodeInterval+    attrGet _ = getVideoTimeCodeIntervalSeconds+    attrSet _ = setVideoTimeCodeIntervalSeconds+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeInterval_seconds :: AttrLabelProxy "seconds"+videoTimeCodeInterval_seconds = AttrLabelProxy++#endif+++{- |+Get the value of the “@frames@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeInterval #frames+@+-}+getVideoTimeCodeIntervalFrames :: MonadIO m => VideoTimeCodeInterval -> m Word32+getVideoTimeCodeIntervalFrames s = liftIO $ withManagedPtr s $ \ptr -> do+    val <- peek (ptr `plusPtr` 12) :: IO Word32+    return val++{- |+Set the value of the “@frames@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.set' videoTimeCodeInterval [ #frames 'Data.GI.Base.Attributes.:=' value ]+@+-}+setVideoTimeCodeIntervalFrames :: MonadIO m => VideoTimeCodeInterval -> Word32 -> m ()+setVideoTimeCodeIntervalFrames s val = liftIO $ withManagedPtr s $ \ptr -> do+    poke (ptr `plusPtr` 12) (val :: Word32)++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalFramesFieldInfo+instance AttrInfo VideoTimeCodeIntervalFramesFieldInfo where+    type AttrAllowedOps VideoTimeCodeIntervalFramesFieldInfo = '[ 'AttrSet, 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeIntervalFramesFieldInfo = (~) Word32+    type AttrBaseTypeConstraint VideoTimeCodeIntervalFramesFieldInfo = (~) VideoTimeCodeInterval+    type AttrGetType VideoTimeCodeIntervalFramesFieldInfo = Word32+    type AttrLabel VideoTimeCodeIntervalFramesFieldInfo = "frames"+    type AttrOrigin VideoTimeCodeIntervalFramesFieldInfo = VideoTimeCodeInterval+    attrGet _ = getVideoTimeCodeIntervalFrames+    attrSet _ = setVideoTimeCodeIntervalFrames+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeInterval_frames :: AttrLabelProxy "frames"+videoTimeCodeInterval_frames = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoTimeCodeInterval+type instance O.AttributeList VideoTimeCodeInterval = VideoTimeCodeIntervalAttributeList+type VideoTimeCodeIntervalAttributeList = ('[ '("hours", VideoTimeCodeIntervalHoursFieldInfo), '("minutes", VideoTimeCodeIntervalMinutesFieldInfo), '("seconds", VideoTimeCodeIntervalSecondsFieldInfo), '("frames", VideoTimeCodeIntervalFramesFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoTimeCodeInterval::new+-- method type : Constructor+-- Args : [Arg {argCName = "hours", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hours field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the minutes field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the seconds field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frames field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_new" gst_video_time_code_interval_new :: +    Word32 ->                               -- hours : TBasicType TUInt+    Word32 ->                               -- minutes : TBasicType TUInt+    Word32 ->                               -- seconds : TBasicType TUInt+    Word32 ->                               -- frames : TBasicType TUInt+    IO (Ptr VideoTimeCodeInterval)++{- |+/No description available in the introspection data./++/Since: 1.12/+-}+videoTimeCodeIntervalNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    Word32+    {- ^ /@hours@/: the hours field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@minutes@/: the minutes field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@seconds@/: the seconds field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@frames@/: the frames field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m VideoTimeCodeInterval+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' with the given values. -}+videoTimeCodeIntervalNew hours minutes seconds frames = liftIO $ do+    result <- gst_video_time_code_interval_new hours minutes seconds frames+    checkUnexpectedReturnNULL "videoTimeCodeIntervalNew" result+    result' <- (wrapBoxed VideoTimeCodeInterval) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCodeInterval::new_from_string+-- method type : Constructor+-- Args : [Arg {argCName = "tc_inter_str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The string that represents the #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_new_from_string" gst_video_time_code_interval_new_from_string :: +    CString ->                              -- tc_inter_str : TBasicType TUTF8+    IO (Ptr VideoTimeCodeInterval)++{- |+/@tcInterStr@/ must only have \":\" as separators.++/Since: 1.12/+-}+videoTimeCodeIntervalNewFromString ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    T.Text+    {- ^ /@tcInterStr@/: The string that represents the 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m (Maybe VideoTimeCodeInterval)+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' from the given string+  or 'Nothing' if the string could not be passed. -}+videoTimeCodeIntervalNewFromString tcInterStr = liftIO $ do+    tcInterStr' <- textToCString tcInterStr+    result <- gst_video_time_code_interval_new_from_string tcInterStr'+    maybeResult <- convertIfNonNull result $ \result' -> do+        result'' <- (wrapBoxed VideoTimeCodeInterval) result'+        return result''+    freeMem tcInterStr'+    return maybeResult++#if ENABLE_OVERLOADING+#endif++-- method VideoTimeCodeInterval::clear+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_clear" gst_video_time_code_interval_clear :: +    Ptr VideoTimeCodeInterval ->            -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"})+    IO ()++{- |+Initializes /@tc@/ with empty\/zero\/NULL values.++/Since: 1.12/+-}+videoTimeCodeIntervalClear ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCodeInterval+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m ()+videoTimeCodeIntervalClear tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_interval_clear tc'+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalClearMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoTimeCodeIntervalClearMethodInfo VideoTimeCodeInterval signature where+    overloadedMethod _ = videoTimeCodeIntervalClear++#endif++-- method VideoTimeCodeInterval::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_copy" gst_video_time_code_interval_copy :: +    Ptr VideoTimeCodeInterval ->            -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"})+    IO (Ptr VideoTimeCodeInterval)++{- |+/No description available in the introspection data./++/Since: 1.12/+-}+videoTimeCodeIntervalCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCodeInterval+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m VideoTimeCodeInterval+    {- ^ __Returns:__ a new 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' with the same values as /@tc@/. -}+videoTimeCodeIntervalCopy tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    result <- gst_video_time_code_interval_copy tc'+    checkUnexpectedReturnNULL "videoTimeCodeIntervalCopy" result+    result' <- (wrapBoxed VideoTimeCodeInterval) result+    touchManagedPtr tc+    return result'++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalCopyMethodInfo+instance (signature ~ (m VideoTimeCodeInterval), MonadIO m) => O.MethodInfo VideoTimeCodeIntervalCopyMethodInfo VideoTimeCodeInterval signature where+    overloadedMethod _ = videoTimeCodeIntervalCopy++#endif++-- method VideoTimeCodeInterval::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_free" gst_video_time_code_interval_free :: +    Ptr VideoTimeCodeInterval ->            -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"})+    IO ()++{- |+Frees /@tc@/.++/Since: 1.12/+-}+videoTimeCodeIntervalFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCodeInterval+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m ()+videoTimeCodeIntervalFree tc = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_interval_free tc'+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoTimeCodeIntervalFreeMethodInfo VideoTimeCodeInterval signature where+    overloadedMethod _ = videoTimeCodeIntervalFree++#endif++-- method VideoTimeCodeInterval::init+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "tc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hours field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the minutes field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the seconds field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frames", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the frames field of #GstVideoTimeCodeInterval", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_interval_init" gst_video_time_code_interval_init :: +    Ptr VideoTimeCodeInterval ->            -- tc : TInterface (Name {namespace = "GstVideo", name = "VideoTimeCodeInterval"})+    Word32 ->                               -- hours : TBasicType TUInt+    Word32 ->                               -- minutes : TBasicType TUInt+    Word32 ->                               -- seconds : TBasicType TUInt+    Word32 ->                               -- frames : TBasicType TUInt+    IO ()++{- |+Initializes /@tc@/ with the given values.++/Since: 1.12/+-}+videoTimeCodeIntervalInit ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoTimeCodeInterval+    {- ^ /@tc@/: a 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@hours@/: the hours field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@minutes@/: the minutes field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@seconds@/: the seconds field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> Word32+    {- ^ /@frames@/: the frames field of 'GI.GstVideo.Structs.VideoTimeCodeInterval.VideoTimeCodeInterval' -}+    -> m ()+videoTimeCodeIntervalInit tc hours minutes seconds frames = liftIO $ do+    tc' <- unsafeManagedPtrGetPtr tc+    gst_video_time_code_interval_init tc' hours minutes seconds frames+    touchManagedPtr tc+    return ()++#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalInitMethodInfo+instance (signature ~ (Word32 -> Word32 -> Word32 -> Word32 -> m ()), MonadIO m) => O.MethodInfo VideoTimeCodeIntervalInitMethodInfo VideoTimeCodeInterval signature where+    overloadedMethod _ = videoTimeCodeIntervalInit++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoTimeCodeIntervalMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoTimeCodeIntervalMethod "clear" o = VideoTimeCodeIntervalClearMethodInfo+    ResolveVideoTimeCodeIntervalMethod "copy" o = VideoTimeCodeIntervalCopyMethodInfo+    ResolveVideoTimeCodeIntervalMethod "free" o = VideoTimeCodeIntervalFreeMethodInfo+    ResolveVideoTimeCodeIntervalMethod "init" o = VideoTimeCodeIntervalInitMethodInfo+    ResolveVideoTimeCodeIntervalMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoTimeCodeIntervalMethod t VideoTimeCodeInterval, O.MethodInfo info VideoTimeCodeInterval p) => OL.IsLabel t (VideoTimeCodeInterval -> 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++
+ GI/GstVideo/Structs/VideoTimeCodeInterval.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoTimeCodeInterval 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++newtype VideoTimeCodeInterval = VideoTimeCodeInterval (ManagedPtr VideoTimeCodeInterval)+instance BoxedObject VideoTimeCodeInterval where+#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalClearMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoTimeCodeIntervalInitMethodInfo+#endif
+ GI/GstVideo/Structs/VideoTimeCodeMeta.hs view
@@ -0,0 +1,219 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++Extra buffer metadata describing the GstVideoTimeCode of the frame.++Each frame is assumed to have its own timecode, i.e. they are not+automatically incremented\/interpolated.++/Since: 1.10/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoTimeCodeMeta+    ( ++-- * Exported types+    VideoTimeCodeMeta(..)                   ,+    newZeroVideoTimeCodeMeta                ,+    noVideoTimeCodeMeta                     ,+++ -- * Methods+-- ** getInfo #method:getInfo#++    videoTimeCodeMetaGetInfo                ,+++++ -- * Properties+-- ** meta #attr:meta#+{- | parent 'GI.Gst.Structs.Meta.Meta'+-}+    getVideoTimeCodeMetaMeta                ,+#if ENABLE_OVERLOADING+    videoTimeCodeMeta_meta                  ,+#endif+++-- ** tc #attr:tc#+{- | the GstVideoTimeCode to attach+-}+    getVideoTimeCodeMetaTc                  ,+#if ENABLE_OVERLOADING+    videoTimeCodeMeta_tc                    ,+#endif+++++    ) 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.Gst.Structs.Meta as Gst.Meta+import qualified GI.Gst.Structs.MetaInfo as Gst.MetaInfo+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoTimeCode as GstVideo.VideoTimeCode++-- | Memory-managed wrapper type.+newtype VideoTimeCodeMeta = VideoTimeCodeMeta (ManagedPtr VideoTimeCodeMeta)+instance WrappedPtr VideoTimeCodeMeta where+    wrappedPtrCalloc = callocBytes 64+    wrappedPtrCopy = \p -> withManagedPtr p (copyBytes 64 >=> wrapPtr VideoTimeCodeMeta)+    wrappedPtrFree = Just ptr_to_g_free++-- | Construct a `VideoTimeCodeMeta` struct initialized to zero.+newZeroVideoTimeCodeMeta :: MonadIO m => m VideoTimeCodeMeta+newZeroVideoTimeCodeMeta = liftIO $ wrappedPtrCalloc >>= wrapPtr VideoTimeCodeMeta++instance tag ~ 'AttrSet => Constructible VideoTimeCodeMeta tag where+    new _ attrs = do+        o <- newZeroVideoTimeCodeMeta+        GI.Attributes.set o attrs+        return o+++-- | A convenience alias for `Nothing` :: `Maybe` `VideoTimeCodeMeta`.+noVideoTimeCodeMeta :: Maybe VideoTimeCodeMeta+noVideoTimeCodeMeta = Nothing++{- |+Get the value of the “@meta@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeMeta #meta+@+-}+getVideoTimeCodeMetaMeta :: MonadIO m => VideoTimeCodeMeta -> m Gst.Meta.Meta+getVideoTimeCodeMetaMeta s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 0 :: (Ptr Gst.Meta.Meta)+    val' <- (newPtr Gst.Meta.Meta) val+    return val'++#if ENABLE_OVERLOADING+data VideoTimeCodeMetaMetaFieldInfo+instance AttrInfo VideoTimeCodeMetaMetaFieldInfo where+    type AttrAllowedOps VideoTimeCodeMetaMetaFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeMetaMetaFieldInfo = (~) (Ptr Gst.Meta.Meta)+    type AttrBaseTypeConstraint VideoTimeCodeMetaMetaFieldInfo = (~) VideoTimeCodeMeta+    type AttrGetType VideoTimeCodeMetaMetaFieldInfo = Gst.Meta.Meta+    type AttrLabel VideoTimeCodeMetaMetaFieldInfo = "meta"+    type AttrOrigin VideoTimeCodeMetaMetaFieldInfo = VideoTimeCodeMeta+    attrGet _ = getVideoTimeCodeMetaMeta+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeMeta_meta :: AttrLabelProxy "meta"+videoTimeCodeMeta_meta = AttrLabelProxy++#endif+++{- |+Get the value of the “@tc@” field.+When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to++@+'Data.GI.Base.Attributes.get' videoTimeCodeMeta #tc+@+-}+getVideoTimeCodeMetaTc :: MonadIO m => VideoTimeCodeMeta -> m GstVideo.VideoTimeCode.VideoTimeCode+getVideoTimeCodeMetaTc s = liftIO $ withManagedPtr s $ \ptr -> do+    let val = ptr `plusPtr` 16 :: (Ptr GstVideo.VideoTimeCode.VideoTimeCode)+    val' <- (newBoxed GstVideo.VideoTimeCode.VideoTimeCode) val+    return val'++#if ENABLE_OVERLOADING+data VideoTimeCodeMetaTcFieldInfo+instance AttrInfo VideoTimeCodeMetaTcFieldInfo where+    type AttrAllowedOps VideoTimeCodeMetaTcFieldInfo = '[ 'AttrGet]+    type AttrSetTypeConstraint VideoTimeCodeMetaTcFieldInfo = (~) (Ptr GstVideo.VideoTimeCode.VideoTimeCode)+    type AttrBaseTypeConstraint VideoTimeCodeMetaTcFieldInfo = (~) VideoTimeCodeMeta+    type AttrGetType VideoTimeCodeMetaTcFieldInfo = GstVideo.VideoTimeCode.VideoTimeCode+    type AttrLabel VideoTimeCodeMetaTcFieldInfo = "tc"+    type AttrOrigin VideoTimeCodeMetaTcFieldInfo = VideoTimeCodeMeta+    attrGet _ = getVideoTimeCodeMetaTc+    attrSet _ = undefined+    attrConstruct = undefined+    attrClear _ = undefined++videoTimeCodeMeta_tc :: AttrLabelProxy "tc"+videoTimeCodeMeta_tc = AttrLabelProxy++#endif++++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoTimeCodeMeta+type instance O.AttributeList VideoTimeCodeMeta = VideoTimeCodeMetaAttributeList+type VideoTimeCodeMetaAttributeList = ('[ '("meta", VideoTimeCodeMetaMetaFieldInfo), '("tc", VideoTimeCodeMetaTcFieldInfo)] :: [(Symbol, *)])+#endif++-- method VideoTimeCodeMeta::get_info+-- method type : MemberFunction+-- Args : []+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "Gst", name = "MetaInfo"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_time_code_meta_get_info" gst_video_time_code_meta_get_info :: +    IO (Ptr Gst.MetaInfo.MetaInfo)++{- |+/No description available in the introspection data./+-}+videoTimeCodeMetaGetInfo ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    m Gst.MetaInfo.MetaInfo+videoTimeCodeMetaGetInfo  = liftIO $ do+    result <- gst_video_time_code_meta_get_info+    checkUnexpectedReturnNULL "videoTimeCodeMetaGetInfo" result+    result' <- (newPtr Gst.MetaInfo.MetaInfo) result+    return result'++#if ENABLE_OVERLOADING+#endif++#if ENABLE_OVERLOADING+type family ResolveVideoTimeCodeMetaMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoTimeCodeMetaMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoTimeCodeMetaMethod t VideoTimeCodeMeta, O.MethodInfo info VideoTimeCodeMeta p) => OL.IsLabel t (VideoTimeCodeMeta -> 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++
+ GI/GstVideo/Structs/VideoTimeCodeMeta.hs-boot view
@@ -0,0 +1,26 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoTimeCodeMeta 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++newtype VideoTimeCodeMeta = VideoTimeCodeMeta (ManagedPtr VideoTimeCodeMeta)+instance WrappedPtr VideoTimeCodeMeta where
+ GI/GstVideo/Structs/VideoVBIEncoder.hs view
@@ -0,0 +1,325 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++An encoder for writing ancillary data to the+Vertical Blanking Interval lines of component signals.++/Since: 1.16/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoVBIEncoder+    ( ++-- * Exported types+    VideoVBIEncoder(..)                     ,+    noVideoVBIEncoder                       ,+++ -- * Methods+-- ** addAncillary #method:addAncillary#++#if ENABLE_OVERLOADING+    VideoVBIEncoderAddAncillaryMethodInfo   ,+#endif+    videoVBIEncoderAddAncillary             ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoVBIEncoderCopyMethodInfo           ,+#endif+    videoVBIEncoderCopy                     ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoVBIEncoderFreeMethodInfo           ,+#endif+    videoVBIEncoderFree                     ,+++-- ** new #method:new#++    videoVBIEncoderNew                      ,+++-- ** writeLine #method:writeLine#++#if ENABLE_OVERLOADING+    VideoVBIEncoderWriteLineMethodInfo      ,+#endif+    videoVBIEncoderWriteLine                ,+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums++-- | Memory-managed wrapper type.+newtype VideoVBIEncoder = VideoVBIEncoder (ManagedPtr VideoVBIEncoder)+foreign import ccall "gst_video_vbi_encoder_get_type" c_gst_video_vbi_encoder_get_type :: +    IO GType++instance BoxedObject VideoVBIEncoder where+    boxedType _ = c_gst_video_vbi_encoder_get_type++-- | A convenience alias for `Nothing` :: `Maybe` `VideoVBIEncoder`.+noVideoVBIEncoder :: Maybe VideoVBIEncoder+noVideoVBIEncoder = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoVBIEncoder+type instance O.AttributeList VideoVBIEncoder = VideoVBIEncoderAttributeList+type VideoVBIEncoderAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoVBIEncoder::new+-- method type : Constructor+-- Args : [Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixel_width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The width in pixel to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_encoder_new" gst_video_vbi_encoder_new :: +    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- pixel_width : TBasicType TUInt32+    IO (Ptr VideoVBIEncoder)++{- |+Create a new 'GI.GstVideo.Structs.VideoVBIEncoder.VideoVBIEncoder' for the specified /@format@/ and /@pixelWidth@/.++/Since: 1.16/+-}+videoVBIEncoderNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> Word32+    {- ^ /@pixelWidth@/: The width in pixel to use -}+    -> m VideoVBIEncoder+    {- ^ __Returns:__ The new 'GI.GstVideo.Structs.VideoVBIEncoder.VideoVBIEncoder' or 'Nothing' if the /@format@/ and\/or /@pixelWidth@/+is not supported. -}+videoVBIEncoderNew format pixelWidth = liftIO $ do+    let format' = (fromIntegral . fromEnum) format+    result <- gst_video_vbi_encoder_new format' pixelWidth+    checkUnexpectedReturnNULL "videoVBIEncoderNew" result+    result' <- (wrapBoxed VideoVBIEncoder) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoVBIEncoder::add_ancillary+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoVBIEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "composite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if composite ADF should be created, component otherwise", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "DID", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The Data Identifier", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "SDID_block_number", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The Secondary Data Identifier (if type 2) or the Data\n                    Block Number (if type 1)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 5 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The user data content of the Ancillary packet.\n   Does not contain the ADF, DID, SDID nor CS.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The amount of data (in bytes) in @data (max 255 bytes)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : [Arg {argCName = "data_count", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The amount of data (in bytes) in @data (max 255 bytes)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- returnType : Just (TBasicType TBoolean)+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_encoder_add_ancillary" gst_video_vbi_encoder_add_ancillary :: +    Ptr VideoVBIEncoder ->                  -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"})+    CInt ->                                 -- composite : TBasicType TBoolean+    Word8 ->                                -- DID : TBasicType TUInt8+    Word8 ->                                -- SDID_block_number : TBasicType TUInt8+    Ptr Word8 ->                            -- data : TCArray False (-1) 5 (TBasicType TUInt8)+    Word32 ->                               -- data_count : TBasicType TUInt+    IO CInt++{- |+Stores Video Ancillary data, according to SMPTE-291M specification.++Note that the contents of the data are always read as 8bit data (i.e. do not contain+the parity check bits).++/Since: 1.16/+-}+videoVBIEncoderAddAncillary ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIEncoder+    {- ^ /@encoder@/: a 'GI.GstVideo.Structs.VideoVBIEncoder.VideoVBIEncoder' -}+    -> Bool+    {- ^ /@composite@/: 'True' if composite ADF should be created, component otherwise -}+    -> Word8+    {- ^ /@dID@/: The Data Identifier -}+    -> Word8+    {- ^ /@sDIDBlockNumber@/: The Secondary Data Identifier (if type 2) or the Data+                    Block Number (if type 1) -}+    -> ByteString+    {- ^ /@data@/: The user data content of the Ancillary packet.+   Does not contain the ADF, DID, SDID nor CS. -}+    -> m Bool+    {- ^ __Returns:__ 'True' if enough space was left in the current line, 'False'+         otherwise. -}+videoVBIEncoderAddAncillary encoder composite dID sDIDBlockNumber data_ = liftIO $ do+    let dataCount = fromIntegral $ B.length data_+    encoder' <- unsafeManagedPtrGetPtr encoder+    let composite' = (fromIntegral . fromEnum) composite+    data_' <- packByteString data_+    result <- gst_video_vbi_encoder_add_ancillary encoder' composite' dID sDIDBlockNumber data_' dataCount+    let result' = (/= 0) result+    touchManagedPtr encoder+    freeMem data_'+    return result'++#if ENABLE_OVERLOADING+data VideoVBIEncoderAddAncillaryMethodInfo+instance (signature ~ (Bool -> Word8 -> Word8 -> ByteString -> m Bool), MonadIO m) => O.MethodInfo VideoVBIEncoderAddAncillaryMethodInfo VideoVBIEncoder signature where+    overloadedMethod _ = videoVBIEncoderAddAncillary++#endif++-- method VideoVBIEncoder::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_encoder_copy" gst_video_vbi_encoder_copy :: +    Ptr VideoVBIEncoder ->                  -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"})+    IO (Ptr VideoVBIEncoder)++{- |+/No description available in the introspection data./+-}+videoVBIEncoderCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIEncoder+    -> m VideoVBIEncoder+videoVBIEncoderCopy encoder = liftIO $ do+    encoder' <- unsafeManagedPtrGetPtr encoder+    result <- gst_video_vbi_encoder_copy encoder'+    checkUnexpectedReturnNULL "videoVBIEncoderCopy" result+    result' <- (wrapBoxed VideoVBIEncoder) result+    touchManagedPtr encoder+    return result'++#if ENABLE_OVERLOADING+data VideoVBIEncoderCopyMethodInfo+instance (signature ~ (m VideoVBIEncoder), MonadIO m) => O.MethodInfo VideoVBIEncoderCopyMethodInfo VideoVBIEncoder signature where+    overloadedMethod _ = videoVBIEncoderCopy++#endif++-- method VideoVBIEncoder::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoVBIEncoder", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_encoder_free" gst_video_vbi_encoder_free :: +    Ptr VideoVBIEncoder ->                  -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"})+    IO ()++{- |+Frees the /@encoder@/.++/Since: 1.16/+-}+videoVBIEncoderFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIEncoder+    {- ^ /@encoder@/: a 'GI.GstVideo.Structs.VideoVBIEncoder.VideoVBIEncoder' -}+    -> m ()+videoVBIEncoderFree encoder = liftIO $ do+    encoder' <- unsafeManagedPtrGetPtr encoder+    gst_video_vbi_encoder_free encoder'+    touchManagedPtr encoder+    return ()++#if ENABLE_OVERLOADING+data VideoVBIEncoderFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoVBIEncoderFreeMethodInfo VideoVBIEncoder signature where+    overloadedMethod _ = videoVBIEncoderFree++#endif++-- method VideoVBIEncoder::write_line+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "encoder", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_encoder_write_line" gst_video_vbi_encoder_write_line :: +    Ptr VideoVBIEncoder ->                  -- encoder : TInterface (Name {namespace = "GstVideo", name = "VideoVBIEncoder"})+    Word8 ->                                -- data : TBasicType TUInt8+    IO ()++{- |+/No description available in the introspection data./+-}+videoVBIEncoderWriteLine ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIEncoder+    -> Word8+    -> m ()+videoVBIEncoderWriteLine encoder data_ = liftIO $ do+    encoder' <- unsafeManagedPtrGetPtr encoder+    gst_video_vbi_encoder_write_line encoder' data_+    touchManagedPtr encoder+    return ()++#if ENABLE_OVERLOADING+data VideoVBIEncoderWriteLineMethodInfo+instance (signature ~ (Word8 -> m ()), MonadIO m) => O.MethodInfo VideoVBIEncoderWriteLineMethodInfo VideoVBIEncoder signature where+    overloadedMethod _ = videoVBIEncoderWriteLine++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoVBIEncoderMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoVBIEncoderMethod "addAncillary" o = VideoVBIEncoderAddAncillaryMethodInfo+    ResolveVideoVBIEncoderMethod "copy" o = VideoVBIEncoderCopyMethodInfo+    ResolveVideoVBIEncoderMethod "free" o = VideoVBIEncoderFreeMethodInfo+    ResolveVideoVBIEncoderMethod "writeLine" o = VideoVBIEncoderWriteLineMethodInfo+    ResolveVideoVBIEncoderMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoVBIEncoderMethod t VideoVBIEncoder, O.MethodInfo info VideoVBIEncoder p) => OL.IsLabel t (VideoVBIEncoder -> 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++
+ GI/GstVideo/Structs/VideoVBIEncoder.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoVBIEncoder 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++newtype VideoVBIEncoder = VideoVBIEncoder (ManagedPtr VideoVBIEncoder)+instance BoxedObject VideoVBIEncoder where+#if ENABLE_OVERLOADING+data VideoVBIEncoderAddAncillaryMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIEncoderCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIEncoderFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIEncoderWriteLineMethodInfo+#endif
+ GI/GstVideo/Structs/VideoVBIParser.hs view
@@ -0,0 +1,313 @@+++{- |+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte+License    : LGPL-2.1+Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)++A parser for detecting and extracting /@gstVideoAncillary@/ data from+Vertical Blanking Interval lines of component signals.++/Since: 1.16/+-}++#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))++module GI.GstVideo.Structs.VideoVBIParser+    ( ++-- * Exported types+    VideoVBIParser(..)                      ,+    noVideoVBIParser                        ,+++ -- * Methods+-- ** addLine #method:addLine#++#if ENABLE_OVERLOADING+    VideoVBIParserAddLineMethodInfo         ,+#endif+    videoVBIParserAddLine                   ,+++-- ** copy #method:copy#++#if ENABLE_OVERLOADING+    VideoVBIParserCopyMethodInfo            ,+#endif+    videoVBIParserCopy                      ,+++-- ** free #method:free#++#if ENABLE_OVERLOADING+    VideoVBIParserFreeMethodInfo            ,+#endif+    videoVBIParserFree                      ,+++-- ** getAncillary #method:getAncillary#++#if ENABLE_OVERLOADING+    VideoVBIParserGetAncillaryMethodInfo    ,+#endif+    videoVBIParserGetAncillary              ,+++-- ** new #method:new#++    videoVBIParserNew                       ,+++++    ) 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 {-# SOURCE #-} qualified GI.GstVideo.Enums as GstVideo.Enums+import {-# SOURCE #-} qualified GI.GstVideo.Structs.VideoAncillary as GstVideo.VideoAncillary++-- | Memory-managed wrapper type.+newtype VideoVBIParser = VideoVBIParser (ManagedPtr VideoVBIParser)+foreign import ccall "gst_video_vbi_parser_get_type" c_gst_video_vbi_parser_get_type :: +    IO GType++instance BoxedObject VideoVBIParser where+    boxedType _ = c_gst_video_vbi_parser_get_type++-- | A convenience alias for `Nothing` :: `Maybe` `VideoVBIParser`.+noVideoVBIParser :: Maybe VideoVBIParser+noVideoVBIParser = Nothing+++#if ENABLE_OVERLOADING+instance O.HasAttributeList VideoVBIParser+type instance O.AttributeList VideoVBIParser = VideoVBIParserAttributeList+type VideoVBIParserAttributeList = ('[ ] :: [(Symbol, *)])+#endif++-- method VideoVBIParser::new+-- method type : Constructor+-- Args : [Arg {argCName = "format", argType = TInterface (Name {namespace = "GstVideo", name = "VideoFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoFormat", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixel_width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The width in pixel to use", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_parser_new" gst_video_vbi_parser_new :: +    CUInt ->                                -- format : TInterface (Name {namespace = "GstVideo", name = "VideoFormat"})+    Word32 ->                               -- pixel_width : TBasicType TUInt32+    IO (Ptr VideoVBIParser)++{- |+Create a new 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser' for the specified /@format@/ and /@pixelWidth@/.++/Since: 1.16/+-}+videoVBIParserNew ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    GstVideo.Enums.VideoFormat+    {- ^ /@format@/: a 'GI.GstVideo.Enums.VideoFormat' -}+    -> Word32+    {- ^ /@pixelWidth@/: The width in pixel to use -}+    -> m VideoVBIParser+    {- ^ __Returns:__ The new 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser' or 'Nothing' if the /@format@/ and\/or /@pixelWidth@/+is not supported. -}+videoVBIParserNew format pixelWidth = liftIO $ do+    let format' = (fromIntegral . fromEnum) format+    result <- gst_video_vbi_parser_new format' pixelWidth+    checkUnexpectedReturnNULL "videoVBIParserNew" result+    result' <- (wrapBoxed VideoVBIParser) result+    return result'++#if ENABLE_OVERLOADING+#endif++-- method VideoVBIParser::add_line+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "parser", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoVBIParser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The line of data to parse", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_parser_add_line" gst_video_vbi_parser_add_line :: +    Ptr VideoVBIParser ->                   -- parser : TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"})+    Ptr Word8 ->                            -- data : TCArray False (-1) (-1) (TBasicType TUInt8)+    IO ()++{- |+Provide a new line of data to the /@parser@/. Call 'GI.GstVideo.Structs.VideoVBIParser.videoVBIParserGetAncillary'+to get the Ancillary data that might be present on that line.++/Since: 1.16/+-}+videoVBIParserAddLine ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIParser+    {- ^ /@parser@/: a 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser' -}+    -> Ptr Word8+    {- ^ /@data@/: The line of data to parse -}+    -> m ()+videoVBIParserAddLine parser data_ = liftIO $ do+    parser' <- unsafeManagedPtrGetPtr parser+    gst_video_vbi_parser_add_line parser' data_+    touchManagedPtr parser+    return ()++#if ENABLE_OVERLOADING+data VideoVBIParserAddLineMethodInfo+instance (signature ~ (Ptr Word8 -> m ()), MonadIO m) => O.MethodInfo VideoVBIParserAddLineMethodInfo VideoVBIParser signature where+    overloadedMethod _ = videoVBIParserAddLine++#endif++-- method VideoVBIParser::copy+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "parser", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_parser_copy" gst_video_vbi_parser_copy :: +    Ptr VideoVBIParser ->                   -- parser : TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"})+    IO (Ptr VideoVBIParser)++{- |+/No description available in the introspection data./+-}+videoVBIParserCopy ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIParser+    -> m VideoVBIParser+videoVBIParserCopy parser = liftIO $ do+    parser' <- unsafeManagedPtrGetPtr parser+    result <- gst_video_vbi_parser_copy parser'+    checkUnexpectedReturnNULL "videoVBIParserCopy" result+    result' <- (wrapBoxed VideoVBIParser) result+    touchManagedPtr parser+    return result'++#if ENABLE_OVERLOADING+data VideoVBIParserCopyMethodInfo+instance (signature ~ (m VideoVBIParser), MonadIO m) => O.MethodInfo VideoVBIParserCopyMethodInfo VideoVBIParser signature where+    overloadedMethod _ = videoVBIParserCopy++#endif++-- method VideoVBIParser::free+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "parser", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoVBIParser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Nothing+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_parser_free" gst_video_vbi_parser_free :: +    Ptr VideoVBIParser ->                   -- parser : TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"})+    IO ()++{- |+Frees the /@parser@/.++/Since: 1.16/+-}+videoVBIParserFree ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIParser+    {- ^ /@parser@/: a 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser' -}+    -> m ()+videoVBIParserFree parser = liftIO $ do+    parser' <- unsafeManagedPtrGetPtr parser+    gst_video_vbi_parser_free parser'+    touchManagedPtr parser+    return ()++#if ENABLE_OVERLOADING+data VideoVBIParserFreeMethodInfo+instance (signature ~ (m ()), MonadIO m) => O.MethodInfo VideoVBIParserFreeMethodInfo VideoVBIParser signature where+    overloadedMethod _ = videoVBIParserFree++#endif++-- method VideoVBIParser::get_ancillary+-- method type : OrdinaryMethod+-- Args : [Arg {argCName = "parser", argType = TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoVBIParser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "anc", argType = TInterface (Name {namespace = "GstVideo", name = "VideoAncillary"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GstVideoAncillary to start the eventual ancillary data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]+-- Lengths : []+-- returnType : Just (TInterface (Name {namespace = "GstVideo", name = "VideoVBIParserResult"}))+-- throws : False+-- Skip return : False++foreign import ccall "gst_video_vbi_parser_get_ancillary" gst_video_vbi_parser_get_ancillary :: +    Ptr VideoVBIParser ->                   -- parser : TInterface (Name {namespace = "GstVideo", name = "VideoVBIParser"})+    Ptr GstVideo.VideoAncillary.VideoAncillary -> -- anc : TInterface (Name {namespace = "GstVideo", name = "VideoAncillary"})+    IO CUInt++{- |+Parse the line provided previously by 'GI.GstVideo.Structs.VideoVBIParser.videoVBIParserAddLine'.++/Since: 1.16/+-}+videoVBIParserGetAncillary ::+    (B.CallStack.HasCallStack, MonadIO m) =>+    VideoVBIParser+    {- ^ /@parser@/: a 'GI.GstVideo.Structs.VideoVBIParser.VideoVBIParser' -}+    -> m ((GstVideo.Enums.VideoVBIParserResult, GstVideo.VideoAncillary.VideoAncillary))+    {- ^ __Returns:__ 'GI.GstVideo.Enums.VideoVBIParserResultOk' if ancillary data was found and+/@anc@/ was filled. 'GI.GstVideo.Enums.VideoVBIParserResultDone' if there wasn\'t any+data. -}+videoVBIParserGetAncillary parser = liftIO $ do+    parser' <- unsafeManagedPtrGetPtr parser+    anc <- callocBytes 48 :: IO (Ptr GstVideo.VideoAncillary.VideoAncillary)+    result <- gst_video_vbi_parser_get_ancillary parser' anc+    let result' = (toEnum . fromIntegral) result+    anc' <- (wrapPtr GstVideo.VideoAncillary.VideoAncillary) anc+    touchManagedPtr parser+    return (result', anc')++#if ENABLE_OVERLOADING+data VideoVBIParserGetAncillaryMethodInfo+instance (signature ~ (m ((GstVideo.Enums.VideoVBIParserResult, GstVideo.VideoAncillary.VideoAncillary))), MonadIO m) => O.MethodInfo VideoVBIParserGetAncillaryMethodInfo VideoVBIParser signature where+    overloadedMethod _ = videoVBIParserGetAncillary++#endif++#if ENABLE_OVERLOADING+type family ResolveVideoVBIParserMethod (t :: Symbol) (o :: *) :: * where+    ResolveVideoVBIParserMethod "addLine" o = VideoVBIParserAddLineMethodInfo+    ResolveVideoVBIParserMethod "copy" o = VideoVBIParserCopyMethodInfo+    ResolveVideoVBIParserMethod "free" o = VideoVBIParserFreeMethodInfo+    ResolveVideoVBIParserMethod "getAncillary" o = VideoVBIParserGetAncillaryMethodInfo+    ResolveVideoVBIParserMethod l o = O.MethodResolutionFailed l o++instance (info ~ ResolveVideoVBIParserMethod t VideoVBIParser, O.MethodInfo info VideoVBIParser p) => OL.IsLabel t (VideoVBIParser -> 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++
+ GI/GstVideo/Structs/VideoVBIParser.hs-boot view
@@ -0,0 +1,38 @@+#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \+       && !defined(__HADDOCK_VERSION__))+module GI.GstVideo.Structs.VideoVBIParser 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++newtype VideoVBIParser = VideoVBIParser (ManagedPtr VideoVBIParser)+instance BoxedObject VideoVBIParser where+#if ENABLE_OVERLOADING+data VideoVBIParserAddLineMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIParserCopyMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIParserFreeMethodInfo+#endif+#if ENABLE_OVERLOADING+data VideoVBIParserGetAncillaryMethodInfo+#endif
LICENSE view
@@ -1,3 +1,17 @@+The gi-gstvideo library and included works are provided under the terms of the+GNU Library General Public License (LGPL) version 2.1 with the following+exception:++Static linking of applications or any other source to the gi-gstvideo library+does not constitute a modified or derivative work and does not require+the author(s) to provide source code for said work, to link against the+shared gi-gstvideo libraries, or to link their applications against a+user-supplied version of gi-gstvideo. If you link applications to a modified+version of gi-gstvideo, then the changes to gi-gstvideo must be provided under the+terms of the LGPL.++----------------------------------------------------------------------------+                   GNU LESSER GENERAL PUBLIC LICENSE                        Version 2.1, February 1999 
README.md view
@@ -1,6 +1,6 @@ # Documentation Autogenerated documentation for this package can be found at -[https://hackage.haskell.org/package/gi-gstvideo-1.0.16/docs/GI-GstVideo.html](https://hackage.haskell.org/package/gi-gstvideo-1.0.16/docs/GI-GstVideo.html)+[https://hackage.haskell.org/package/gi-gstvideo-1.0.18/docs/GI-GstVideo.html](https://hackage.haskell.org/package/gi-gstvideo-1.0.18/docs/GI-GstVideo.html)  For general documentation on using [haskell-gi](https://github.com/haskell-gi/haskell-gi) based bindings, see [the project page](https://github.com/haskell-gi/haskell-gi) or [the Wiki](https://github.com/haskell-gi/haskell-gi/wiki).
gi-gstvideo.cabal view
@@ -1,12 +1,12 @@ name:                 gi-gstvideo-version:              1.0.16+version:              1.0.18 synopsis:             GStreamerVideo bindings description:          Bindings for GStreamerVideo, autogenerated by haskell-gi. homepage:             https://github.com/haskell-gi/haskell-gi license:              LGPL-2.1 license-file:         LICENSE author:               Will Thompson, Iñaki García Etxebarria and Jonas Platte-maintainer:           Iñaki García Etxebarria (garetxe@gmail.com)+maintainer:           Iñaki García Etxebarria (inaki@blueleaf.cc) category:             Bindings build-type:           Custom cabal-version:        1.24@@ -14,20 +14,20 @@ extra-source-files: README.md ChangeLog.md stack.yaml GstVideo.overrides  custom-setup-      setup-depends: base >= 4.7 && < 5,+      setup-depends: base >= 4.9 && < 5,                      Cabal >= 1.24,-                     haskell-gi >= 0.21.1 && < 0.22+                     haskell-gi >= 0.21.0 && < 0.23  library       default-language: Haskell2010-      default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts+      default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts, UndecidableSuperClasses       other-extensions: PatternSynonyms, ViewPatterns       ghc-options: -fno-warn-unused-imports -fno-warn-warnings-deprecations        pkgconfig-depends: gstreamer-video-1.0       build-depends: base >= 4.8 && <5,-                     haskell-gi-base == 0.21.*,-                     haskell-gi >= 0.21.1 && < 0.22,+                     haskell-gi-base >= 0.21.0 && < 0.23,+                     haskell-gi >= 0.21.0 && < 0.23,                      haskell-gi-overloading < 1.1,                      gi-gstbase == 1.0.*,                      gi-gst == 1.0.*,@@ -42,3 +42,59 @@       -- see https://ghc.haskell.org/trac/ghc/ticket/14382       if impl(ghc == 8.2.*)               build-depends: haskell-gi-overloading == 0.0++      exposed-modules: GI.GstVideo,+                       GI.GstVideo.Callbacks,+                       GI.GstVideo.Constants,+                       GI.GstVideo.Enums,+                       GI.GstVideo.Flags,+                       GI.GstVideo.Functions,+                       GI.GstVideo.Interfaces,+                       GI.GstVideo.Interfaces.ColorBalance,+                       GI.GstVideo.Interfaces.Navigation,+                       GI.GstVideo.Interfaces.VideoDirection,+                       GI.GstVideo.Interfaces.VideoOrientation,+                       GI.GstVideo.Interfaces.VideoOverlay,+                       GI.GstVideo.Objects,+                       GI.GstVideo.Objects.ColorBalanceChannel,+                       GI.GstVideo.Objects.VideoAggregator,+                       GI.GstVideo.Objects.VideoAggregatorConvertPad,+                       GI.GstVideo.Objects.VideoAggregatorPad,+                       GI.GstVideo.Objects.VideoBufferPool,+                       GI.GstVideo.Objects.VideoDecoder,+                       GI.GstVideo.Objects.VideoEncoder,+                       GI.GstVideo.Objects.VideoFilter,+                       GI.GstVideo.Objects.VideoMultiviewFlagsSet,+                       GI.GstVideo.Objects.VideoSink,+                       GI.GstVideo.Structs,+                       GI.GstVideo.Structs.VideoAffineTransformationMeta,+                       GI.GstVideo.Structs.VideoAlignment,+                       GI.GstVideo.Structs.VideoAncillary,+                       GI.GstVideo.Structs.VideoCaptionMeta,+                       GI.GstVideo.Structs.VideoChromaResample,+                       GI.GstVideo.Structs.VideoCodecFrame,+                       GI.GstVideo.Structs.VideoCodecState,+                       GI.GstVideo.Structs.VideoColorPrimariesInfo,+                       GI.GstVideo.Structs.VideoColorimetry,+                       GI.GstVideo.Structs.VideoConverter,+                       GI.GstVideo.Structs.VideoCropMeta,+                       GI.GstVideo.Structs.VideoDither,+                       GI.GstVideo.Structs.VideoFormatInfo,+                       GI.GstVideo.Structs.VideoFrame,+                       GI.GstVideo.Structs.VideoGLTextureUploadMeta,+                       GI.GstVideo.Structs.VideoInfo,+                       GI.GstVideo.Structs.VideoMeta,+                       GI.GstVideo.Structs.VideoMetaTransform,+                       GI.GstVideo.Structs.VideoOverlayComposition,+                       GI.GstVideo.Structs.VideoOverlayCompositionMeta,+                       GI.GstVideo.Structs.VideoOverlayRectangle,+                       GI.GstVideo.Structs.VideoRectangle,+                       GI.GstVideo.Structs.VideoRegionOfInterestMeta,+                       GI.GstVideo.Structs.VideoResampler,+                       GI.GstVideo.Structs.VideoScaler,+                       GI.GstVideo.Structs.VideoTimeCode,+                       GI.GstVideo.Structs.VideoTimeCodeConfig,+                       GI.GstVideo.Structs.VideoTimeCodeInterval,+                       GI.GstVideo.Structs.VideoTimeCodeMeta,+                       GI.GstVideo.Structs.VideoVBIEncoder,+                       GI.GstVideo.Structs.VideoVBIParser
stack.yaml view
@@ -1,3 +1,3 @@ packages: - '.'-resolver: lts-9.21+resolver: lts-13.7