# d3d11compositor

A convenient bin which wraps d3d11compositorelement for video composition with other helper elements to handle color conversion and memory transfer between Direct3D11 and system memory space.

## Example launch line

    gst-launch-1.0 d3d11compositor name=c ! d3d11videosink \
        videotestsrc ! video/x-raw,width=320,height=240 ! c. \
        videotestsrc pattern=ball ! video/x-raw,width=100,height=100 ! c.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──d3d11compositor

## Implemented interfaces

    GstChildProxy

## Factory details

Authors: – Seungha Yang

Classification: – `Filter/Editor/Video/Compositor`

Rank – secondary

Plugin – d3d11

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink_%u`

    video/x-raw(memory:D3D11Memory):
             format: { BGRA, RGBA, RGB10A2_LE, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, Y410 }
              width: [ 1, 16384 ]
             height: [ 1, 16384 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { BGRA, RGBA, RGB10A2_LE, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, Y410 }
              width: [ 1, 16384 ]
             height: [ 1, 16384 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – request

Direction – sink

Object type – GstD3D11CompositorBinInput

### `src`

    video/x-raw(memory:D3D11Memory):
             format: { BGRA, RGBA, RGB10A2_LE, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE }
              width: [ 1, 16384 ]
             height: [ 1, 16384 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { BGRA, RGBA, RGB10A2_LE, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE }
              width: [ 1, 16384 ]
             height: [ 1, 16384 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstD3D11CompositorBinPad

## Properties

### adapter

    “adapter” gint

Adapter index for creating device (-1 for default)

Flags : Read / Write

Default value : 0

### background

    “background” GstD3D11CompositorBackground *

Background type

Flags : Read / Write

Default value : checker (0)

### emit-signals

    “emit-signals” gboolean

Send signals

Flags : Read / Write

Default value : false

### latency

    “latency” guint64

Additional latency in live mode to allow upstream to take longer to produce buffers for the current position (in nanoseconds)

Flags : Read / Write

Default value : 0

### min-upstream-latency

    “min-upstream-latency” guint64

When sources with a higher latency are expected to be plugged in dynamically after the aggregator has started playing, this allows overriding the minimum latency reported by the initial source(s). This is only taken into account when larger than the actually reported minimum latency. (nanoseconds)

Flags : Read / Write

Default value : 0

### mixer

    “mixer” GstElement *

The d3d11 mixer chain to use

Flags : Read

### start-time

    “start-time” guint64

Start time to use if start-time-selection=set

Flags : Read / Write

Default value : 18446744073709551615

### start-time-selection

    “start-time-selection” GstAggregatorStartTimeSelection *

Decides which start time is output

Flags : Read / Write

Default value : zero (0)

The results of the search are