## videotestsrc videotestsrc — Creates a test video stream |

## Synopsis

    struct              GstVideoTestSrc;
    enum                GstVideoTestSrcPattern;
    enum                GstVideoTestSrcColorSpec;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstPushSrc
                               +----GstVideoTestSrc

## Properties

      "pattern"                  GstVideoTestSrcPattern  : Read / Write
      "timestamp-offset"         gint64                : Read / Write
      "is-live"                  gboolean              : Read / Write
      "peer-alloc"               gboolean              : Read / Write
      "colorspec"                GstVideoTestSrcColorSpec  : Read / Write
      "k0"                       gint                  : Read / Write
      "kt"                       gint                  : Read / Write
      "kt2"                      gint                  : Read / Write
      "kx"                       gint                  : Read / Write
      "kx2"                      gint                  : Read / Write
      "kxt"                      gint                  : Read / Write
      "kxy"                      gint                  : Read / Write
      "ky"                       gint                  : Read / Write
      "ky2"                      gint                  : Read / Write
      "kyt"                      gint                  : Read / Write
      "xoffset"                  gint                  : Read / Write
      "yoffset"                  gint                  : Read / Write
      "background-color"         guint                 : Read / Write
      "foreground-color"         guint                 : Read / Write
      "horizontal-speed"         gint                  : Read / Write

## Description

The videotestsrc element is used to produce test video data in a wide variaty of formats. The video test data produced can be controlled with the "pattern" property.

### Example launch line

    1
    gst-launch -v videotestsrc pattern=snow ! ximagesink

Shows random noise in an X window.

## Synopsis

### Element Information

plugin | videotestsrc
author | David A. Schleef <ds@schleef.org>
class | Source/Video

### Element Pads

name | src
direction | source
presence | always
details | video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)UYVY, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)YVYU, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)v308, color-matrix=(string){ sdtv, hdtv }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)AYUV, color-matrix=(string){ sdtv, hdtv }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)v210, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)v216, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)UYVP, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)AY64, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)YVU9, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)YUV9, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)YV12, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)I420, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)NV12, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)NV21, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)Y41B, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)Y42B, color-matrix=(string){ sdtv, hdtv }, chroma-site=(string){ mpeg2, jpeg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)Y444, color-matrix=(string){ sdtv, hdtv }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-yuv, format=(fourcc)Y800, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)24, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)32, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)32, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)32, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)32, endianness=(int)4321, depth=(int)32, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)24, endianness=(int)4321, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)24, endianness=(int)4321, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)16, endianness=(int)1234, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)16, endianness=(int)1234, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-rgb, bpp=(int)64, endianness=(int)4321, depth=(int)64, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-bayer, format=(string)bggr, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-bayer, format=(string)rggb, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-bayer, format=(string)grbg, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
| video/x-raw-bayer, format=(string)gbrg, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

## Details

### struct GstVideoTestSrc

    struct GstVideoTestSrc;

Opaque data structure.

### enum GstVideoTestSrcPattern

    typedef enum {
      GST_VIDEO_TEST_SRC_SMPTE,
      GST_VIDEO_TEST_SRC_SNOW,
      GST_VIDEO_TEST_SRC_BLACK,
      GST_VIDEO_TEST_SRC_WHITE,
      GST_VIDEO_TEST_SRC_RED,
      GST_VIDEO_TEST_SRC_GREEN,
      GST_VIDEO_TEST_SRC_BLUE,
      GST_VIDEO_TEST_SRC_CHECKERS1,
      GST_VIDEO_TEST_SRC_CHECKERS2,
      GST_VIDEO_TEST_SRC_CHECKERS4,
      GST_VIDEO_TEST_SRC_CHECKERS8,
      GST_VIDEO_TEST_SRC_CIRCULAR,
      GST_VIDEO_TEST_SRC_BLINK,
      GST_VIDEO_TEST_SRC_SMPTE75,
      GST_VIDEO_TEST_SRC_ZONE_PLATE,
      GST_VIDEO_TEST_SRC_GAMUT,
      GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE,
      GST_VIDEO_TEST_SRC_SOLID,
      GST_VIDEO_TEST_SRC_BALL,
      GST_VIDEO_TEST_SRC_SMPTE100,
      GST_VIDEO_TEST_SRC_BAR
    } GstVideoTestSrcPattern;

The test pattern to produce.

The Gamut pattern creates a checkerboard pattern of colors at the edge of the YCbCr gamut and nearby colors that are out of gamut. The pattern is divided into 4 regions: black, white, red, and blue. After conversion to RGB, the out-of-gamut colors should be converted to the same value as their in-gamut neighbors. If the checkerboard pattern is still visible after conversion, this indicates a faulty conversion. Image manipulation, such as adjusting contrast or brightness, can also cause the pattern to be visible.

The Zone Plate pattern is based on BBC R&D Report 1978/23, and can be used to test spatial frequency response of a system. This pattern generator is controlled by the xoffset and yoffset parameters and also by all the parameters starting with 'k'. The default parameters produce a grey pattern. Try 'videotestsrc pattern=zone-plate kx2=20 ky2=20 kt=1' to produce something interesting.

`GST_VIDEO_TEST_SRC_SMPTE` | A standard SMPTE test pattern
`GST_VIDEO_TEST_SRC_SNOW` | Random noise
`GST_VIDEO_TEST_SRC_BLACK` | A black image
`GST_VIDEO_TEST_SRC_WHITE` | A white image
`GST_VIDEO_TEST_SRC_RED` | A red image
`GST_VIDEO_TEST_SRC_GREEN` | A green image
`GST_VIDEO_TEST_SRC_BLUE` | A blue image
`GST_VIDEO_TEST_SRC_CHECKERS1` | Checkers pattern (1px)
`GST_VIDEO_TEST_SRC_CHECKERS2` | Checkers pattern (2px)
`GST_VIDEO_TEST_SRC_CHECKERS4` | Checkers pattern (4px)
`GST_VIDEO_TEST_SRC_CHECKERS8` | Checkers pattern (8px)
`GST_VIDEO_TEST_SRC_CIRCULAR` | Circular pattern
`GST_VIDEO_TEST_SRC_BLINK` | Alternate between black and white
`GST_VIDEO_TEST_SRC_SMPTE75` | SMPTE test pattern (75% color bars)
`GST_VIDEO_TEST_SRC_ZONE_PLATE` | Zone plate
`GST_VIDEO_TEST_SRC_GAMUT` | Gamut checking pattern
`GST_VIDEO_TEST_SRC_CHROMA_ZONE_PLATE` | Chroma zone plate
`GST_VIDEO_TEST_SRC_SOLID` |
`GST_VIDEO_TEST_SRC_BALL` | Moving ball
`GST_VIDEO_TEST_SRC_SMPTE100` | SMPTE test pattern (100% color bars)
`GST_VIDEO_TEST_SRC_BAR` | Bar with foreground color

### enum GstVideoTestSrcColorSpec

    typedef enum {
      GST_VIDEO_TEST_SRC_BT601,
      GST_VIDEO_TEST_SRC_BT709
    } GstVideoTestSrcColorSpec;

The color specification to use.

`GST_VIDEO_TEST_SRC_BT601` | ITU-R Rec. BT.601/BT.470 (SD)
`GST_VIDEO_TEST_SRC_BT709` | ITU-R Rec. BT.709 (HD)

## Property Details

### The `"pattern"` property

      "pattern"                  GstVideoTestSrcPattern  : Read / Write

Type of test pattern to generate.

Default value: SMPTE 100% color bars

### The `"timestamp-offset"` property

      "timestamp-offset"         gint64                : Read / Write

An offset added to timestamps set on buffers (in ns).

Default value: 0

### The `"is-live"` property

      "is-live"                  gboolean              : Read / Write

Whether to act as a live source.

Default value: FALSE

### The `"peer-alloc"` property

      "peer-alloc"               gboolean              : Read / Write

Ask the peer to allocate an output buffer.

Default value: TRUE

### The `"colorspec"` property

      "colorspec"                GstVideoTestSrcColorSpec  : Read / Write

Generate video in the given color specification (Deprecated: use a caps filter with video/x-raw-yuv,color-matrix="sdtv" or "hdtv" instead).

Default value: ITU-R Rec. BT.601

### The `"k0"` property

      "k0"                       gint                  : Read / Write

Zoneplate zero order phase, for generating plain fields or phase offsets.

Default value: 0

### The `"kt"` property

      "kt"                       gint                  : Read / Write

Zoneplate 1st order t phase, for generating phase rotation as a function of time.

Default value: 0

### The `"kt2"` property

      "kt2"                      gint                  : Read / Write

Zoneplate 2nd order t phase, t*t/256 cycles per picture.

Default value: 0

### The `"kx"` property

      "kx"                       gint                  : Read / Write

Zoneplate 1st order x phase, for generating constant horizontal frequencies.

Default value: 0

### The `"kx2"` property

      "kx2"                      gint                  : Read / Write

Zoneplate 2nd order x phase, normalised to kx2/256 cycles per horizontal pixel at width/2 from origin.

Default value: 0

### The `"kxt"` property

      "kxt"                      gint                  : Read / Write

Zoneplate x*t product phase, normalised to kxy/256 cycles per vertical pixel at width/2 from origin.

Default value: 0

### The `"kxy"` property

      "kxy"                      gint                  : Read / Write

Zoneplate x*y product phase.

Default value: 0

### The `"ky"` property

      "ky"                       gint                  : Read / Write

Zoneplate 1st order y phase, for generating contant vertical frequencies.

Default value: 0

### The `"ky2"` property

      "ky2"                      gint                  : Read / Write

Zoneplate 2nd order y phase, normailsed to ky2/256 cycles per vertical pixel at height/2 from origin.

Default value: 0

### The `"kyt"` property

      "kyt"                      gint                  : Read / Write

Zoneplate y*t product phase.

Default value: 0

### The `"xoffset"` property

      "xoffset"                  gint                  : Read / Write

Zoneplate 2nd order products x offset.

Default value: 0

### The `"yoffset"` property

      "yoffset"                  gint                  : Read / Write

Zoneplate 2nd order products y offset.

Default value: 0

### The `"background-color"` property

      "background-color"         guint                 : Read / Write

Color to use for background color of some patterns. Default is black (0xff000000).

Default value: 4278190080

Since 0.10.31

### The `"foreground-color"` property

      "foreground-color"         guint                 : Read / Write

Color to use for solid-color pattern and foreground color of other patterns. Default is white (0xffffffff).

Default value: 4294967295

Since 0.10.31

### The `"horizontal-speed"` property

      "horizontal-speed"         gint                  : Read / Write

Scroll image number of pixels per frame (positive is scroll to the left).

Default value: 0