## fakesrc fakesrc — Push empty (no data) buffers around |

## Synopsis

    struct              GstFakeSrc;
    enum                GstFakeSrcDataType;
    enum                GstFakeSrcFillType;
    enum                GstFakeSrcOutputType;
    enum                GstFakeSrcSizeType;

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GstObject
                   +----GstElement
                         +----GstBaseSrc
                               +----GstFakeSrc

## Properties

      "can-activate-pull"        gboolean              : Read / Write / Construct
      "can-activate-push"        gboolean              : Read / Write / Construct
      "data"                     GstFakeSrcDataType    : Read / Write
      "datarate"                 gint                  : Read / Write
      "dump"                     gboolean              : Read / Write
      "filltype"                 GstFakeSrcFillType    : Read / Write
      "format"                   GstFormat             : Read / Write
      "is-live"                  gboolean              : Read / Write / Construct
      "last-message"             gchar*                : Read
      "parentsize"               gint                  : Read / Write
      "pattern"                  gchar*                : Read / Write
      "signal-handoffs"          gboolean              : Read / Write
      "silent"                   gboolean              : Read / Write
      "sizemax"                  gint                  : Read / Write
      "sizemin"                  gint                  : Read / Write
      "sizetype"                 GstFakeSrcSizeType    : Read / Write
      "sync"                     gboolean              : Read / Write

## Signals

      "handoff"                                        : Run Last

## Description

The fakesrc element is a multipurpose element that can generate a wide range of buffers and can operate in various scheduling modes.

It is mostly used as a testing element, one trivial example for testing basic GStreamer core functionality is:

### Example launch line

    1
    gst-launch -v fakesrc num-buffers=5 ! fakesink

This pipeline will push 5 empty buffers to the fakesink element and then sends an EOS.

Last reviewed on 2008-06-20 (0.10.21)

## Synopsis

### Element Information

plugin | coreelements
author | Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim@fluendo.com>
class | Source

### Element Pads

name | src
direction | source
presence | always
details | ANY

## Details

### struct GstFakeSrc

    struct GstFakeSrc;

Opaque GstFakeSrc data structure.

### enum GstFakeSrcDataType

    typedef enum {
      FAKE_SRC_DATA_ALLOCATE = 1,
      FAKE_SRC_DATA_SUBBUFFER
    } GstFakeSrcDataType;

The different ways buffers are allocated.

`FAKE_SRC_DATA_ALLOCATE` | allocate buffers
`FAKE_SRC_DATA_SUBBUFFER` | subbuffer each buffer

### enum GstFakeSrcFillType

    typedef enum {
      FAKE_SRC_FILLTYPE_NOTHING = 1,
      FAKE_SRC_FILLTYPE_ZERO,
      FAKE_SRC_FILLTYPE_RANDOM,
      FAKE_SRC_FILLTYPE_PATTERN,
      FAKE_SRC_FILLTYPE_PATTERN_CONT
    } GstFakeSrcFillType;

The different ways of filling the buffers.

`FAKE_SRC_FILLTYPE_NOTHING` | do not fill buffers
`FAKE_SRC_FILLTYPE_ZERO` | fill buffers with 0
`FAKE_SRC_FILLTYPE_RANDOM` | fill buffers with random bytes
`FAKE_SRC_FILLTYPE_PATTERN` | fill buffers with a pattern
`FAKE_SRC_FILLTYPE_PATTERN_CONT` | fill buffers with a continuous pattern

### enum GstFakeSrcOutputType

    typedef enum {
      FAKE_SRC_FIRST_LAST_LOOP = 1,
      FAKE_SRC_LAST_FIRST_LOOP,
      FAKE_SRC_PING_PONG,
      FAKE_SRC_ORDERED_RANDOM,
      FAKE_SRC_RANDOM,
      FAKE_SRC_PATTERN_LOOP,
      FAKE_SRC_PING_PONG_PATTERN,
      FAKE_SRC_GET_ALWAYS_SUCEEDS
    } GstFakeSrcOutputType;

The different output types. Unused currently.

`FAKE_SRC_FIRST_LAST_LOOP` | first pad then last pad
`FAKE_SRC_LAST_FIRST_LOOP` | last pad then first pad
`FAKE_SRC_PING_PONG` | ping pong between pads
`FAKE_SRC_ORDERED_RANDOM` | ordered random pad
`FAKE_SRC_RANDOM` | random pad
`FAKE_SRC_PATTERN_LOOP` | loop between pads in a particular pattern
`FAKE_SRC_PING_PONG_PATTERN` | ping pong based on a pattern
`FAKE_SRC_GET_ALWAYS_SUCEEDS` | a get always succeeds on a pad

### enum GstFakeSrcSizeType

    typedef enum {
      FAKE_SRC_SIZETYPE_EMPTY = 1,
      FAKE_SRC_SIZETYPE_FIXED,
      FAKE_SRC_SIZETYPE_RANDOM
    } GstFakeSrcSizeType;

The different size of the allocated buffers.

`FAKE_SRC_SIZETYPE_EMPTY` | create empty buffers
`FAKE_SRC_SIZETYPE_FIXED` | fixed buffer size (sizemax sized)
`FAKE_SRC_SIZETYPE_RANDOM` | random buffer size (sizemin <= size <= sizemax)

## Property Details

### The `"can-activate-pull"` property

      "can-activate-pull"        gboolean              : Read / Write / Construct

Can activate in pull mode.

Default value: TRUE

### The `"can-activate-push"` property

      "can-activate-push"        gboolean              : Read / Write / Construct

Can activate in push mode.

Default value: TRUE

### The `"data"` property

      "data"                     GstFakeSrcDataType    : Read / Write

Data allocation method.

Default value: Allocate data

### The `"datarate"` property

      "datarate"                 gint                  : Read / Write

Timestamps buffers with number of bytes per second (0 = none).

Allowed values: >= 0

Default value: 0

### The `"dump"` property

      "dump"                     gboolean              : Read / Write

Dump buffer contents to stdout.

Default value: FALSE

### The `"filltype"` property

      "filltype"                 GstFakeSrcFillType    : Read / Write

How to fill the buffer, if at all.

Default value: Fill buffers with zeros

### The `"format"` property

      "format"                   GstFormat             : Read / Write

Set the format of the newsegment events to produce.

Default value: GST_FORMAT_BYTES

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

      "is-live"                  gboolean              : Read / Write / Construct

True if the element cannot produce data in PAUSED.

Default value: FALSE

### The `"last-message"` property

      "last-message"             gchar*                : Read

The last status message.

Default value: NULL

### The `"parentsize"` property

      "parentsize"               gint                  : Read / Write

Size of parent buffer for sub-buffered allocation.

Allowed values: >= 0

Default value: 40960

### The `"pattern"` property

      "pattern"                  gchar*                : Read / Write

pattern.

Default value: NULL

### The `"signal-handoffs"` property

      "signal-handoffs"          gboolean              : Read / Write

Send a signal before pushing the buffer.

Default value: FALSE

### The `"silent"` property

      "silent"                   gboolean              : Read / Write

Don't produce last_message events.

Default value: TRUE

### The `"sizemax"` property

      "sizemax"                  gint                  : Read / Write

Maximum buffer size.

Allowed values: >= 0

Default value: 4096

### The `"sizemin"` property

      "sizemin"                  gint                  : Read / Write

Minimum buffer size.

Allowed values: >= 0

Default value: 0

### The `"sizetype"` property

      "sizetype"                 GstFakeSrcSizeType    : Read / Write

How to determine buffer sizes.

Default value: Send empty buffers

### The `"sync"` property

      "sync"                     gboolean              : Read / Write

Sync to the clock to the datarate.

Default value: FALSE

## Signal Details

### The `"handoff"` signal

    void                user_function                      (GstFakeSrc *fakesrc,
                                                            GstBuffer  *buffer,
                                                            GstPad     *pad,
                                                            gpointer    user_data)      : Run Last

This signal gets emitted before sending the buffer.

`fakesrc` : | the fakesrc instance
`buffer` : | the buffer that will be pushed
`pad` : | the pad that will sent it
`user_data` : | user data set when the signal handler was connected.

## See Also

GstFakeSink