# d3d12videosink

A Direct3D12 Video Sink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSink
                        ╰──GstVideoSink
                            ╰──d3d12videosink

## Implemented interfaces

    GstVideoOverlay
    GstNavigation

## Factory details

Authors: – Seungha Yang <seungha></seungha>

Classification: – `Sink/Video`

Rank – none

Plugin – d3d12

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink`

    video/x-raw(memory:D3D12Memory):
             format: { RGBA64_LE, RGB10A2_LE, Y410, VUYA, RGBA, BGRA, RBGA, P016_LE, P012_LE, P010_10LE, RGBx, BGRx, NV12, AYUV64, GBRA_12LE, GBRA_10LE, AYUV, ABGR, ARGB, GBRA, Y444_16LE, GBR_16LE, Y444_12LE, GBR_12LE, I422_12LE, I420_12LE, Y444_10LE, GBR_10LE, I422_10LE, I420_10LE, Y444, BGRP, GBR, RGBP, xBGR, xRGB, Y42B, NV21, I420, YV12, GRAY16_LE, GRAY8 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

    video/x-raw(memory:D3D12Memory, meta:GstVideoOverlayComposition):
             format: { RGBA64_LE, RGB10A2_LE, Y410, VUYA, RGBA, BGRA, RBGA, P016_LE, P012_LE, P010_10LE, RGBx, BGRx, NV12, AYUV64, GBRA_12LE, GBRA_10LE, AYUV, ABGR, ARGB, GBRA, Y444_16LE, GBR_16LE, Y444_12LE, GBR_12LE, I422_12LE, I420_12LE, Y444_10LE, GBR_10LE, I422_10LE, I420_10LE, Y444, BGRP, GBR, RGBP, xBGR, xRGB, Y42B, NV21, I420, YV12, GRAY16_LE, GRAY8 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { RGBA64_LE, RGB10A2_LE, Y410, VUYA, RGBA, BGRA, RBGA, P016_LE, P012_LE, P010_10LE, RGBx, BGRx, NV12, AYUV64, GBRA_12LE, GBRA_10LE, AYUV, ABGR, ARGB, GBRA, Y444_16LE, GBR_16LE, Y444_12LE, GBR_12LE, I422_12LE, I420_12LE, Y444_10LE, GBR_10LE, I422_10LE, I420_10LE, Y444, BGRP, GBR, RGBP, xBGR, xRGB, Y42B, NV21, I420, YV12, GRAY16_LE, GRAY8 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

    video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):
             format: { RGBA64_LE, RGB10A2_LE, Y410, VUYA, RGBA, BGRA, RBGA, P016_LE, P012_LE, P010_10LE, RGBx, BGRx, NV12, AYUV64, GBRA_12LE, GBRA_10LE, AYUV, ABGR, ARGB, GBRA, Y444_16LE, GBR_16LE, Y444_12LE, GBR_12LE, I422_12LE, I420_12LE, Y444_10LE, GBR_10LE, I422_10LE, I420_10LE, Y444, BGRP, GBR, RGBP, xBGR, xRGB, Y42B, NV21, I420, YV12, GRAY16_LE, GRAY8 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – sink

Object type – GstPad

## Properties

### adapter

    “adapter” gint

Adapter index for creating device (-1 for default)

Flags : Read / Write

Default value : -1

### force-aspect-ratio

    “force-aspect-ratio” gboolean

When enabled, scaling will respect original aspect ratio

Flags : Read / Write

Default value : true

### fov

    “fov” gfloat

Field of view angle in degrees

Flags : Read / Write

Default value : 90

### fullscreen

    “fullscreen” gboolean

Fullscreen mode

Flags : Read / Write

Default value : false

### fullscreen-on-alt-enter

    “fullscreen-on-alt-enter” gboolean

Enable fullscreen toggle on alt+enter key input

Flags : Read / Write

Default value : false

### gamma-mode

    “gamma-mode” GstVideoGammaMode *

Gamma conversion mode

Flags : Read / Write

Default value : none (0)

### msaa

    “msaa” D3d12msaamode *

MSAA (Multi-Sampling Anti-Aliasing) level

Flags : Read / Write

Default value : disabled (0)

### ortho

    “ortho” gboolean

Use orthographic projection

Flags : Read / Write

Default value : false

### primaries-mode

    “primaries-mode” GstVideoPrimariesMode *

Primaries conversion mode

Flags : Read / Write

Default value : none (0)

### redraw-on-update

    “redraw-on-update” gboolean

Immediately apply updated geometry related properties and redraw. If disabled, properties will be applied on the next frame or window resize

Flags : Read / Write

Default value : true

### rotate-method

    “rotate-method” GstVideoOrientationMethod *

Rotate method to use

Flags : Read / Write

Default value : identity (0)

### rotation-x

    “rotation-x” gfloat

x-axis rotation angle in degrees

Flags : Read / Write

Default value : 0

### rotation-y

    “rotation-y” gfloat

y-axis rotation angle in degrees

Flags : Read / Write

Default value : 0

### rotation-z

    “rotation-z” gfloat

z-axis rotation angle in degrees

Flags : Read / Write

Default value : 0

### sampling-method

    “sampling-method” GstD3D12SamplingMethod *

Sampler filter type to use

Flags : Read / Write

Default value : bilinear (1)

### scale-x

    “scale-x” gfloat

Scale multiplier for x-axis

Flags : Read / Write

Default value : 1

### scale-y

    “scale-y” gfloat

Scale multiplier for y-axis

Flags : Read / Write

Default value : 1

## Named constants

### D3d12msaamode

#### Members

`disabled` (0) – Disabled
`2x` (1) – 2x MSAA
`4x` (2) – 4x MSAA
`8x` (3) – 8x MSAA

### GstD3D12SamplingMethod

#### Members

`nearest-neighbour` (0) – Nearest Neighbour
`bilinear` (1) – Bilinear
`linear-minification` (2) – Linear minification, point magnification
`anisotropic` (3) – Anisotropic

The results of the search are