# timecodestamper

This element attaches a timecode into every incoming video frame. It starts counting from the stream time of each segment start, which it converts into a timecode.

## Example launch line

     gst-launch-1.0 videotestsrc ! timecodestamper ! autovideosink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseTransform
                        ╰──timecodestamper

## Factory details

Authors: – Vivia Nikolaidou

Classification: – `Filter/Video`

Rank – none

Plugin – timecode

Package – GStreamer Bad Plug-ins

## Pad Templates

### `ltc_sink`

    audio/x-raw:
             format: U8
               rate: [ 1, 2147483647 ]
           channels: 1

Presence – request

Direction – sink

Object type – GstPad

### `sink`

    video/x-raw:
          framerate: [ 1/2147483647, 2147483647/1 ]

Presence – always

Direction – sink

Object type – GstPad

### `src`

    video/x-raw:
          framerate: [ 1/2147483647, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstPad

## Properties

### auto-resync

    “auto-resync” gboolean

If true resync last known timecode from upstream, otherwise only count up from the last known one

Flags : Read / Write

Default value : true

### drop-frame

    “drop-frame” gboolean

Use drop-frame timecodes for 29.97 and 59.94 FPS

Flags : Read / Write

Default value : false

### ltc-auto-resync

    “ltc-auto-resync” gboolean

If true the LTC timecode will be automatically resynced if it drifts, otherwise it will only be counted up from the last known one

Flags : Read / Write

Default value : true

### ltc-daily-jam

    “ltc-daily-jam” GDateTime *

The daily jam of the LTC timecode

Flags : Read / Write

### ltc-extra-latency

    “ltc-extra-latency” guint64

Extra latency to introduce for waiting for LTC timecodes

Flags : Read / Write

Default value : 150000000

### ltc-timeout

    “ltc-timeout” guint64

Time out LTC timecode if no new timecode was detected after this time

Flags : Read / Write

Default value : 18446744073709551615

### post-messages

    “post-messages” gboolean

Post element message containing the current timecode

Flags : Read / Write

Default value : false

### rtc-auto-resync

    “rtc-auto-resync” gboolean

If true the RTC timecode will be automatically resynced if it drifts, otherwise it will only be counted up from the last known one

Flags : Read / Write

Default value : true

### rtc-max-drift

    “rtc-max-drift” guint64

Maximum number of nanoseconds the RTC clock is allowed to drift from the video before it is resynced

Flags : Read / Write

Default value : 250000000

### set

    “set” Time-code-stamper-set *

Choose whether timecodes should be overridden or not

Flags : Read / Write

Default value : keep (1)

### set-internal-timecode

    “set-internal-timecode” GstVideoTimeCode *

If set, take this timecode as the internal timecode for the first frame and increment from it. Only the values itself and daily jam are taken, flags and frame rate are always determined by timecodestamper itself. If unset, the internal timecode will start at 0 with the daily jam being the current real-time clock time

Flags : Read / Write

### source

    “source” Time-code-stamper-source *

Choose from what source the timecode should be taken

Flags : Read / Write

Default value : internal (0)

### timecode-offset

    “timecode-offset” gint

Add this offset in frames to internal, LTC or RTC timecode, useful if there is an offset between the timecode source and video

Flags : Read / Write

Default value : 0

### timeout

    “timeout” guint64

Time out upstream timecode if no new timecode was detected after this time

Flags : Read / Write

Default value : 18446744073709551615

## Named constants

### Time-code-stamper-set

#### Members

`never` (0) – Never set timecodes
`keep` (1) – Keep upstream timecodes and only set if no upstream timecode
`always` (2) – Always set timecode and remove upstream timecode

### Time-code-stamper-source

#### Members

`internal` (0) – Use internal timecode counter, starting at zero or value set by property
`zero` (1) – Always use zero
`last-known` (2) – Count up from the last known upstream timecode or internal if unknown
`last-known-or-zero` (3) – Count up from the last known upstream timecode or zero if unknown
`ltc` (4) – Linear timecode from an audio device
`rtc` (5) – Timecode from real time clock

The results of the search are