{- | 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.Functions ( -- * Methods -- ** bufferAddVideoMeta bufferAddVideoMeta , -- ** bufferAddVideoMetaFull bufferAddVideoMetaFull , -- ** bufferAddVideoOverlayCompositionMeta bufferAddVideoOverlayCompositionMeta , -- ** bufferAddVideoRegionOfInterestMeta bufferAddVideoRegionOfInterestMeta , -- ** bufferAddVideoRegionOfInterestMetaId bufferAddVideoRegionOfInterestMetaId , -- ** bufferGetVideoMeta bufferGetVideoMeta , -- ** bufferGetVideoMetaId bufferGetVideoMetaId , -- ** bufferGetVideoRegionOfInterestMetaId bufferGetVideoRegionOfInterestMetaId , -- ** bufferPoolConfigGetVideoAlignment bufferPoolConfigGetVideoAlignment , -- ** bufferPoolConfigSetVideoAlignment bufferPoolConfigSetVideoAlignment , -- ** isVideoOverlayPrepareWindowHandleMessage isVideoOverlayPrepareWindowHandleMessage, -- ** videoBlend videoBlend , -- ** videoBlendScaleLinearRGBA videoBlendScaleLinearRGBA , -- ** videoCalculateDisplayRatio videoCalculateDisplayRatio , -- ** videoChromaFromString videoChromaFromString , -- ** videoChromaResample videoChromaResample , -- ** videoChromaToString videoChromaToString , -- ** videoColorTransferDecode videoColorTransferDecode , -- ** videoColorTransferEncode videoColorTransferEncode , -- ** videoConvertSample videoConvertSample , -- ** videoConvertSampleAsync videoConvertSampleAsync , -- ** videoCropMetaApiGetType videoCropMetaApiGetType , -- ** videoEventIsForceKeyUnit videoEventIsForceKeyUnit , -- ** videoEventNewDownstreamForceKeyUnit videoEventNewDownstreamForceKeyUnit , -- ** videoEventNewStillFrame videoEventNewStillFrame , -- ** videoEventNewUpstreamForceKeyUnit videoEventNewUpstreamForceKeyUnit , -- ** videoEventParseDownstreamForceKeyUnit videoEventParseDownstreamForceKeyUnit , -- ** videoEventParseStillFrame videoEventParseStillFrame , -- ** videoEventParseUpstreamForceKeyUnit videoEventParseUpstreamForceKeyUnit , -- ** videoGlTextureUploadMetaApiGetType videoGlTextureUploadMetaApiGetType , -- ** videoGuessFramerate videoGuessFramerate , -- ** videoMetaApiGetType videoMetaApiGetType , -- ** videoMultiviewGetDoubledHeightModes videoMultiviewGetDoubledHeightModes , -- ** videoMultiviewGetDoubledSizeModes videoMultiviewGetDoubledSizeModes , -- ** videoMultiviewGetDoubledWidthModes videoMultiviewGetDoubledWidthModes , -- ** videoMultiviewGetMonoModes videoMultiviewGetMonoModes , -- ** videoMultiviewGetUnpackedModes videoMultiviewGetUnpackedModes , -- ** videoMultiviewGuessHalfAspect videoMultiviewGuessHalfAspect , -- ** videoMultiviewVideoInfoChangeMode videoMultiviewVideoInfoChangeMode , -- ** videoOverlayCompositionMetaApiGetType videoOverlayCompositionMetaApiGetType , -- ** videoRegionOfInterestMetaApiGetType videoRegionOfInterestMetaApiGetType , -- ** videoTileGetIndex videoTileGetIndex , ) 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.GLib as GLib import qualified GI.Gst as Gst -- function gst_video_tile_get_index -- Args : [Arg {argCName = "mode", argType = TInterface "GstVideo" "VideoTileMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_tiles", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y_tiles", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TUInt32 -- throws : False -- Skip return : False foreign import ccall "gst_video_tile_get_index" gst_video_tile_get_index :: CUInt -> -- mode : TInterface "GstVideo" "VideoTileMode" Int32 -> -- x : TBasicType TInt32 Int32 -> -- y : TBasicType TInt32 Int32 -> -- x_tiles : TBasicType TInt32 Int32 -> -- y_tiles : TBasicType TInt32 IO Word32 videoTileGetIndex :: (MonadIO m) => VideoTileMode -- mode -> Int32 -- x -> Int32 -- y -> Int32 -- xTiles -> Int32 -- yTiles -> m Word32 -- result 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 : 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 videoRegionOfInterestMetaApiGetType :: (MonadIO m) => m GType -- result 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 : 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 videoOverlayCompositionMetaApiGetType :: (MonadIO m) => m GType -- result 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 "GstVideo" "VideoInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_mview_mode", argType = TInterface "GstVideo" "VideoMultiviewMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_mview_flags", argType = TInterface "GstVideo" "VideoMultiviewFlags", 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_multiview_video_info_change_mode" gst_video_multiview_video_info_change_mode :: Ptr VideoInfo -> -- info : TInterface "GstVideo" "VideoInfo" CUInt -> -- out_mview_mode : TInterface "GstVideo" "VideoMultiviewMode" CUInt -> -- out_mview_flags : TInterface "GstVideo" "VideoMultiviewFlags" IO () videoMultiviewVideoInfoChangeMode :: (MonadIO m) => VideoInfo -- info -> VideoMultiviewMode -- outMviewMode -> [VideoMultiviewFlags] -- outMviewFlags -> m () -- result videoMultiviewVideoInfoChangeMode info outMviewMode outMviewFlags = liftIO $ do let 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 "GstVideo" "VideoMultiviewMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "par_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "par_d", argType = TBasicType TUInt32, 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_multiview_guess_half_aspect" gst_video_multiview_guess_half_aspect :: CUInt -> -- mv_mode : TInterface "GstVideo" "VideoMultiviewMode" Word32 -> -- width : TBasicType TUInt32 Word32 -> -- height : TBasicType TUInt32 Word32 -> -- par_n : TBasicType TUInt32 Word32 -> -- par_d : TBasicType TUInt32 IO CInt videoMultiviewGuessHalfAspect :: (MonadIO m) => VideoMultiviewMode -- mvMode -> Word32 -- width -> Word32 -- height -> Word32 -- parN -> Word32 -- parD -> m Bool -- result 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 : TInterface "GObject" "Value" -- throws : False -- Skip return : False foreign import ccall "gst_video_multiview_get_unpacked_modes" gst_video_multiview_get_unpacked_modes :: IO (Ptr GValue) videoMultiviewGetUnpackedModes :: (MonadIO m) => m GValue -- result videoMultiviewGetUnpackedModes = liftIO $ do result <- gst_video_multiview_get_unpacked_modes checkUnexpectedReturnNULL "gst_video_multiview_get_unpacked_modes" result result' <- (newBoxed GValue) result return result' -- function gst_video_multiview_get_mono_modes -- Args : [] -- Lengths : [] -- returnType : TInterface "GObject" "Value" -- throws : False -- Skip return : False foreign import ccall "gst_video_multiview_get_mono_modes" gst_video_multiview_get_mono_modes :: IO (Ptr GValue) videoMultiviewGetMonoModes :: (MonadIO m) => m GValue -- result videoMultiviewGetMonoModes = liftIO $ do result <- gst_video_multiview_get_mono_modes checkUnexpectedReturnNULL "gst_video_multiview_get_mono_modes" result result' <- (newBoxed GValue) result return result' -- function gst_video_multiview_get_doubled_width_modes -- Args : [] -- Lengths : [] -- returnType : TInterface "GObject" "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) videoMultiviewGetDoubledWidthModes :: (MonadIO m) => m GValue -- result videoMultiviewGetDoubledWidthModes = liftIO $ do result <- gst_video_multiview_get_doubled_width_modes checkUnexpectedReturnNULL "gst_video_multiview_get_doubled_width_modes" result result' <- (newBoxed GValue) result return result' -- function gst_video_multiview_get_doubled_size_modes -- Args : [] -- Lengths : [] -- returnType : TInterface "GObject" "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) videoMultiviewGetDoubledSizeModes :: (MonadIO m) => m GValue -- result videoMultiviewGetDoubledSizeModes = liftIO $ do result <- gst_video_multiview_get_doubled_size_modes checkUnexpectedReturnNULL "gst_video_multiview_get_doubled_size_modes" result result' <- (newBoxed GValue) result return result' -- function gst_video_multiview_get_doubled_height_modes -- Args : [] -- Lengths : [] -- returnType : TInterface "GObject" "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) videoMultiviewGetDoubledHeightModes :: (MonadIO m) => m GValue -- result videoMultiviewGetDoubledHeightModes = liftIO $ do result <- gst_video_multiview_get_doubled_height_modes checkUnexpectedReturnNULL "gst_video_multiview_get_doubled_height_modes" result result' <- (newBoxed GValue) result return result' -- function gst_video_meta_api_get_type -- Args : [] -- Lengths : [] -- returnType : TBasicType TGType -- throws : False -- Skip return : False foreign import ccall "gst_video_meta_api_get_type" gst_video_meta_api_get_type :: IO CGType videoMetaApiGetType :: (MonadIO m) => m GType -- result 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, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_n", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "dest_d", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : 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 TInt32 Ptr Int32 -> -- dest_d : TBasicType TInt32 IO CInt videoGuessFramerate :: (MonadIO m) => Word64 -- duration -> m (Bool,Int32,Int32) -- result 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 : 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 videoGlTextureUploadMetaApiGetType :: (MonadIO m) => m GType -- result 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 "Gst" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : 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 : TInterface "Gst" "Event" Ptr Word64 -> -- running_time : TBasicType TUInt64 Ptr CInt -> -- all_headers : TBasicType TBoolean Ptr Word32 -> -- count : TBasicType TUInt32 IO CInt videoEventParseUpstreamForceKeyUnit :: (MonadIO m) => Gst.Event -- event -> m (Bool,Word64,Bool,Word32) -- result videoEventParseUpstreamForceKeyUnit event = liftIO $ do let 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 "Gst" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "in_still", argType = TBasicType TBoolean, 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_event_parse_still_frame" gst_video_event_parse_still_frame :: Ptr Gst.Event -> -- event : TInterface "Gst" "Event" CInt -> -- in_still : TBasicType TBoolean IO CInt videoEventParseStillFrame :: (MonadIO m) => Gst.Event -- event -> Bool -- inStill -> m Bool -- result videoEventParseStillFrame event inStill = liftIO $ do let event' = unsafeManagedPtrGetPtr event let inStill' = (fromIntegral . fromEnum) inStill result <- gst_video_event_parse_still_frame event' inStill' let result' = (/= 0) result touchManagedPtr event return result' -- function gst_video_event_parse_downstream_force_key_unit -- Args : [Arg {argCName = "event", argType = TInterface "Gst" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stream_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : 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 : TInterface "Gst" "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 TUInt32 IO CInt videoEventParseDownstreamForceKeyUnit :: (MonadIO m) => Gst.Event -- event -> m (Bool,Word64,Word64,Word64,Bool,Word32)-- result videoEventParseDownstreamForceKeyUnit event = liftIO $ do let 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, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "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 TUInt32 IO (Ptr Gst.Event) videoEventNewUpstreamForceKeyUnit :: (MonadIO m) => Word64 -- runningTime -> Bool -- allHeaders -> Word32 -- count -> m Gst.Event -- result videoEventNewUpstreamForceKeyUnit runningTime allHeaders count = liftIO $ do let allHeaders' = (fromIntegral . fromEnum) allHeaders result <- gst_video_event_new_upstream_force_key_unit runningTime allHeaders' count checkUnexpectedReturnNULL "gst_video_event_new_upstream_force_key_unit" result result' <- (wrapBoxed Gst.Event) result return result' -- function gst_video_event_new_still_frame -- Args : [Arg {argCName = "in_still", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "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) videoEventNewStillFrame :: (MonadIO m) => Bool -- inStill -> m Gst.Event -- result videoEventNewStillFrame inStill = liftIO $ do let inStill' = (fromIntegral . fromEnum) inStill result <- gst_video_event_new_still_frame inStill' checkUnexpectedReturnNULL "gst_video_event_new_still_frame" result result' <- (wrapBoxed Gst.Event) result return result' -- function gst_video_event_new_downstream_force_key_unit -- Args : [Arg {argCName = "timestamp", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stream_time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "running_time", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "all_headers", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "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 TUInt32 IO (Ptr Gst.Event) videoEventNewDownstreamForceKeyUnit :: (MonadIO m) => Word64 -- timestamp -> Word64 -- streamTime -> Word64 -- runningTime -> Bool -- allHeaders -> Word32 -- count -> m Gst.Event -- result 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 "gst_video_event_new_downstream_force_key_unit" result result' <- (wrapBoxed Gst.Event) result return result' -- function gst_video_event_is_force_key_unit -- Args : [Arg {argCName = "event", argType = TInterface "Gst" "Event", 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_event_is_force_key_unit" gst_video_event_is_force_key_unit :: Ptr Gst.Event -> -- event : TInterface "Gst" "Event" IO CInt videoEventIsForceKeyUnit :: (MonadIO m) => Gst.Event -- event -> m Bool -- result videoEventIsForceKeyUnit event = liftIO $ do let 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 : 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 videoCropMetaApiGetType :: (MonadIO m) => m GType -- result 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 "Gst" "Sample", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "GstVideo" "VideoConvertSampleCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gst_video_convert_sample_async" gst_video_convert_sample_async :: Ptr Gst.Sample -> -- sample : TInterface "Gst" "Sample" Ptr Gst.Caps -> -- to_caps : TInterface "Gst" "Caps" Word64 -> -- timeout : TBasicType TUInt64 FunPtr VideoConvertSampleCallbackC -> -- callback : TInterface "GstVideo" "VideoConvertSampleCallback" Ptr () -> -- user_data : TBasicType TVoid FunPtr GLib.DestroyNotifyC -> -- destroy_notify : TInterface "GLib" "DestroyNotify" IO () videoConvertSampleAsync :: (MonadIO m) => Gst.Sample -- sample -> Gst.Caps -- toCaps -> Word64 -- timeout -> VideoConvertSampleCallback -- callback -> m () -- result videoConvertSampleAsync sample toCaps timeout callback = liftIO $ do let sample' = unsafeManagedPtrGetPtr sample let toCaps' = unsafeManagedPtrGetPtr toCaps callback' <- mkVideoConvertSampleCallback (videoConvertSampleCallbackWrapper Nothing 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 "Gst" "Sample", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_caps", argType = TInterface "Gst" "Caps", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "Gst" "Sample" -- throws : True -- Skip return : False foreign import ccall "gst_video_convert_sample" gst_video_convert_sample :: Ptr Gst.Sample -> -- sample : TInterface "Gst" "Sample" Ptr Gst.Caps -> -- to_caps : TInterface "Gst" "Caps" Word64 -> -- timeout : TBasicType TUInt64 Ptr (Ptr GError) -> -- error IO (Ptr Gst.Sample) videoConvertSample :: (MonadIO m) => Gst.Sample -- sample -> Gst.Caps -- toCaps -> Word64 -- timeout -> m Gst.Sample -- result videoConvertSample sample toCaps timeout = liftIO $ do let sample' = unsafeManagedPtrGetPtr sample let toCaps' = unsafeManagedPtrGetPtr toCaps onException (do result <- propagateGError $ gst_video_convert_sample sample' toCaps' timeout checkUnexpectedReturnNULL "gst_video_convert_sample" result result' <- (wrapBoxed Gst.Sample) result touchManagedPtr sample touchManagedPtr toCaps return result' ) (do return () ) -- function gst_video_color_transfer_encode -- Args : [Arg {argCName = "func", argType = TInterface "GstVideo" "VideoTransferFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TDouble -- throws : False -- Skip return : False foreign import ccall "gst_video_color_transfer_encode" gst_video_color_transfer_encode :: CUInt -> -- func : TInterface "GstVideo" "VideoTransferFunction" CDouble -> -- val : TBasicType TDouble IO CDouble videoColorTransferEncode :: (MonadIO m) => VideoTransferFunction -- func -> Double -- val -> m Double -- result 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 "GstVideo" "VideoTransferFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TDouble -- throws : False -- Skip return : False foreign import ccall "gst_video_color_transfer_decode" gst_video_color_transfer_decode :: CUInt -> -- func : TInterface "GstVideo" "VideoTransferFunction" CDouble -> -- val : TBasicType TDouble IO CDouble videoColorTransferDecode :: (MonadIO m) => VideoTransferFunction -- func -> Double -- val -> m Double -- result 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 "GstVideo" "VideoChromaSite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TBasicType TUTF8 -- throws : False -- Skip return : False foreign import ccall "gst_video_chroma_to_string" gst_video_chroma_to_string :: CUInt -> -- site : TInterface "GstVideo" "VideoChromaSite" IO CString videoChromaToString :: (MonadIO m) => [VideoChromaSite] -- site -> m T.Text -- result videoChromaToString site = liftIO $ do let site' = gflagsToWord site result <- gst_video_chroma_to_string site' checkUnexpectedReturnNULL "gst_video_chroma_to_string" result result' <- cstringToText result return result' -- function gst_video_chroma_resample -- Args : [Arg {argCName = "resample", argType = TInterface "GstVideo" "VideoChromaResample", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lines", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, 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_chroma_resample" gst_video_chroma_resample :: Ptr VideoChromaResample -> -- resample : TInterface "GstVideo" "VideoChromaResample" Ptr () -> -- lines : TBasicType TVoid Int32 -> -- width : TBasicType TInt32 IO () videoChromaResample :: (MonadIO m) => VideoChromaResample -- resample -> Ptr () -- lines -> Int32 -- width -> m () -- result videoChromaResample resample lines width = liftIO $ do let 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, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 videoChromaFromString :: (MonadIO m) => T.Text -- s -> m [VideoChromaSite] -- result 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_calculate_display_ratio -- Args : [Arg {argCName = "dar_n", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "dar_d", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "video_width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_height", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_par_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "video_par_d", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display_par_n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display_par_d", argType = TBasicType TUInt32, 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_calculate_display_ratio" gst_video_calculate_display_ratio :: Ptr Word32 -> -- dar_n : TBasicType TUInt32 Ptr Word32 -> -- dar_d : TBasicType TUInt32 Word32 -> -- video_width : TBasicType TUInt32 Word32 -> -- video_height : TBasicType TUInt32 Word32 -> -- video_par_n : TBasicType TUInt32 Word32 -> -- video_par_d : TBasicType TUInt32 Word32 -> -- display_par_n : TBasicType TUInt32 Word32 -> -- display_par_d : TBasicType TUInt32 IO CInt videoCalculateDisplayRatio :: (MonadIO m) => Word32 -- videoWidth -> Word32 -- videoHeight -> Word32 -- videoParN -> Word32 -- videoParD -> Word32 -- displayParN -> Word32 -- displayParD -> m (Bool,Word32,Word32) -- result 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 "GstVideo" "VideoInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "GstVideo" "VideoInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "dest_buffer", argType = TInterface "Gst" "Buffer", 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_blend_scale_linear_RGBA" gst_video_blend_scale_linear_RGBA :: Ptr VideoInfo -> -- src : TInterface "GstVideo" "VideoInfo" Ptr Gst.Buffer -> -- src_buffer : TInterface "Gst" "Buffer" Int32 -> -- dest_height : TBasicType TInt32 Int32 -> -- dest_width : TBasicType TInt32 Ptr VideoInfo -> -- dest : TInterface "GstVideo" "VideoInfo" Ptr Gst.Buffer -> -- dest_buffer : TInterface "Gst" "Buffer" IO () videoBlendScaleLinearRGBA :: (MonadIO m) => VideoInfo -- src -> Gst.Buffer -- srcBuffer -> Int32 -- destHeight -> Int32 -- destWidth -> m (VideoInfo,Gst.Buffer) -- result videoBlendScaleLinearRGBA src srcBuffer destHeight destWidth = liftIO $ do let src' = unsafeManagedPtrGetPtr src let srcBuffer' = unsafeManagedPtrGetPtr srcBuffer dest <- callocBoxedBytes 120 :: IO (Ptr VideoInfo) destBuffer <- callocBoxedBytes 112 :: IO (Ptr Gst.Buffer) gst_video_blend_scale_linear_RGBA src' srcBuffer' destHeight destWidth dest destBuffer dest' <- (wrapBoxed VideoInfo) dest destBuffer' <- (wrapBoxed Gst.Buffer) destBuffer touchManagedPtr src touchManagedPtr srcBuffer return (dest', destBuffer') -- function gst_video_blend -- Args : [Arg {argCName = "dest", argType = TInterface "GstVideo" "VideoFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TInterface "GstVideo" "VideoFrame", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "global_alpha", argType = TBasicType TFloat, 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_blend" gst_video_blend :: Ptr VideoFrame -> -- dest : TInterface "GstVideo" "VideoFrame" Ptr VideoFrame -> -- src : TInterface "GstVideo" "VideoFrame" Int32 -> -- x : TBasicType TInt32 Int32 -> -- y : TBasicType TInt32 CFloat -> -- global_alpha : TBasicType TFloat IO CInt videoBlend :: (MonadIO m) => VideoFrame -- dest -> VideoFrame -- src -> Int32 -- x -> Int32 -- y -> Float -- globalAlpha -> m Bool -- result videoBlend dest src x y globalAlpha = liftIO $ do let dest' = unsafeManagedPtrGetPtr dest let 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_is_video_overlay_prepare_window_handle_message -- Args : [Arg {argCName = "msg", argType = TInterface "Gst" "Message", 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_is_video_overlay_prepare_window_handle_message" gst_is_video_overlay_prepare_window_handle_message :: Ptr Gst.Message -> -- msg : TInterface "Gst" "Message" IO CInt isVideoOverlayPrepareWindowHandleMessage :: (MonadIO m) => Gst.Message -- msg -> m Bool -- result isVideoOverlayPrepareWindowHandleMessage msg = liftIO $ do let 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 "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "align", argType = TInterface "GstVideo" "VideoAlignment", 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_buffer_pool_config_set_video_alignment" gst_buffer_pool_config_set_video_alignment :: Ptr Gst.Structure -> -- config : TInterface "Gst" "Structure" Ptr VideoAlignment -> -- align : TInterface "GstVideo" "VideoAlignment" IO () bufferPoolConfigSetVideoAlignment :: (MonadIO m) => Gst.Structure -- config -> VideoAlignment -- align -> m () -- result bufferPoolConfigSetVideoAlignment config align = liftIO $ do let config' = unsafeManagedPtrGetPtr config let 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 "Gst" "Structure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "align", argType = TInterface "GstVideo" "VideoAlignment", 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_buffer_pool_config_get_video_alignment" gst_buffer_pool_config_get_video_alignment :: Ptr Gst.Structure -> -- config : TInterface "Gst" "Structure" Ptr VideoAlignment -> -- align : TInterface "GstVideo" "VideoAlignment" IO CInt bufferPoolConfigGetVideoAlignment :: (MonadIO m) => Gst.Structure -- config -> VideoAlignment -- align -> m Bool -- result bufferPoolConfigGetVideoAlignment config align = liftIO $ do let config' = unsafeManagedPtrGetPtr config let 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 "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 : TInterface "Gst" "Buffer" Int32 -> -- id : TBasicType TInt32 IO (Ptr VideoRegionOfInterestMeta) bufferGetVideoRegionOfInterestMetaId :: (MonadIO m) => Gst.Buffer -- buffer -> Int32 -- id -> m VideoRegionOfInterestMeta -- result bufferGetVideoRegionOfInterestMetaId buffer id = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer result <- gst_buffer_get_video_region_of_interest_meta_id buffer' id checkUnexpectedReturnNULL "gst_buffer_get_video_region_of_interest_meta_id" result result' <- (newPtr 48 VideoRegionOfInterestMeta) result touchManagedPtr buffer return result' -- function gst_buffer_get_video_meta_id -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 : TInterface "Gst" "Buffer" Int32 -> -- id : TBasicType TInt32 IO (Ptr VideoMeta) bufferGetVideoMetaId :: (MonadIO m) => Gst.Buffer -- buffer -> Int32 -- id -> m VideoMeta -- result bufferGetVideoMetaId buffer id = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer result <- gst_buffer_get_video_meta_id buffer' id checkUnexpectedReturnNULL "gst_buffer_get_video_meta_id" result result' <- (newPtr 112 VideoMeta) result touchManagedPtr buffer return result' -- function gst_buffer_get_video_meta -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoMeta" -- throws : False -- Skip return : False foreign import ccall "gst_buffer_get_video_meta" gst_buffer_get_video_meta :: Ptr Gst.Buffer -> -- buffer : TInterface "Gst" "Buffer" IO (Ptr VideoMeta) bufferGetVideoMeta :: (MonadIO m) => Gst.Buffer -- buffer -> m VideoMeta -- result bufferGetVideoMeta buffer = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer result <- gst_buffer_get_video_meta buffer' checkUnexpectedReturnNULL "gst_buffer_get_video_meta" result result' <- (newPtr 112 VideoMeta) result touchManagedPtr buffer return result' -- function gst_buffer_add_video_region_of_interest_meta_id -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "roi_type", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "w", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "h", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 : TInterface "Gst" "Buffer" Word32 -> -- roi_type : TBasicType TUInt32 Word32 -> -- x : TBasicType TUInt32 Word32 -> -- y : TBasicType TUInt32 Word32 -> -- w : TBasicType TUInt32 Word32 -> -- h : TBasicType TUInt32 IO (Ptr VideoRegionOfInterestMeta) bufferAddVideoRegionOfInterestMetaId :: (MonadIO m) => Gst.Buffer -- buffer -> Word32 -- roiType -> Word32 -- x -> Word32 -- y -> Word32 -- w -> Word32 -- h -> m VideoRegionOfInterestMeta -- result bufferAddVideoRegionOfInterestMetaId buffer roiType x y w h = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer result <- gst_buffer_add_video_region_of_interest_meta_id buffer' roiType x y w h checkUnexpectedReturnNULL "gst_buffer_add_video_region_of_interest_meta_id" result result' <- (newPtr 48 VideoRegionOfInterestMeta) result touchManagedPtr buffer return result' -- function gst_buffer_add_video_region_of_interest_meta -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "roi_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "w", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "h", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 : TInterface "Gst" "Buffer" CString -> -- roi_type : TBasicType TUTF8 Word32 -> -- x : TBasicType TUInt32 Word32 -> -- y : TBasicType TUInt32 Word32 -> -- w : TBasicType TUInt32 Word32 -> -- h : TBasicType TUInt32 IO (Ptr VideoRegionOfInterestMeta) bufferAddVideoRegionOfInterestMeta :: (MonadIO m) => Gst.Buffer -- buffer -> T.Text -- roiType -> Word32 -- x -> Word32 -- y -> Word32 -- w -> Word32 -- h -> m VideoRegionOfInterestMeta -- result bufferAddVideoRegionOfInterestMeta buffer roiType x y w h = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer roiType' <- textToCString roiType result <- gst_buffer_add_video_region_of_interest_meta buffer' roiType' x y w h checkUnexpectedReturnNULL "gst_buffer_add_video_region_of_interest_meta" result result' <- (newPtr 48 VideoRegionOfInterestMeta) result touchManagedPtr buffer freeMem roiType' return result' -- function gst_buffer_add_video_overlay_composition_meta -- Args : [Arg {argCName = "buf", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "comp", argType = TInterface "GstVideo" "VideoOverlayComposition", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 -> -- buf : TInterface "Gst" "Buffer" Ptr VideoOverlayComposition -> -- comp : TInterface "GstVideo" "VideoOverlayComposition" IO (Ptr VideoOverlayCompositionMeta) bufferAddVideoOverlayCompositionMeta :: (MonadIO m) => Gst.Buffer -- buf -> Maybe (VideoOverlayComposition) -- comp -> m VideoOverlayCompositionMeta -- result bufferAddVideoOverlayCompositionMeta buf comp = liftIO $ do let buf' = unsafeManagedPtrGetPtr buf maybeComp <- case comp of Nothing -> return nullPtr Just jComp -> do let jComp' = unsafeManagedPtrGetPtr jComp return jComp' result <- gst_buffer_add_video_overlay_composition_meta buf' maybeComp checkUnexpectedReturnNULL "gst_buffer_add_video_overlay_composition_meta" result result' <- (newPtr 24 VideoOverlayCompositionMeta) result touchManagedPtr buf whenJust comp touchManagedPtr return result' -- function gst_buffer_add_video_meta_full -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GstVideo" "VideoFrameFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstVideo" "VideoFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_planes", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stride", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "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 : TInterface "Gst" "Buffer" CUInt -> -- flags : TInterface "GstVideo" "VideoFrameFlags" CUInt -> -- format : TInterface "GstVideo" "VideoFormat" Word32 -> -- width : TBasicType TUInt32 Word32 -> -- height : TBasicType TUInt32 Word32 -> -- n_planes : TBasicType TUInt32 Word64 -> -- offset : TBasicType TUInt64 Int32 -> -- stride : TBasicType TInt32 IO (Ptr VideoMeta) bufferAddVideoMetaFull :: (MonadIO m) => Gst.Buffer -- buffer -> [VideoFrameFlags] -- flags -> VideoFormat -- format -> Word32 -- width -> Word32 -- height -> Word32 -- nPlanes -> Word64 -- offset -> Int32 -- stride -> m VideoMeta -- result bufferAddVideoMetaFull buffer flags format width height nPlanes offset stride = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer let flags' = gflagsToWord flags let format' = (fromIntegral . fromEnum) format result <- gst_buffer_add_video_meta_full buffer' flags' format' width height nPlanes offset stride checkUnexpectedReturnNULL "gst_buffer_add_video_meta_full" result result' <- (newPtr 112 VideoMeta) result touchManagedPtr buffer return result' -- function gst_buffer_add_video_meta -- Args : [Arg {argCName = "buffer", argType = TInterface "Gst" "Buffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GstVideo" "VideoFrameFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TInterface "GstVideo" "VideoFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : TInterface "GstVideo" "VideoMeta" -- throws : False -- Skip return : False foreign import ccall "gst_buffer_add_video_meta" gst_buffer_add_video_meta :: Ptr Gst.Buffer -> -- buffer : TInterface "Gst" "Buffer" CUInt -> -- flags : TInterface "GstVideo" "VideoFrameFlags" CUInt -> -- format : TInterface "GstVideo" "VideoFormat" Word32 -> -- width : TBasicType TUInt32 Word32 -> -- height : TBasicType TUInt32 IO (Ptr VideoMeta) bufferAddVideoMeta :: (MonadIO m) => Gst.Buffer -- buffer -> [VideoFrameFlags] -- flags -> VideoFormat -- format -> Word32 -- width -> Word32 -- height -> m VideoMeta -- result bufferAddVideoMeta buffer flags format width height = liftIO $ do let buffer' = unsafeManagedPtrGetPtr buffer let flags' = gflagsToWord flags let format' = (fromIntegral . fromEnum) format result <- gst_buffer_add_video_meta buffer' flags' format' width height checkUnexpectedReturnNULL "gst_buffer_add_video_meta" result result' <- (newPtr 112 VideoMeta) result touchManagedPtr buffer return result'