deinterlace

deinterlace deinterlaces interlaced video frames to progressive video frames. For this different algorithms can be selected which will be described later.

Example launch line

 gst-launch-1.0 -v filesrc location=/path/to/file ! decodebin ! videoconvert ! deinterlace ! videoconvert ! autovideosink

This pipeline deinterlaces a video file with the default deinterlacing options.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──deinterlace

Factory details

Authors: – Martin Eikermann , Sebastian Dröge

Classification:Filter/Effect/Video/Deinterlace

Rank – none

Plugin – deinterlace

Package – GStreamer Good Plug-ins

Pad Templates

sink

video/x-raw:
         format: { AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21, Y444_16LE, Y444_12LE, Y444_10LE, I422_12LE, I422_10LE, I420_12LE, I420_10LE }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(ANY):
         format: { DMA_DRM, A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsink

Object typeGstPad


src

video/x-raw:
         format: { AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21, Y444_16LE, Y444_12LE, Y444_10LE, I422_12LE, I422_10LE, I420_12LE, I420_10LE }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(ANY):
         format: { DMA_DRM, A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE16, GRAY10_LE32, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsrc

Object typeGstPad


Properties

drop-orphans

“drop-orphans” gboolean

This selects whether to drop orphan fields at the beginning of telecine patterns in active locking mode.

Flags : Read / Write

Default value : true


fields

“fields” GstDeinterlaceFields *

This selects which fields should be output. If "all" is selected the output framerate will be double.

Flags : Read / Write

Default value : all (0)


ignore-obscure

“ignore-obscure” gboolean

This selects whether to ignore obscure/rare telecine patterns. NTSC 2:3 pulldown variants are the only really common patterns.

Flags : Read / Write

Default value : true


locking

“locking” GstDeinterlaceLocking *

This selects which approach to pattern locking is used which affects processing latency and accuracy of timestamp adjustment for telecine streams.

Flags : Read / Write

Default value : none (0)


method

“method” GstDeinterlaceMethods *

Selects the different deinterlacing algorithms that can be used. These provide different quality and CPU usage.

Some methods provide parameters which can be set by getting the "method" child via the GstChildProxy interface and setting the appropriate properties on it.

  • tomsmocomp Motion Adaptive: Motion Search
  • greedyh Motion Adaptive: Advanced Detection
  • greedyl Motion Adaptive: Simple Detection
  • vfir Blur vertical
  • linear Linear interpolation
  • linearblend Linear interpolation in time domain. Any motion causes significant ghosting, so this method should not be used.
  • scalerbob Double lines
  • weave Weave. Bad quality, do not use.
  • weavetff Progressive: Top Field First. Bad quality, do not use.
  • weavebff Progressive: Bottom Field First. Bad quality, do not use.
  • yadif YADIF Adaptive.

Flags : Read / Write

Default value : linear (4)


mode

“mode” GstDeinterlaceModes *

This selects whether the deinterlacing methods should always be applied or if they should only be applied on content that has the "interlaced" flag on the caps.

Flags : Read / Write

Default value : auto (0)


tff

“tff” GstDeinterlaceFieldLayout *

Deinterlace top field first

Flags : Read / Write

Default value : auto (0)


Named constants

GstDeinterlaceFieldLayout

Members

auto (0) – Auto detection
tff (1) – Top field first
bff (2) – Bottom field first

GstDeinterlaceFields

Members

all (0) – All fields
top (1) – Top fields only
bottom (2) – Bottom fields only
auto (3) – Automatically detect

GstDeinterlaceLocking

Members

none (0) – No pattern locking
auto (1) – Choose passive/active locking depending on whether upstream is live
active (2) – Block until pattern-locked. Use accurate timestamp interpolation within a pattern repeat.
passive (3) – Do not block. Use naïve timestamp adjustment until pattern-locked based on state history.

GstDeinterlaceMethods

Members

tomsmocomp (0) – Motion Adaptive: Motion Search
greedyh (1) – Motion Adaptive: Advanced Detection
greedyl (2) – Motion Adaptive: Simple Detection
vfir (3) – Blur Vertical
linear (4) – Linear
linearblend (5) – Blur: Temporal (Do Not Use)
scalerbob (6) – Double lines
weave (7) – Weave (Do Not Use)
weavetff (8) – Progressive: Top Field First (Do Not Use)
weavebff (9) – Progressive: Bottom Field First (Do Not Use)
yadif (10) – YADIF Adaptive Deinterlacer

GstDeinterlaceModes

Members

auto (0) – Auto detection (best effort)
interlaced (1) – Force deinterlacing
disabled (2) – Run in passthrough mode
auto-strict (3) – Auto detection (strict)

The results of the search are