# tee

Split data to multiple pads. Branching the data flow is useful when e.g. capturing a video where the video is shown on the screen and also encoded and written to a file. Another example is playing music and hooking up a visualisation module.

One needs to use separate queue elements (or a multiqueue) in each branch to provide separate threads for each branch. Otherwise a blocked dataflow in one branch would stall the other branches.

## Example launch line

     gst-launch-1.0 filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! audioconvert ! audioresample ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink

Play song.ogg audio file which must be in the current working directory and render visualisations using the goom element (this can be easier done using the playbin element, this is just an example pipeline).

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──tee

## Factory details

Authors: – Erik Walthinsen , Wim Taymans

Classification: – `Generic`

Rank – none

Plugin – coreelements

Package – GStreamer

## Pad Templates

### `sink`

    ANY

Presence – always

Direction – sink

Object type – GstPad

### `src_%u`

    ANY

Presence – request

Direction – src

Object type – GstPad

## Properties

### alloc-pad

    “alloc-pad” GstPad *

The pad ALLOCATION queries will be proxied to (DEPRECATED, has no effect)

Flags : Read / Write

### allow-not-linked

    “allow-not-linked” gboolean

This property makes sink pad return GST_FLOW_OK even if there are no source pads or any of them is linked.

This is useful to avoid errors when you have a dynamic pipeline and during a reconnection you can have all the pads unlinked or removed.

Flags : Read / Write / Construct

Default value : false

### has-chain

    “has-chain” gboolean

If the element can operate in push mode

Flags : Read / Write / Construct

Default value : true

### last-message

    “last-message” gchararray

The message describing current status

Flags : Read

Default value : NULL

### num-src-pads

    “num-src-pads” gint

The number of source pads

Flags : Read

Default value : 0

### pull-mode

    “pull-mode” Tee-pull-mode *

Behavior of tee in pull mode

Flags : Read / Write / Construct

Default value : never (0)

### silent

    “silent” gboolean

Don't produce last_message events

Flags : Read / Write / Construct

Default value : true

## Named constants

### Tee-pull-mode

The different ways that tee can behave in pull mode. TEE_PULL_MODE_NEVER disables pull mode.

#### Members

`never` (0) – Never activate in pull mode
`single` (1) – Only one src pad can be active in pull mode

The results of the search are