unreal.TimecodeSynchronizer
¶
- class unreal.TimecodeSynchronizer(outer=None, name='None')¶
Bases:
unreal.TimecodeProvider
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.
C++ Source:
Plugin: TimecodeSynchronizer
Module: TimecodeSynchronizer
File: TimecodeSynchronizer.h
Editor Properties: (see get_editor_property/set_editor_property)
actual_frame_offset
(int32): [Read-Only] Actual Frame Offsetauto_frame_offset
(int32): [Read-Write] Similar to FrameOffset. For Auto mode, this represents the number of frames behind the newest synced frame. For AutoModeOldest, the is the of frames ahead of the last synced frame.fixed_frame_rate
(FrameRate): [Read-Write] The fixed framerate to use.frame_delay
(float): [Read-Write] Number of frames to subtract from the qualified frame time when GetDelayedQualifiedFrameTime or GetDelayedTimecode is called. see: GetDelayedQualifiedFrameTime, GetDelayedTimecodeframe_offset
(int32): [Read-Write] When UserDefined mode is used, the number of frames delayed from the Provider’s timecode. Negative values indicate the used timecode will be ahead of the Provider’s.frame_rate_source
(TimecodeSynchronizationFrameRateSources): [Read-Write] Frame Rate Source.master_synchronization_source_index
(int32): [Read-Write] Index of the source that drives the synchronized Timecode. The source need to be timecoded and flag as bUseForSynchronizationnon_synchronized_sources
(Array(TimecodeSynchronizerActiveTimecodedInputSource)): [Read-Only] Sources that wants to be synchronizedpre_rolling_timecode_margin_of_errors
(int32): [Read-Write] Maximum gap size between synchronized time and source timepre_rolling_timeout
(float): [Read-Write] How long to wait for all source to be readysync_mode
(TimecodeSynchronizationSyncMode): [Read-Write] What mode will be used for synchronization.synchronized_sources
(Array(TimecodeSynchronizerActiveTimecodedInputSource)): [Read-Only] Sources used for synchronizationtime_synchronization_input_sources
(Array(TimeSynchronizationSource)): [Read-Write] ! ONLY MODIFY THESE IN EDITOR ! TODO: Deprecate this and make it private.timecode_provider
(TimecodeProvider): [Read-Write] Custom strategy to tick in a interval.timecode_provider_type
(TimecodeSynchronizationTimecodeType): [Read-Write] Use a Timecode Provider.with_rollover
(bool): [Read-Write] Whether or not the specified Provider’s timecode rolls over. (Rollover is expected to occur at Timecode 24:00:00:00).