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
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 ]
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 ]
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