# fieldanalysis

Analyse fields from video buffers to identify whether the buffers are progressive/telecined/interlaced and, if telecined, the telecine pattern used.

## Example launch line

     gst-launch-1.0 -v uridecodebin uri=/path/to/foo.bar ! fieldanalysis ! deinterlace ! videoconvert ! autovideosink

This pipeline will analyse a video stream with default metrics and thresholds and output progressive frames.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──fieldanalysis

## Factory details

Authors: – Robert Swain

Classification: – `Filter/Analysis/Video`

Rank – none

Plugin – fieldanalysis

Package – GStreamer Bad Plug-ins

## Pad Templates

### `sink`

    video/x-raw:
             format: { YUY2, UYVY, Y42B, I420, YV12 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – sink

Object type – GstPad

### `src`

    video/x-raw:
             format: { YUY2, UYVY, Y42B, I420, YV12 }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstPad

## Properties

### block-height

    “block-height” guint64

Block height for windowed comb detection

Flags : Read / Write

Default value : 16

### block-threshold

    “block-threshold” guint64

Block threshold for windowed comb detection

Flags : Read / Write

Default value : 80

### block-width

    “block-width” guint64

Block width for windowed comb detection

Flags : Read / Write

Default value : 16

### comb-method

    “comb-method” FieldAnalysisCombMethod *

Metric to be used for identifying comb artifacts if using windowed comb detection

Flags : Read / Write

Default value : 5-tap (2)

### field-metric

    “field-metric” GstFieldAnalysisFieldMetric *

Metric to be used for comparing same parity fields to decide if they are a repeated field for telecine

Flags : Read / Write

Default value : ssd (1)

### field-threshold

    “field-threshold” gfloat

Threshold for field metric decisions

Flags : Read / Write

Default value : 0.08

### frame-metric

    “frame-metric” GstFieldAnalysisFrameMetric *

Metric to be used for comparing opposite parity fields to decide if they are a progressive frame

Flags : Read / Write

Default value : 5-tap (0)

### frame-threshold

    “frame-threshold” gfloat

Threshold for frame metric decisions

Flags : Read / Write

Default value : 0.002

### ignored-lines

    “ignored-lines” guint64

Ignore this many lines from the top and bottom for windowed comb detection

Flags : Read / Write

Default value : 2

### noise-floor

    “noise-floor” guint

Noise floor for appropriate metrics (per-pixel metric values with a score less than this will be ignored)

Flags : Read / Write

Default value : 16

### spatial-threshold

    “spatial-threshold” gint64

Threshold for combing metric decisions

Flags : Read / Write

Default value : 9

## Named constants

### FieldAnalysisCombMethod

#### Members

`32-detect` (0) – Difference to above sample in same field small and difference to sample in other field large
`isCombed` (1) – Differences between current sample and the above/below samples in other field multiplied together, larger than squared spatial threshold (from Tritical's isCombed)
`5-tap` (2) – 5-tap [1,-3,4,-3,1] vertical filter result is larger than spatial threshold*6

### GstFieldAnalysisFieldMetric

#### Members

`sad` (0) – Sum of Absolute Differences
`ssd` (1) – Sum of Squared Differences
`3-tap` (2) – Difference of 3-tap [1,4,1] Horizontal Filter

### GstFieldAnalysisFrameMetric

#### Members

`5-tap` (0) – 5-tap [1,-3,4,-3,1] Vertical Filter
`windowed-comb` (1) – Windowed Comb Detection (not optimised)

The results of the search are