# GstVideoDither

GstVideoDither provides implementations of several dithering algorithms that can be applied to lines of video pixels to quantize and dither them.

## GstVideoDither

## GstVideo.VideoDither

### Methods

#### gst_video_dither_free

    gst_video_dither_free (GstVideoDither * dither)

Free dither

Parameters:

`dither` –

a GstVideoDither

#### GstVideo.VideoDither.prototype.free

    function GstVideo.VideoDither.prototype.free(): {
        // javascript wrapper for 'gst_video_dither_free'
    }

Free dither

Parameters:

`dither` (GstVideo.VideoDither) –

a GstVideo.VideoDither

#### GstVideo.VideoDither.free

    def GstVideo.VideoDither.free (self):
        #python wrapper for 'gst_video_dither_free'

Free dither

Parameters:

`dither` (GstVideo.VideoDither) –

a GstVideo.VideoDither

#### gst_video_dither_line

    gst_video_dither_line (GstVideoDither * dither,
                           gpointer line,
                           guint x,
                           guint y,
                           guint width)

Dither width pixels starting from offset x in line using dither.

y is the line number of line in the output image.

Parameters:

`dither` –

a GstVideoDither

`line` –

pointer to the pixels of the line

`x` –

x coordinate

`y` –

y coordinate

`width` –

the width

#### GstVideo.VideoDither.prototype.line

    function GstVideo.VideoDither.prototype.line(line: Object, x: Number, y: Number, width: Number): {
        // javascript wrapper for 'gst_video_dither_line'
    }

Dither width pixels starting from offset x in line using dither.

y is the line number of line in the output image.

Parameters:

`dither` (GstVideo.VideoDither) –

a GstVideo.VideoDither

`line` (Object) –

pointer to the pixels of the line

`x` (Number) –

x coordinate

`y` (Number) –

y coordinate

`width` (Number) –

the width

#### GstVideo.VideoDither.line

    def GstVideo.VideoDither.line (self, line, x, y, width):
        #python wrapper for 'gst_video_dither_line'

Dither width pixels starting from offset x in line using dither.

y is the line number of line in the output image.

Parameters:

`dither` (GstVideo.VideoDither) –

a GstVideo.VideoDither

`line` (object) –

pointer to the pixels of the line

`x` (int) –

x coordinate

`y` (int) –

y coordinate

`width` (int) –

the width

### Functions

#### gst_video_dither_new

    GstVideoDither *
    gst_video_dither_new (GstVideoDitherMethod method,
                          GstVideoDitherFlags flags,
                          GstVideoFormat format,
                          guint * quantizer,
                          guint width)

Make a new dither object for dithering lines of format using the algorithm described by method.

Each component will be quantized to a multiple of quantizer. Better performance is achieved when quantizer is a power of 2.

width is the width of the lines that this ditherer will handle.

Parameters:

`method` –

a GstVideoDitherMethod

`flags` –

a GstVideoDitherFlags

`format` –

a GstVideoFormat

`quantizer` ( [array fixed-size=4]) –

quantizer

`width` –

the width of the lines

Returns –

a new GstVideoDither

## Enumerations

### GstVideoDitherFlags

Extra flags that influence the result from gst_video_chroma_resample_new.

##### Members

`GST_VIDEO_DITHER_FLAG_NONE` (0) –

no flags

`GST_VIDEO_DITHER_FLAG_INTERLACED` (1) –

the input is interlaced

`GST_VIDEO_DITHER_FLAG_QUANTIZE` (2) –

quantize values in addition to adding dither.

### GstVideo.VideoDitherFlags

Extra flags that influence the result from gst_video_chroma_resample_new (not introspectable).

##### Members

`GstVideo.VideoDitherFlags.NONE` (0) –

no flags

`GstVideo.VideoDitherFlags.INTERLACED` (1) –

the input is interlaced

`GstVideo.VideoDitherFlags.QUANTIZE` (2) –

quantize values in addition to adding dither.

### GstVideo.VideoDitherFlags

Extra flags that influence the result from gst_video_chroma_resample_new (not introspectable).

##### Members

`GstVideo.VideoDitherFlags.NONE` (0) –

no flags

`GstVideo.VideoDitherFlags.INTERLACED` (1) –

the input is interlaced

`GstVideo.VideoDitherFlags.QUANTIZE` (2) –

quantize values in addition to adding dither.

### GstVideoDitherMethod

Different dithering methods to use.

##### Members

`GST_VIDEO_DITHER_NONE` (0) –

no dithering

`GST_VIDEO_DITHER_VERTERR` (1) –

propagate rounding errors downwards

`GST_VIDEO_DITHER_FLOYD_STEINBERG` (2) –

Dither with floyd-steinberg error diffusion

`GST_VIDEO_DITHER_SIERRA_LITE` (3) –

Dither with Sierra Lite error diffusion

`GST_VIDEO_DITHER_BAYER` (4) –

ordered dither using a bayer pattern

### GstVideo.VideoDitherMethod

Different dithering methods to use.

##### Members

`GstVideo.VideoDitherMethod.NONE` (0) –

no dithering

`GstVideo.VideoDitherMethod.VERTERR` (1) –

propagate rounding errors downwards

`GstVideo.VideoDitherMethod.FLOYD_STEINBERG` (2) –

Dither with floyd-steinberg error diffusion

`GstVideo.VideoDitherMethod.SIERRA_LITE` (3) –

Dither with Sierra Lite error diffusion

`GstVideo.VideoDitherMethod.BAYER` (4) –

ordered dither using a bayer pattern

### GstVideo.VideoDitherMethod

Different dithering methods to use.

##### Members

`GstVideo.VideoDitherMethod.NONE` (0) –

no dithering

`GstVideo.VideoDitherMethod.VERTERR` (1) –

propagate rounding errors downwards

`GstVideo.VideoDitherMethod.FLOYD_STEINBERG` (2) –

Dither with floyd-steinberg error diffusion

`GstVideo.VideoDitherMethod.SIERRA_LITE` (3) –

Dither with Sierra Lite error diffusion

`GstVideo.VideoDitherMethod.BAYER` (4) –

ordered dither using a bayer pattern

The results of the search are