## deinterlace

deinterlace

## Properties

GstDeinterlaceFields | fields | Read / Write
GstDeinterlaceMethods | method | Read / Write
GstDeinterlaceModes | mode | Read / Write
GstDeinterlaceFieldLayout | tff | Read / Write
gboolean | drop-orphans | Read / Write
gboolean | ignore-obscure | Read / Write
GstDeinterlaceLocking | locking | Read / Write

## Types and Values

struct | GstDeinterlace
enum | GstDeinterlaceFields
enum | GstDeinterlaceLocking
enum | GstDeinterlaceMethods
enum | GstDeinterlaceFieldLayout

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstDeinterlace

## Implemented Interfaces

GstDeinterlace implements GstChildProxy.

## Description

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

### Example launch line

    1

    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.

## Synopsis

### Element Information

plugin | deinterlace
author | Martin Eikermann <meiker@upb.de>, Sebastian Dröge <sebastian.droege@collabora.co.uk>
class | Filter/Effect/Video/Deinterlace

### Element Pads

name | sink
direction | sink
presence | always
details | video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, 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 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

name | src
direction | source
presence | always
details | video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, 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 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

## Functions

## Types and Values

### struct GstDeinterlace

    struct GstDeinterlace;

### enum GstDeinterlaceFields

#### Members

GST_DEINTERLACE_ALL |  |
GST_DEINTERLACE_TF |  |
GST_DEINTERLACE_BF |  |
GST_DEINTERLACE_FIELDS_AUTO |  |

### enum GstDeinterlaceLocking

#### Members

GST_DEINTERLACE_LOCKING_NONE |  |
GST_DEINTERLACE_LOCKING_AUTO |  |
GST_DEINTERLACE_LOCKING_ACTIVE |  |
GST_DEINTERLACE_LOCKING_PASSIVE |  |

### enum GstDeinterlaceMethods

#### Members

GST_DEINTERLACE_TOMSMOCOMP |  |
GST_DEINTERLACE_GREEDY_H |  |
GST_DEINTERLACE_GREEDY_L |  |
GST_DEINTERLACE_VFIR |  |
GST_DEINTERLACE_LINEAR |  |
GST_DEINTERLACE_LINEAR_BLEND |  |
GST_DEINTERLACE_SCALER_BOB |  |
GST_DEINTERLACE_WEAVE |  |
GST_DEINTERLACE_WEAVE_TFF |  |
GST_DEINTERLACE_WEAVE_BFF |  |

### enum GstDeinterlaceFieldLayout

#### Members

GST_DEINTERLACE_LAYOUT_AUTO |  |
GST_DEINTERLACE_LAYOUT_TFF |  |
GST_DEINTERLACE_LAYOUT_BFF |  |

## Property Details

### The `“fields”` property

      “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 fields

### The `“method”` property

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

### The `“mode”` property

      “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 detection (best effort)

### The `“tff”` property

      “tff”                      GstDeinterlaceFieldLayout

Deinterlace top field first.

Flags: Read / Write

Default value: Auto detection

### The `“drop-orphans”` property

      “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

### The `“ignore-obscure”` property

      “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

### The `“locking”` property

      “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: No pattern locking