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 +8/−0
- GI/GstVideo.hs +60/−0
- GI/GstVideo/Callbacks.hs +736/−0
- GI/GstVideo/Constants.hs +538/−0
- GI/GstVideo/Enums.hs +2633/−0
- GI/GstVideo/Enums.hs-boot +115/−0
- GI/GstVideo/Flags.hs +983/−0
- GI/GstVideo/Flags.hs-boot +82/−0
- GI/GstVideo/Functions.hs +2198/−0
- GI/GstVideo/Interfaces.hs +49/−0
- GI/GstVideo/Interfaces/ColorBalance.hs +482/−0
- GI/GstVideo/Interfaces/ColorBalance.hs-boot +47/−0
- GI/GstVideo/Interfaces/Navigation.hs +1201/−0
- GI/GstVideo/Interfaces/Navigation.hs-boot +39/−0
- GI/GstVideo/Interfaces/VideoDirection.hs +194/−0
- GI/GstVideo/Interfaces/VideoDirection.hs-boot +32/−0
- GI/GstVideo/Interfaces/VideoOrientation.hs +470/−0
- GI/GstVideo/Interfaces/VideoOrientation.hs-boot +51/−0
- GI/GstVideo/Interfaces/VideoOverlay.hs +695/−0
- GI/GstVideo/Interfaces/VideoOverlay.hs-boot +45/−0
- GI/GstVideo/Objects.hs +59/−0
- GI/GstVideo/Objects/ColorBalanceChannel.hs +217/−0
- GI/GstVideo/Objects/ColorBalanceChannel.hs-boot +32/−0
- GI/GstVideo/Objects/VideoAggregator.hs +224/−0
- GI/GstVideo/Objects/VideoAggregator.hs-boot +29/−0
- GI/GstVideo/Objects/VideoAggregatorConvertPad.hs +364/−0
- GI/GstVideo/Objects/VideoAggregatorConvertPad.hs-boot +35/−0
- GI/GstVideo/Objects/VideoAggregatorPad.hs +566/−0
- GI/GstVideo/Objects/VideoAggregatorPad.hs-boot +47/−0
- GI/GstVideo/Objects/VideoBufferPool.hs +190/−0
- GI/GstVideo/Objects/VideoBufferPool.hs-boot +29/−0
- GI/GstVideo/Objects/VideoDecoder.hs +2011/−0
- GI/GstVideo/Objects/VideoDecoder.hs-boot +128/−0
- GI/GstVideo/Objects/VideoEncoder.hs +1352/−0
- GI/GstVideo/Objects/VideoEncoder.hs-boot +89/−0
- GI/GstVideo/Objects/VideoFilter.hs +226/−0
- GI/GstVideo/Objects/VideoFilter.hs-boot +29/−0
- GI/GstVideo/Objects/VideoMultiviewFlagsSet.hs +36/−0
- GI/GstVideo/Objects/VideoSink.hs +367/−0
- GI/GstVideo/Objects/VideoSink.hs-boot +32/−0
- GI/GstVideo/Structs.hs +101/−0
- GI/GstVideo/Structs/VideoAffineTransformationMeta.hs +231/−0
- GI/GstVideo/Structs/VideoAffineTransformationMeta.hs-boot +29/−0
- GI/GstVideo/Structs/VideoAlignment.hs +359/−0
- GI/GstVideo/Structs/VideoAlignment.hs-boot +29/−0
- GI/GstVideo/Structs/VideoAncillary.hs +263/−0
- GI/GstVideo/Structs/VideoAncillary.hs-boot +26/−0
- GI/GstVideo/Structs/VideoCaptionMeta.hs +286/−0
- GI/GstVideo/Structs/VideoCaptionMeta.hs-boot +26/−0
- GI/GstVideo/Structs/VideoChromaResample.hs +171/−0
- GI/GstVideo/Structs/VideoChromaResample.hs-boot +32/−0
- GI/GstVideo/Structs/VideoCodecFrame.hs +766/−0
- GI/GstVideo/Structs/VideoCodecFrame.hs-boot +38/−0
- GI/GstVideo/Structs/VideoCodecState.hs +452/−0
- GI/GstVideo/Structs/VideoCodecState.hs-boot +32/−0
- GI/GstVideo/Structs/VideoColorPrimariesInfo.hs +609/−0
- GI/GstVideo/Structs/VideoColorPrimariesInfo.hs-boot +26/−0
- GI/GstVideo/Structs/VideoColorimetry.hs +523/−0
- GI/GstVideo/Structs/VideoColorimetry.hs-boot +38/−0
- GI/GstVideo/Structs/VideoConverter.hs +284/−0
- GI/GstVideo/Structs/VideoConverter.hs-boot +38/−0
- GI/GstVideo/Structs/VideoCropMeta.hs +390/−0
- GI/GstVideo/Structs/VideoCropMeta.hs-boot +26/−0
- GI/GstVideo/Structs/VideoDither.hs +179/−0
- GI/GstVideo/Structs/VideoDither.hs-boot +32/−0
- GI/GstVideo/Structs/VideoFormatInfo.hs +949/−0
- GI/GstVideo/Structs/VideoFormatInfo.hs-boot +26/−0
- GI/GstVideo/Structs/VideoFrame.hs +708/−0
- GI/GstVideo/Structs/VideoFrame.hs-boot +41/−0
- GI/GstVideo/Structs/VideoGLTextureUploadMeta.hs +334/−0
- GI/GstVideo/Structs/VideoGLTextureUploadMeta.hs-boot +29/−0
- GI/GstVideo/Structs/VideoInfo.hs +1383/−0
- GI/GstVideo/Structs/VideoInfo.hs-boot +56/−0
- GI/GstVideo/Structs/VideoMeta.hs +842/−0
- GI/GstVideo/Structs/VideoMeta.hs-boot +32/−0
- GI/GstVideo/Structs/VideoMetaTransform.hs +268/−0
- GI/GstVideo/Structs/VideoMetaTransform.hs-boot +26/−0
- GI/GstVideo/Structs/VideoOverlayComposition.hs +486/−0
- GI/GstVideo/Structs/VideoOverlayComposition.hs-boot +47/−0
- GI/GstVideo/Structs/VideoOverlayCompositionMeta.hs +242/−0
- GI/GstVideo/Structs/VideoOverlayCompositionMeta.hs-boot +26/−0
- GI/GstVideo/Structs/VideoOverlayRectangle.hs +868/−0
- GI/GstVideo/Structs/VideoOverlayRectangle.hs-boot +65/−0
- GI/GstVideo/Structs/VideoRectangle.hs +311/−0
- GI/GstVideo/Structs/VideoRectangle.hs-boot +26/−0
- GI/GstVideo/Structs/VideoRegionOfInterestMeta.hs +736/−0
- GI/GstVideo/Structs/VideoRegionOfInterestMeta.hs-boot +32/−0
- GI/GstVideo/Structs/VideoResampler.hs +649/−0
- GI/GstVideo/Structs/VideoResampler.hs-boot +32/−0
- GI/GstVideo/Structs/VideoScaler.hs +426/−0
- GI/GstVideo/Structs/VideoScaler.hs-boot +44/−0
- GI/GstVideo/Structs/VideoTimeCode.hs +1476/−0
- GI/GstVideo/Structs/VideoTimeCode.hs-boot +71/−0
- GI/GstVideo/Structs/VideoTimeCodeConfig.hs +336/−0
- GI/GstVideo/Structs/VideoTimeCodeConfig.hs-boot +26/−0
- GI/GstVideo/Structs/VideoTimeCodeInterval.hs +596/−0
- GI/GstVideo/Structs/VideoTimeCodeInterval.hs-boot +38/−0
- GI/GstVideo/Structs/VideoTimeCodeMeta.hs +219/−0
- GI/GstVideo/Structs/VideoTimeCodeMeta.hs-boot +26/−0
- GI/GstVideo/Structs/VideoVBIEncoder.hs +325/−0
- GI/GstVideo/Structs/VideoVBIEncoder.hs-boot +38/−0
- GI/GstVideo/Structs/VideoVBIParser.hs +313/−0
- GI/GstVideo/Structs/VideoVBIParser.hs-boot +38/−0
- LICENSE +14/−0
- README.md +1/−1
- gi-gstvideo.cabal +63/−7
- stack.yaml +1/−1
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
@@ -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++
@@ -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 <gst/video/videooverlay.h>+>#include <gtk/gtk.h>+>#ifdef GDK_WINDOWING_X11+>#include <gdk/gdkx.h> // for GDK_WINDOW_XID+>#endif+>#ifdef GDK_WINDOWING_WIN32+>#include <gdk/gdkwin32.h> // 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 <glib.h>+>#include <gst/gst.h>+>#include <gst/video/videooverlay.h>+>+>#include <QApplication>+>#include <QTimer>+>#include <QWidget>+>+>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 (&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 (&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