{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) -} module GI.GstVideo.Objects.VideoEncoder ( -- * Exported types VideoEncoder(..) , VideoEncoderK , toVideoEncoder , noVideoEncoder , -- * Methods -- ** videoEncoderAllocateOutputBuffer VideoEncoderAllocateOutputBufferMethodInfo, videoEncoderAllocateOutputBuffer , -- ** videoEncoderAllocateOutputFrame VideoEncoderAllocateOutputFrameMethodInfo, videoEncoderAllocateOutputFrame , -- ** videoEncoderFinishFrame VideoEncoderFinishFrameMethodInfo , videoEncoderFinishFrame , -- ** videoEncoderGetAllocator VideoEncoderGetAllocatorMethodInfo , videoEncoderGetAllocator , -- ** videoEncoderGetFrame VideoEncoderGetFrameMethodInfo , videoEncoderGetFrame , -- ** videoEncoderGetFrames VideoEncoderGetFramesMethodInfo , videoEncoderGetFrames , -- ** videoEncoderGetLatency VideoEncoderGetLatencyMethodInfo , videoEncoderGetLatency , -- ** videoEncoderGetOldestFrame VideoEncoderGetOldestFrameMethodInfo , videoEncoderGetOldestFrame , -- ** videoEncoderGetOutputState VideoEncoderGetOutputStateMethodInfo , videoEncoderGetOutputState , -- ** videoEncoderMergeTags VideoEncoderMergeTagsMethodInfo , videoEncoderMergeTags , -- ** videoEncoderNegotiate VideoEncoderNegotiateMethodInfo , videoEncoderNegotiate , -- ** videoEncoderProxyGetcaps VideoEncoderProxyGetcapsMethodInfo , videoEncoderProxyGetcaps , -- ** videoEncoderSetHeaders VideoEncoderSetHeadersMethodInfo , videoEncoderSetHeaders , -- ** videoEncoderSetLatency VideoEncoderSetLatencyMethodInfo , videoEncoderSetLatency , -- ** videoEncoderSetMinPts VideoEncoderSetMinPtsMethodInfo , videoEncoderSetMinPts , -- ** videoEncoderSetOutputState VideoEncoderSetOutputStateMethodInfo , videoEncoderSetOutputState , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.GstVideo.Types import GI.GstVideo.Callbacks import qualified GI.GObject as GObject import qualified GI.Gst as Gst newtype VideoEncoder = VideoEncoder (ForeignPtr VideoEncoder) foreign import ccall "gst_video_encoder_get_type" c_gst_video_encoder_get_type :: IO GType type instance ParentTypes VideoEncoder = VideoEncoderParentTypes type VideoEncoderParentTypes = '[Gst.Element, Gst.Object, GObject.Object, Gst.Preset] instance GObject VideoEncoder where gobjectIsInitiallyUnowned _ = True gobjectType _ = c_gst_video_encoder_get_type class GObject o => VideoEncoderK o instance (GObject o, IsDescendantOf VideoEncoder o) => VideoEncoderK o toVideoEncoder :: VideoEncoderK o => o -> IO VideoEncoder toVideoEncoder = unsafeCastTo VideoEncoder noVideoEncoder :: Maybe VideoEncoder noVideoEncoder = Nothing type family ResolveVideoEncoderMethod (t :: Symbol) (o :: *) :: * where ResolveVideoEncoderMethod "abortState" o = Gst.ElementAbortStateMethodInfo ResolveVideoEncoderMethod "addControlBinding" o = Gst.ObjectAddControlBindingMethodInfo ResolveVideoEncoderMethod "addPad" o = Gst.ElementAddPadMethodInfo ResolveVideoEncoderMethod "allocateOutputBuffer" o = VideoEncoderAllocateOutputBufferMethodInfo ResolveVideoEncoderMethod "allocateOutputFrame" o = VideoEncoderAllocateOutputFrameMethodInfo ResolveVideoEncoderMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo ResolveVideoEncoderMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo ResolveVideoEncoderMethod "changeState" o = Gst.ElementChangeStateMethodInfo ResolveVideoEncoderMethod "continueState" o = Gst.ElementContinueStateMethodInfo ResolveVideoEncoderMethod "createAllPads" o = Gst.ElementCreateAllPadsMethodInfo ResolveVideoEncoderMethod "defaultError" o = Gst.ObjectDefaultErrorMethodInfo ResolveVideoEncoderMethod "deletePreset" o = Gst.PresetDeletePresetMethodInfo ResolveVideoEncoderMethod "finishFrame" o = VideoEncoderFinishFrameMethodInfo ResolveVideoEncoderMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo ResolveVideoEncoderMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo ResolveVideoEncoderMethod "hasActiveControlBindings" o = Gst.ObjectHasActiveControlBindingsMethodInfo ResolveVideoEncoderMethod "hasAncestor" o = Gst.ObjectHasAncestorMethodInfo ResolveVideoEncoderMethod "hasAsAncestor" o = Gst.ObjectHasAsAncestorMethodInfo ResolveVideoEncoderMethod "hasAsParent" o = Gst.ObjectHasAsParentMethodInfo ResolveVideoEncoderMethod "isEditable" o = Gst.PresetIsEditableMethodInfo ResolveVideoEncoderMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo ResolveVideoEncoderMethod "isLockedState" o = Gst.ElementIsLockedStateMethodInfo ResolveVideoEncoderMethod "iteratePads" o = Gst.ElementIteratePadsMethodInfo ResolveVideoEncoderMethod "iterateSinkPads" o = Gst.ElementIterateSinkPadsMethodInfo ResolveVideoEncoderMethod "iterateSrcPads" o = Gst.ElementIterateSrcPadsMethodInfo ResolveVideoEncoderMethod "link" o = Gst.ElementLinkMethodInfo ResolveVideoEncoderMethod "linkFiltered" o = Gst.ElementLinkFilteredMethodInfo ResolveVideoEncoderMethod "linkPads" o = Gst.ElementLinkPadsMethodInfo ResolveVideoEncoderMethod "linkPadsFiltered" o = Gst.ElementLinkPadsFilteredMethodInfo ResolveVideoEncoderMethod "linkPadsFull" o = Gst.ElementLinkPadsFullMethodInfo ResolveVideoEncoderMethod "loadPreset" o = Gst.PresetLoadPresetMethodInfo ResolveVideoEncoderMethod "lostState" o = Gst.ElementLostStateMethodInfo ResolveVideoEncoderMethod "mergeTags" o = VideoEncoderMergeTagsMethodInfo ResolveVideoEncoderMethod "messageFull" o = Gst.ElementMessageFullMethodInfo ResolveVideoEncoderMethod "negotiate" o = VideoEncoderNegotiateMethodInfo ResolveVideoEncoderMethod "noMorePads" o = Gst.ElementNoMorePadsMethodInfo ResolveVideoEncoderMethod "notify" o = GObject.ObjectNotifyMethodInfo ResolveVideoEncoderMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo ResolveVideoEncoderMethod "postMessage" o = Gst.ElementPostMessageMethodInfo ResolveVideoEncoderMethod "provideClock" o = Gst.ElementProvideClockMethodInfo ResolveVideoEncoderMethod "proxyGetcaps" o = VideoEncoderProxyGetcapsMethodInfo ResolveVideoEncoderMethod "query" o = Gst.ElementQueryMethodInfo ResolveVideoEncoderMethod "queryConvert" o = Gst.ElementQueryConvertMethodInfo ResolveVideoEncoderMethod "queryDuration" o = Gst.ElementQueryDurationMethodInfo ResolveVideoEncoderMethod "queryPosition" o = Gst.ElementQueryPositionMethodInfo ResolveVideoEncoderMethod "refSink" o = GObject.ObjectRefSinkMethodInfo ResolveVideoEncoderMethod "releaseRequestPad" o = Gst.ElementReleaseRequestPadMethodInfo ResolveVideoEncoderMethod "removeControlBinding" o = Gst.ObjectRemoveControlBindingMethodInfo ResolveVideoEncoderMethod "removePad" o = Gst.ElementRemovePadMethodInfo ResolveVideoEncoderMethod "renamePreset" o = Gst.PresetRenamePresetMethodInfo ResolveVideoEncoderMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo ResolveVideoEncoderMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo ResolveVideoEncoderMethod "requestPad" o = Gst.ElementRequestPadMethodInfo ResolveVideoEncoderMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo ResolveVideoEncoderMethod "savePreset" o = Gst.PresetSavePresetMethodInfo ResolveVideoEncoderMethod "seek" o = Gst.ElementSeekMethodInfo ResolveVideoEncoderMethod "seekSimple" o = Gst.ElementSeekSimpleMethodInfo ResolveVideoEncoderMethod "sendEvent" o = Gst.ElementSendEventMethodInfo ResolveVideoEncoderMethod "stealData" o = GObject.ObjectStealDataMethodInfo ResolveVideoEncoderMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo ResolveVideoEncoderMethod "suggestNextSync" o = Gst.ObjectSuggestNextSyncMethodInfo ResolveVideoEncoderMethod "syncStateWithParent" o = Gst.ElementSyncStateWithParentMethodInfo ResolveVideoEncoderMethod "syncValues" o = Gst.ObjectSyncValuesMethodInfo ResolveVideoEncoderMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo ResolveVideoEncoderMethod "unlink" o = Gst.ElementUnlinkMethodInfo ResolveVideoEncoderMethod "unlinkPads" o = Gst.ElementUnlinkPadsMethodInfo ResolveVideoEncoderMethod "unparent" o = Gst.ObjectUnparentMethodInfo ResolveVideoEncoderMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo ResolveVideoEncoderMethod "getAllocator" o = VideoEncoderGetAllocatorMethodInfo ResolveVideoEncoderMethod "getBaseTime" o = Gst.ElementGetBaseTimeMethodInfo ResolveVideoEncoderMethod "getBus" o = Gst.ElementGetBusMethodInfo ResolveVideoEncoderMethod "getClock" o = Gst.ElementGetClockMethodInfo ResolveVideoEncoderMethod "getCompatiblePad" o = Gst.ElementGetCompatiblePadMethodInfo ResolveVideoEncoderMethod "getCompatiblePadTemplate" o = Gst.ElementGetCompatiblePadTemplateMethodInfo ResolveVideoEncoderMethod "getControlBinding" o = Gst.ObjectGetControlBindingMethodInfo ResolveVideoEncoderMethod "getControlRate" o = Gst.ObjectGetControlRateMethodInfo ResolveVideoEncoderMethod "getData" o = GObject.ObjectGetDataMethodInfo ResolveVideoEncoderMethod "getFactory" o = Gst.ElementGetFactoryMethodInfo ResolveVideoEncoderMethod "getFrame" o = VideoEncoderGetFrameMethodInfo ResolveVideoEncoderMethod "getFrames" o = VideoEncoderGetFramesMethodInfo ResolveVideoEncoderMethod "getGValueArray" o = Gst.ObjectGetGValueArrayMethodInfo ResolveVideoEncoderMethod "getLatency" o = VideoEncoderGetLatencyMethodInfo ResolveVideoEncoderMethod "getMeta" o = Gst.PresetGetMetaMethodInfo ResolveVideoEncoderMethod "getName" o = Gst.ObjectGetNameMethodInfo ResolveVideoEncoderMethod "getOldestFrame" o = VideoEncoderGetOldestFrameMethodInfo ResolveVideoEncoderMethod "getOutputState" o = VideoEncoderGetOutputStateMethodInfo ResolveVideoEncoderMethod "getParent" o = Gst.ObjectGetParentMethodInfo ResolveVideoEncoderMethod "getPathString" o = Gst.ObjectGetPathStringMethodInfo ResolveVideoEncoderMethod "getPresetNames" o = Gst.PresetGetPresetNamesMethodInfo ResolveVideoEncoderMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo ResolveVideoEncoderMethod "getPropertyNames" o = Gst.PresetGetPropertyNamesMethodInfo ResolveVideoEncoderMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo ResolveVideoEncoderMethod "getRequestPad" o = Gst.ElementGetRequestPadMethodInfo ResolveVideoEncoderMethod "getStartTime" o = Gst.ElementGetStartTimeMethodInfo ResolveVideoEncoderMethod "getState" o = Gst.ElementGetStateMethodInfo ResolveVideoEncoderMethod "getStaticPad" o = Gst.ElementGetStaticPadMethodInfo ResolveVideoEncoderMethod "getValue" o = Gst.ObjectGetValueMethodInfo ResolveVideoEncoderMethod "getValueArray" o = Gst.ObjectGetValueArrayMethodInfo ResolveVideoEncoderMethod "setBaseTime" o = Gst.ElementSetBaseTimeMethodInfo ResolveVideoEncoderMethod "setBus" o = Gst.ElementSetBusMethodInfo ResolveVideoEncoderMethod "setClock" o = Gst.ElementSetClockMethodInfo ResolveVideoEncoderMethod "setContext" o = Gst.ElementSetContextMethodInfo ResolveVideoEncoderMethod "setControlBindingDisabled" o = Gst.ObjectSetControlBindingDisabledMethodInfo ResolveVideoEncoderMethod "setControlBindingsDisabled" o = Gst.ObjectSetControlBindingsDisabledMethodInfo ResolveVideoEncoderMethod "setControlRate" o = Gst.ObjectSetControlRateMethodInfo ResolveVideoEncoderMethod "setData" o = GObject.ObjectSetDataMethodInfo ResolveVideoEncoderMethod "setHeaders" o = VideoEncoderSetHeadersMethodInfo ResolveVideoEncoderMethod "setLatency" o = VideoEncoderSetLatencyMethodInfo ResolveVideoEncoderMethod "setLockedState" o = Gst.ElementSetLockedStateMethodInfo ResolveVideoEncoderMethod "setMeta" o = Gst.PresetSetMetaMethodInfo ResolveVideoEncoderMethod "setMinPts" o = VideoEncoderSetMinPtsMethodInfo ResolveVideoEncoderMethod "setName" o = Gst.ObjectSetNameMethodInfo ResolveVideoEncoderMethod "setOutputState" o = VideoEncoderSetOutputStateMethodInfo ResolveVideoEncoderMethod "setParent" o = Gst.ObjectSetParentMethodInfo ResolveVideoEncoderMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo ResolveVideoEncoderMethod "setStartTime" o = Gst.ElementSetStartTimeMethodInfo ResolveVideoEncoderMethod "setState" o = Gst.ElementSetStateMethodInfo ResolveVideoEncoderMethod l o = MethodResolutionFailed l o instance (info ~ ResolveVideoEncoderMethod t VideoEncoder, MethodInfo info VideoEncoder p) => IsLabelProxy t (VideoEncoder -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolveVideoEncoderMethod t VideoEncoder, MethodInfo info VideoEncoder p) => IsLabel t (VideoEncoder -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif type instance AttributeList VideoEncoder = VideoEncoderAttributeList type VideoEncoderAttributeList = ('[ '("name", Gst.ObjectNamePropertyInfo), '("parent", Gst.ObjectParentPropertyInfo)] :: [(Symbol, *)]) type instance SignalList VideoEncoder = VideoEncoderSignalList type VideoEncoderSignalList = ('[ '("deepNotify", Gst.ObjectDeepNotifySignalInfo), '("noMorePads", Gst.ElementNoMorePadsSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("padAdded", Gst.ElementPadAddedSignalInfo), '("padRemoved", Gst.ElementPadRemovedSignalInfo)] :: [(Symbol, *)]) -- method VideoEncoder::allocate_output_buffer -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Buffer" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_allocate_output_buffer" gst_video_encoder_allocate_output_buffer :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Word64 -> -- size : TBasicType TUInt64 IO (Ptr Gst.Buffer) videoEncoderAllocateOutputBuffer :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Word64 -- size -> m Gst.Buffer -- result videoEncoderAllocateOutputBuffer _obj size = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_allocate_output_buffer _obj' size checkUnexpectedReturnNULL "gst_video_encoder_allocate_output_buffer" result result' <- (wrapBoxed Gst.Buffer) result touchManagedPtr _obj return result' data VideoEncoderAllocateOutputBufferMethodInfo instance (signature ~ (Word64 -> m Gst.Buffer), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderAllocateOutputBufferMethodInfo a signature where overloadedMethod _ = videoEncoderAllocateOutputBuffer -- method VideoEncoder::allocate_output_frame -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "FlowReturn" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_allocate_output_frame" gst_video_encoder_allocate_output_frame :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr VideoCodecFrame -> -- frame : TInterface "GstVideo" "VideoCodecFrame" Word64 -> -- size : TBasicType TUInt64 IO CUInt videoEncoderAllocateOutputFrame :: (MonadIO m, VideoEncoderK a) => a -- _obj -> VideoCodecFrame -- frame -> Word64 -- size -> m Gst.FlowReturn -- result videoEncoderAllocateOutputFrame _obj frame size = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let frame' = unsafeManagedPtrGetPtr frame result <- gst_video_encoder_allocate_output_frame _obj' frame' size let result' = (toEnum . fromIntegral) result touchManagedPtr _obj touchManagedPtr frame return result' data VideoEncoderAllocateOutputFrameMethodInfo instance (signature ~ (VideoCodecFrame -> Word64 -> m Gst.FlowReturn), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderAllocateOutputFrameMethodInfo a signature where overloadedMethod _ = videoEncoderAllocateOutputFrame -- method VideoEncoder::finish_frame -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame", argType = TInterface "GstVideo" "VideoCodecFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : TInterface "Gst" "FlowReturn" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_finish_frame" gst_video_encoder_finish_frame :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr VideoCodecFrame -> -- frame : TInterface "GstVideo" "VideoCodecFrame" IO CUInt videoEncoderFinishFrame :: (MonadIO m, VideoEncoderK a) => a -- _obj -> VideoCodecFrame -- frame -> m Gst.FlowReturn -- result videoEncoderFinishFrame _obj frame = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj frame' <- copyBoxed frame result <- gst_video_encoder_finish_frame _obj' frame' let result' = (toEnum . fromIntegral) result touchManagedPtr _obj touchManagedPtr frame return result' data VideoEncoderFinishFrameMethodInfo instance (signature ~ (VideoCodecFrame -> m Gst.FlowReturn), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderFinishFrameMethodInfo a signature where overloadedMethod _ = videoEncoderFinishFrame -- method VideoEncoder::get_allocator -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allocator", argType = TInterface "Gst" "Allocator", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "params", argType = TInterface "Gst" "AllocationParams", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferEverything}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_allocator" gst_video_encoder_get_allocator :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr (Ptr Gst.Allocator) -> -- allocator : TInterface "Gst" "Allocator" Ptr Gst.AllocationParams -> -- params : TInterface "Gst" "AllocationParams" IO () videoEncoderGetAllocator :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m (Gst.Allocator,Gst.AllocationParams)-- result videoEncoderGetAllocator _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj allocator <- allocMem :: IO (Ptr (Ptr Gst.Allocator)) params <- callocBoxedBytes 64 :: IO (Ptr Gst.AllocationParams) gst_video_encoder_get_allocator _obj' allocator params allocator' <- peek allocator allocator'' <- (wrapObject Gst.Allocator) allocator' params' <- (wrapBoxed Gst.AllocationParams) params touchManagedPtr _obj freeMem allocator return (allocator'', params') data VideoEncoderGetAllocatorMethodInfo instance (signature ~ (m (Gst.Allocator,Gst.AllocationParams)), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetAllocatorMethodInfo a signature where overloadedMethod _ = videoEncoderGetAllocator -- method VideoEncoder::get_frame -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame_number", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoCodecFrame" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_frame" gst_video_encoder_get_frame :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Int32 -> -- frame_number : TBasicType TInt32 IO (Ptr VideoCodecFrame) videoEncoderGetFrame :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Int32 -- frameNumber -> m VideoCodecFrame -- result videoEncoderGetFrame _obj frameNumber = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_get_frame _obj' frameNumber checkUnexpectedReturnNULL "gst_video_encoder_get_frame" result result' <- (wrapBoxed VideoCodecFrame) result touchManagedPtr _obj return result' data VideoEncoderGetFrameMethodInfo instance (signature ~ (Int32 -> m VideoCodecFrame), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetFrameMethodInfo a signature where overloadedMethod _ = videoEncoderGetFrame -- method VideoEncoder::get_frames -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TGList (TInterface "GstVideo" "VideoCodecFrame") -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_frames" gst_video_encoder_get_frames :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" IO (Ptr (GList (Ptr VideoCodecFrame))) videoEncoderGetFrames :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m [VideoCodecFrame] -- result videoEncoderGetFrames _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_get_frames _obj' checkUnexpectedReturnNULL "gst_video_encoder_get_frames" result result' <- unpackGList result result'' <- mapM (wrapBoxed VideoCodecFrame) result' g_list_free result touchManagedPtr _obj return result'' data VideoEncoderGetFramesMethodInfo instance (signature ~ (m [VideoCodecFrame]), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetFramesMethodInfo a signature where overloadedMethod _ = videoEncoderGetFrames -- method VideoEncoder::get_latency -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_latency" gst_video_encoder_get_latency :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr Word64 -> -- min_latency : TBasicType TUInt64 Ptr Word64 -> -- max_latency : TBasicType TUInt64 IO () videoEncoderGetLatency :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m (Word64,Word64) -- result videoEncoderGetLatency _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj minLatency <- allocMem :: IO (Ptr Word64) maxLatency <- allocMem :: IO (Ptr Word64) gst_video_encoder_get_latency _obj' minLatency maxLatency minLatency' <- peek minLatency maxLatency' <- peek maxLatency touchManagedPtr _obj freeMem minLatency freeMem maxLatency return (minLatency', maxLatency') data VideoEncoderGetLatencyMethodInfo instance (signature ~ (m (Word64,Word64)), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetLatencyMethodInfo a signature where overloadedMethod _ = videoEncoderGetLatency -- method VideoEncoder::get_oldest_frame -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoCodecFrame" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_oldest_frame" gst_video_encoder_get_oldest_frame :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" IO (Ptr VideoCodecFrame) videoEncoderGetOldestFrame :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m VideoCodecFrame -- result videoEncoderGetOldestFrame _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_get_oldest_frame _obj' checkUnexpectedReturnNULL "gst_video_encoder_get_oldest_frame" result result' <- (wrapBoxed VideoCodecFrame) result touchManagedPtr _obj return result' data VideoEncoderGetOldestFrameMethodInfo instance (signature ~ (m VideoCodecFrame), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetOldestFrameMethodInfo a signature where overloadedMethod _ = videoEncoderGetOldestFrame -- method VideoEncoder::get_output_state -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoCodecState" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_get_output_state" gst_video_encoder_get_output_state :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" IO (Ptr VideoCodecState) videoEncoderGetOutputState :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m VideoCodecState -- result videoEncoderGetOutputState _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_get_output_state _obj' checkUnexpectedReturnNULL "gst_video_encoder_get_output_state" result result' <- (wrapBoxed VideoCodecState) result touchManagedPtr _obj return result' data VideoEncoderGetOutputStateMethodInfo instance (signature ~ (m VideoCodecState), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderGetOutputStateMethodInfo a signature where overloadedMethod _ = videoEncoderGetOutputState -- method VideoEncoder::merge_tags -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tags", argType = TInterface "Gst" "TagList", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gst" "TagMergeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_merge_tags" gst_video_encoder_merge_tags :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr Gst.TagList -> -- tags : TInterface "Gst" "TagList" CUInt -> -- mode : TInterface "Gst" "TagMergeMode" IO () videoEncoderMergeTags :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Maybe (Gst.TagList) -- tags -> Gst.TagMergeMode -- mode -> m () -- result videoEncoderMergeTags _obj tags mode = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj maybeTags <- case tags of Nothing -> return nullPtr Just jTags -> do let jTags' = unsafeManagedPtrGetPtr jTags return jTags' let mode' = (fromIntegral . fromEnum) mode gst_video_encoder_merge_tags _obj' maybeTags mode' touchManagedPtr _obj whenJust tags touchManagedPtr return () data VideoEncoderMergeTagsMethodInfo instance (signature ~ (Maybe (Gst.TagList) -> Gst.TagMergeMode -> m ()), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderMergeTagsMethodInfo a signature where overloadedMethod _ = videoEncoderMergeTags -- method VideoEncoder::negotiate -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_negotiate" gst_video_encoder_negotiate :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" IO CInt videoEncoderNegotiate :: (MonadIO m, VideoEncoderK a) => a -- _obj -> m Bool -- result videoEncoderNegotiate _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gst_video_encoder_negotiate _obj' let result' = (/= 0) result touchManagedPtr _obj return result' data VideoEncoderNegotiateMethodInfo instance (signature ~ (m Bool), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderNegotiateMethodInfo a signature where overloadedMethod _ = videoEncoderNegotiate -- method VideoEncoder::proxy_getcaps -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filter", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Caps" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_proxy_getcaps" gst_video_encoder_proxy_getcaps :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr Gst.Caps -> -- caps : TInterface "Gst" "Caps" Ptr Gst.Caps -> -- filter : TInterface "Gst" "Caps" IO (Ptr Gst.Caps) videoEncoderProxyGetcaps :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Maybe (Gst.Caps) -- caps -> Maybe (Gst.Caps) -- filter -> m Gst.Caps -- result videoEncoderProxyGetcaps _obj caps filter = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj maybeCaps <- case caps of Nothing -> return nullPtr Just jCaps -> do let jCaps' = unsafeManagedPtrGetPtr jCaps return jCaps' maybeFilter <- case filter of Nothing -> return nullPtr Just jFilter -> do let jFilter' = unsafeManagedPtrGetPtr jFilter return jFilter' result <- gst_video_encoder_proxy_getcaps _obj' maybeCaps maybeFilter checkUnexpectedReturnNULL "gst_video_encoder_proxy_getcaps" result result' <- (wrapBoxed Gst.Caps) result touchManagedPtr _obj whenJust caps touchManagedPtr whenJust filter touchManagedPtr return result' data VideoEncoderProxyGetcapsMethodInfo instance (signature ~ (Maybe (Gst.Caps) -> Maybe (Gst.Caps) -> m Gst.Caps), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderProxyGetcapsMethodInfo a signature where overloadedMethod _ = videoEncoderProxyGetcaps -- method VideoEncoder::set_headers -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "headers", argType = TGList (TInterface "Gst" "Buffer"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_set_headers" gst_video_encoder_set_headers :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr (GList (Ptr Gst.Buffer)) -> -- headers : TGList (TInterface "Gst" "Buffer") IO () videoEncoderSetHeaders :: (MonadIO m, VideoEncoderK a) => a -- _obj -> [Gst.Buffer] -- headers -> m () -- result videoEncoderSetHeaders _obj headers = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj headers' <- mapM copyBoxed headers headers'' <- packGList headers' gst_video_encoder_set_headers _obj' headers'' touchManagedPtr _obj mapM_ touchManagedPtr headers return () data VideoEncoderSetHeadersMethodInfo instance (signature ~ ([Gst.Buffer] -> m ()), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderSetHeadersMethodInfo a signature where overloadedMethod _ = videoEncoderSetHeaders -- method VideoEncoder::set_latency -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_latency", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_set_latency" gst_video_encoder_set_latency :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Word64 -> -- min_latency : TBasicType TUInt64 Word64 -> -- max_latency : TBasicType TUInt64 IO () videoEncoderSetLatency :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Word64 -- minLatency -> Word64 -- maxLatency -> m () -- result videoEncoderSetLatency _obj minLatency maxLatency = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj gst_video_encoder_set_latency _obj' minLatency maxLatency touchManagedPtr _obj return () data VideoEncoderSetLatencyMethodInfo instance (signature ~ (Word64 -> Word64 -> m ()), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderSetLatencyMethodInfo a signature where overloadedMethod _ = videoEncoderSetLatency -- method VideoEncoder::set_min_pts -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_pts", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_set_min_pts" gst_video_encoder_set_min_pts :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Word64 -> -- min_pts : TBasicType TUInt64 IO () videoEncoderSetMinPts :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Word64 -- minPts -> m () -- result videoEncoderSetMinPts _obj minPts = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj gst_video_encoder_set_min_pts _obj' minPts touchManagedPtr _obj return () data VideoEncoderSetMinPtsMethodInfo instance (signature ~ (Word64 -> m ()), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderSetMinPtsMethodInfo a signature where overloadedMethod _ = videoEncoderSetMinPts -- method VideoEncoder::set_output_state -- method type : OrdinaryMethod -- Args : [Arg {argCName = "_obj", argType = TInterface "GstVideo" "VideoEncoder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "reference", argType = TInterface "GstVideo" "VideoCodecState", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoCodecState" -- throws : False -- Skip return : False foreign import ccall "gst_video_encoder_set_output_state" gst_video_encoder_set_output_state :: Ptr VideoEncoder -> -- _obj : TInterface "GstVideo" "VideoEncoder" Ptr Gst.Caps -> -- caps : TInterface "Gst" "Caps" Ptr VideoCodecState -> -- reference : TInterface "GstVideo" "VideoCodecState" IO (Ptr VideoCodecState) videoEncoderSetOutputState :: (MonadIO m, VideoEncoderK a) => a -- _obj -> Gst.Caps -- caps -> Maybe (VideoCodecState) -- reference -> m VideoCodecState -- result videoEncoderSetOutputState _obj caps reference = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj caps' <- copyBoxed caps maybeReference <- case reference of Nothing -> return nullPtr Just jReference -> do let jReference' = unsafeManagedPtrGetPtr jReference return jReference' result <- gst_video_encoder_set_output_state _obj' caps' maybeReference checkUnexpectedReturnNULL "gst_video_encoder_set_output_state" result result' <- (wrapBoxed VideoCodecState) result touchManagedPtr _obj touchManagedPtr caps whenJust reference touchManagedPtr return result' data VideoEncoderSetOutputStateMethodInfo instance (signature ~ (Gst.Caps -> Maybe (VideoCodecState) -> m VideoCodecState), MonadIO m, VideoEncoderK a) => MethodInfo VideoEncoderSetOutputStateMethodInfo a signature where overloadedMethod _ = videoEncoderSetOutputState