gi-gstvideo-1.0.28: GStreamerVideo bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.GstVideo.Structs.VideoOverlayComposition

Description

Functions to create and handle overlay compositions on video buffers.

An overlay composition describes one or more overlay rectangles to be blended on top of a video buffer.

This API serves two main purposes:

  • it can be used to attach overlay information (subtitles or logos) to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual blending of the overlay can then be done by e.g. the video sink that processes these non-raw buffers.
  • it can also be used to blend overlay rectangles on top of raw video buffers, thus consolidating blending functionality for raw video in one place.

Together, this allows existing overlay elements to easily handle raw and non-raw video as input in without major changes (once the overlays have been put into a VideoOverlayComposition object anyway) - for raw video the overlay can just use the blending function to blend the data on top of the video, and for surface buffers it can just attach them to the buffer and let the sink render the overlays.

Synopsis

Exported types

newtype VideoOverlayComposition Source #

Memory-managed wrapper type.

Methods

Click to display all available methods, including inherited ones

Expand

Methods

addRectangle, blend, copy, makeWritable, nRectangles.

Getters

getRectangle, getSeqnum.

Setters

None.

addRectangle

videoOverlayCompositionAddRectangle Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition

-> VideoOverlayRectangle

rectangle: a VideoOverlayRectangle to add to the composition

-> m () 

Adds an overlay rectangle to an existing overlay composition object. This must be done right after creating the overlay composition.

blend

videoOverlayCompositionBlend Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition

-> VideoFrame

videoBuf: a VideoFrame containing raw video data in a supported format. It should be mapped using GST_MAP_READWRITE

-> m Bool 

Blends the overlay rectangles in comp on top of the raw video data contained in videoBuf. The data in videoBuf must be writable and mapped appropriately.

Since videoBuf data is read and will be modified, it ought be mapped with flag GST_MAP_READWRITE.

copy

videoOverlayCompositionCopy Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition to copy

-> m VideoOverlayComposition

Returns: a new VideoOverlayComposition equivalent to comp.

Makes a copy of comp and all contained rectangles, so that it is possible to modify the composition and contained rectangles (e.g. add additional rectangles or change the render co-ordinates or render dimension). The actual overlay pixel data buffers contained in the rectangles are not copied.

getRectangle

videoOverlayCompositionGetRectangle Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition

-> Word32

n: number of the rectangle to get

-> m (Maybe VideoOverlayRectangle)

Returns: the n-th rectangle, or NULL if n is out of bounds. Will not return a new reference, the caller will need to obtain her own reference using gst_video_overlay_rectangle_ref() if needed.

Returns the n-th VideoOverlayRectangle contained in comp.

getSeqnum

videoOverlayCompositionGetSeqnum Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition

-> m Word32

Returns: the sequence number of comp

Returns the sequence number of this composition. Sequence numbers are monotonically increasing and unique for overlay compositions and rectangles (meaning there will never be a rectangle with the same sequence number as a composition).

makeWritable

videoOverlayCompositionMakeWritable Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition to copy

-> m VideoOverlayComposition

Returns: a writable VideoOverlayComposition equivalent to comp.

Takes ownership of comp and returns a version of comp that is writable (i.e. can be modified). Will either return comp right away, or create a new writable copy of comp and unref comp itself. All the contained rectangles will also be copied, but the actual overlay pixel data buffers contained in the rectangles are not copied.

nRectangles

videoOverlayCompositionNRectangles Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> VideoOverlayComposition

comp: a VideoOverlayComposition

-> m Word32

Returns: the number of rectangles

Returns the number of VideoOverlayRectangles contained in comp.

new

videoOverlayCompositionNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Maybe VideoOverlayRectangle

rectangle: a VideoOverlayRectangle to add to the composition

-> m VideoOverlayComposition

Returns: a new VideoOverlayComposition. Unref with gst_video_overlay_composition_unref() when no longer needed.

Creates a new video overlay composition object to hold one or more overlay rectangles.

Note that since 1.20 this allows to pass Nothing for rectangle.