deinterlace

(from GStreamer Good Plug-ins git)

Deinterlace Methods ported from DScaler/TvTime

Hierarchy

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

Factory details

Authors: – Martin Eikermann , Sebastian Dröge

Classification:Filter/Effect/Video/Deinterlace

Rank – none

Plugin – libgstdeinterlace.so

Package – GStreamer Good Plug-ins git

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 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(ANY):
         format: { I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsink


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 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(ANY):
         format: { I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsrc


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” Deinterlace-fields

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” Deinterlace-locking

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” Deinterlace-methods

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 appropiate 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.

Flags : Read / Write

Default value : linear (4)


mode

“mode” Deinterlace-modes

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)


name

“name” gchararray

The name of the object

Flags : Read / Write / Construct

Default value : NULL


parent

“parent” GstObject *

The parent of the object

Flags : Read / Write


tff

“tff” Deinterlace-field-layout

Deinterlace top field first

Flags : Read / Write

Default value : auto (0)


Named constants

Deinterlace-field-layout

Members

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

Deinterlace-fields

Members

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

Deinterlace-locking

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.

Deinterlace-methods

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)

Deinterlace-modes

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