## GstVideoDither

GstVideoDither — Utility object for dithering and quantizing lines of video

## Functions

void | gst_video_dither_free ()
void | gst_video_dither_line ()
GstVideoDither * | gst_video_dither_new ()

## Types and Values

| GstVideoDither
enum | GstVideoDitherFlags
enum | GstVideoDitherMethod

## Includes

    #include <gst/video/video.h>

## Description

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

## Functions

### gst_video_dither_free ()

    void
    gst_video_dither_free (GstVideoDither *dither);

Free `dither`

#### Parameters

dither | a GstVideoDither |

### gst_video_dither_line ()

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

### gst_video_dither_new ()

    GstVideoDither *
    gst_video_dither_new (GstVideoDitherMethod method,
                          GstVideoDitherFlags flags,
                          GstVideoFormat format,
                          guint quantizer[GST_VIDEO_MAX_COMPONENTS],
                          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 achived when `quantizer` is a power of 2.

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

[skip]

#### Parameters

method | a GstVideoDitherMethod |
flags | a GstVideoDitherFlags |
format | a GstVideoFormat |
quantizer | quantizer |
width | the width of the lines |

#### Returns

a new GstVideoDither

## Types and Values

### GstVideoDither

    typedef struct _GstVideoDither GstVideoDither;

### enum GstVideoDitherFlags

Extra flags that influence the result from `gst_video_chroma_resample_new()`.

#### Members

GST_VIDEO_DITHER_FLAG_NONE | no flags |
GST_VIDEO_DITHER_FLAG_INTERLACED | the input is interlaced |
GST_VIDEO_DITHER_FLAG_QUANTIZE | quantize values in addition to adding dither. |

### enum GstVideoDitherMethod

Different dithering methods to use.

#### Members

GST_VIDEO_DITHER_NONE | no dithering |
GST_VIDEO_DITHER_VERTERR | propagate rounding errors downwards |
GST_VIDEO_DITHER_FLOYD_STEINBERG | Dither with floyd-steinberg error diffusion |
GST_VIDEO_DITHER_SIERRA_LITE | Dither with Sierra Lite error diffusion |
GST_VIDEO_DITHER_BAYER | ordered dither using a bayer pattern |