UTimecodeSynchronizer

Timecode Synchronizer is intended to correlate multiple timecode sources to help ensure that all sources can produce data that is frame aligned.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

TimecodeSynchronizer

Header

/Engine/Plugins/Media/TimecodeSynchronizer/Source/TimecodeSynchronizer/Public/TimecodeSynchronizer.h

Include

#include "TimecodeSynchronizer.h"

Syntax

[UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)()
class UTimecodeSynchronizer :
    public UTimecodeProvider,
    public FTickableGameObject

Remarks

Timecode Synchronizer is intended to correlate multiple timecode sources to help ensure that all sources can produce data that is frame aligned.

This typically works by having sources buffer data until we have enough frames that such that we can find an overlap. Once that process is finished, the Synchronizer will provide the appropriate timecode to the engine (which can be retrieved via FApp::GetTimecode and FApp::GetTimecodeFrameRate).

Note, the Synchronizer doesn't perform any buffering of data itself (that is left up to TimeSynchronizationSources). Instead, the synchronizer simply acts as a coordinator making sure all sources are ready, determining if sync is possible, etc.

Variables

Name Description

Public variable UProperty

bool

 

bUsePreRollingTimecodeMarginOfErrors

Enable verification of margin between synchronized time and source time

Public variable UProperty

bool

 

bUsePreRollingTimeout

Enable PreRoll timeout

Public variable UProperty Category, EditAnywhere, Meta

FFrameRate

 

FixedFrameRate

The fixed framerate to use.

Public variable UProperty Category, EditAnywhere, Meta

ETimecodeSynchr...

 

FrameRateSource

Frame Rate Source.

Public variable UProperty Category, EditAnywhere

int32

 

MasterSynchronizationSourceIndex

Index of the source that drives the synchronized Timecode.

Public variable UProperty Category, EditAnywhere, Meta

int32

 

PreRollingTimecodeMarginOfErrors

Maximum gap size between synchronized time and source time

Public variable UProperty Category, EditAnywhere, Meta

float

 

PreRollingTimeout

How long to wait for all source to be ready

Public variable UProperty Category, EditAnywhere, Meta instanced

UTimecodeProvid...

 

TimecodeProvider

Custom strategy to tick in a interval.

Public variable UProperty Category, EditAnywhere, Meta

ETimecodeSynchr...

 

TimecodeProviderType

Use a Timecode Provider.

Public variable UProperty Category, EditAnywhere instanced

TArray< UTimeSy...

 

TimeSynchronizationInputSources

ONLY MODIFY THESE IN EDITOR TODO: Deprecate this and make it private.

Constructors

Functions

Name Description

Public function

void

 

AddRuntimeTimeSynchronizationSource

(
    UTimeSynchronizationSource* So...
)

Adds a "runtime" source to the synchronizer.

Public function Const

int32

 

GetActiveMasterSynchronizationTimecodedSourceIndex()

Returns the index of the Master Synchronization Source in the Synchronized Sources list.

Public function Const

FFrameTime

 

GetCurrentSystemFrameTime()

Get Current System Frame Time which is synchronized

Public function Const

const TArray...

 

GetNonSynchronizedSources()

Returns the list of sources that are not actively being used in synchronization.

Public function Const

const TArray...

 

GetSynchronizedSources()

Returns the list of sources that are used to perform synchronization.

Public function

UTimecodeSyn...

 

OnSynchronizationEvent()

Public function

bool

 

StartSynchronization()

Starts the synchronization process.

Public function

void

 

StopSynchronization()

Stops the synchronization process.

Overridden from UTimecodeProvider

Name Description

Public function Virtual Const

FQualifiedFr...

 

GetQualifiedFrameTime()

Return current frame time.

Public function Virtual Const

ETimecodePro...

 

GetSynchronizationState()

The state of the TimecodeProvider and if it's currently synchronized and the Timecode and FrameRate getters are valid.

Public function Virtual

bool

 

Initialize

(
    UEngine* InEngine
)

This Provider became the Engine's Provider.

Public function Virtual

void

 

Shutdown

(
    UEngine* InEngine
)

This Provider stopped being the Engine's Provider.

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

Public function Virtual Const

bool

 

CanEditChange

(
    const FProperty* InProperty
)

Called by the editor to query whether a property of this object is allowed to be modified.

Public function Virtual

void

 

PostEditChangeChainProperty

(
    FPropertyChangedChainEvent& Proper...
)

This alternate version of PostEditChange is called when properties inside structs are modified.

Overridden from FTickableGameObject

Name Description

Public function Virtual Const

bool

 

IsTickableInEditor()

Used to determine whether the object should be ticked in the editor.

Public function Virtual Const

bool

 

IsTickableWhenPaused()

Used to determine if an object should be ticked when the game is paused.

Overridden from FTickableObjectBase

Name Description

Public function Virtual Const

TStatId

 

GetStatId()

Return the stat id to use for this tickable

Public function Virtual Const

ETickableTic...

 

GetTickableTickType()

Virtual that can be overloaded by the inheriting class.

Public function Virtual Const

bool

 

IsTickable()

Virtual that can be overloaded by the inheriting class.

Public function Virtual

void

 

Tick

(
    float DeltaTime
)

Pure virtual that must be overloaded by the inheriting class.

Classes

Name

Description

Public class

FOnTimecodeSynchronizationEvent

Get an event delegate that is invoked when a Asset synchronization event occurred.

Enums

Name

Description

Private enum

ESynchronizationState

Synchronization states

Deprecated Functions

Name Description

Public function Const

const TArray...

 

GetSynchronizationSources()

Please use GetNonSynchronizedSources.

Public function Const

const TArray...

 

GetTimecodedSources()

Please use GetSynchronizedSources.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss