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