Viz Engine Administrator Guide

Version 4.2 | Published December 04, 2020 ©

Timed Command Execution

To achieve frame accurate output at a certain time, Viz Engine utilizes a time code reader board and special commands. Viz Engine records certain commands and executes them at the exact time that the time code reader board hits the timestamp.

This section contains the following information:

Note: Frame Accurate Timed Command Execution in combination with graphics, live and clip playback requires Viz Engine version 3.9.1 or later. Viz Engine can only guarantee a frame accurate output, not a field accurate output.

Time Code Related Commands

Time Code

Description

TC*TC_INFO GET

Gives you all available time codes in the system. The return is a list of indexes and strings. Every time code source is identified by a unique index.

TC*TC_ACTIVE GET

Gives all time codes which have been updated in the last two fields.

TC*TC GET <index>

Returns the time code for the index.

TC*USED_TC GET

Returns the current used timecode by index

TC*USED_TC SET

Sets the timecode source by index.

TC*TC_COMMAND SET_TC <index> <HH>:<MM>:<SS>:<FF> -1 COMMAND

Queues a Command for execution on a specific time.

<index>: Index of the timecode.
<HH>:<MM>:<SS>:<FF>: The timecode in Hours, Minutes, Seconds and Fields.
<#>: Command answer identifier (currently only a value of -1 is supported).
COMMAND: The Command to be executed.

Example

TC*TC_COMMAND SET_TC 1 12:07:10:00 -1 RENDERER SET_OBJECT SCENE*<9D1F7526-CFEF-C844-848279FE076E9104>

Activates scene <9D1F7526-CFEF-C844-848279FE076E9104> at exactly 12:07:10:00.

TC*TC CLEAR <index>

Clears all queued commands for the time code source with index <index>.

TC*DELETION_THRESHOLD SET <TC>

Defines a time frame after which a command is removed when it has not been executed. The threshold needs to be defined as hh:mm:ss:ff.
<TC> is a valid timecode.

Example

TC*DELETION_THRESHOLD SET 00:00:10:00

TC*ACTIVATION_THRESHOLD SET <TC>

Defines a time frame until when a command has to be executed (even if the given timecode has already passed). The threshold needs to be defined as hh:mm:ss:ff .
<TC> is a valid timecode.

Example

TC*ACTIVATION_THRESHOLD SET 00:00:00:10

TC*INSERT_THRESHOLD SET <TC>

Defines a time frame into the future during which command are allowed to be executed when inserted. The threshold needs to be defined as hh:mm:ss:ff .
<TC> is a valid timecode.

Example

TC*INSERT_THRESHOLD SET 01:00:00:00

Prerequisites

The following prerequisites are required:

  • The system must be equipped with a Plura TC Reader board. This needs to be enabled in the Viz Config File by setting TCReaderUsage = 1.

  • The correct TC source must be set by using TCReaderSource. Viz Engine supports LTC, VITC, ATC_LTC, ATC_VITC, HANC_LTC, HANC_VITC. To specify multiple sources the format would be: TCReaderSource = LTC | VITC.

  • Commands need to be sent with a timecode. For example: TC*TC_COMMAND SET_TC 1 12:00:00:00 -1 RENDERER*MAIN_LAYER SET_OBJECT SCENE*<9968FF26-35B0-4C01-AE5A4F8D11D1543B>.

  • Ringbuffer should be turned On. This makes sure that the command to load the given scene is executed exactly at the given timecode. (12:00:00:00). The fillsize of the ringbuffer is considered.

Note: To verify this, make sure the final output device (Recorder, Monitor) can display the same timecode as attached to the Viz Engine.

Configuration

To configure correct field accurate timeout, a few parameters need to be set. Three important values are responsible for the proper playout of Graphics, DVE Live sources and DVE Clips:

Framebuffer Delay

The FramebufferDelay setting is usually used to delay the playout of any graphics. It is used to keep DVE and Graphics in sync when it is set to 0. However, for fine tuning the delays between Graphics, DVE Live and DVE Videos, this value needs to be adjusted accordingly.

For x.mio3 boards, the Framebufferdelay can be set to 0. This makes sure all other delays are handled automatically. The settings below are required if you need to fine tune your settings,

Timed Command Bias

Command: TC*TC_BIAS SET n (in fields)
Config Setting: delayed_command_bias = n

This represents the overall delay in fields, the commands are sent if the time code hits the timestamp. This affects Graphics and any DVE source. For instance, if your graphics appear two frames too late, you need to use delayed_command_bias= -2 .

Note: The Command TC*TC_BIAS SET n immediately takes effect for all TC commands sent after this one, without restarting Viz Engine.

VideoIn[n]DelayDVE

If you need to show DVE Live effects in a frame accurate environment, you also need to configure the delay of the LiveInput DVE. This is done by setting the following in the config file:

Matrox0.VideoIn1.VideoDelayDVE = n

This is the number of fields the DVE signal is delayed until it is shown on the video output. This value cannot be negative; the minimum is 1 (0 also represents 1). If your graphics + DVE are still too late, you need to decrease the timed command bias and adjust the VideoInDelay accordingly.

ClipIn[n]DelayDVE

If clips also need to be played exactly at the given timecode an additional parameter comes into play:

ClipIn1.VideoDelayDVE = n

This controls how many fields a clip is being delayed until it appears on the Video Output.

Note: Clips always need to be cued since they sometimes need to be read from the hard drive. This is done by sending the following command to the engine a few seconds before the scene is taken to air:

SCENE*<uuid> LOAD
SCENE*<uuid> CUE

Clips must be placed in the stage to be preloaded correctly.

The correct sequence to bring a scene On Air exactly at 12:00:00:00 with clips prepared would then be:

SCENE*<uuid> LOAD
SCENE*<uuid> CUE
 
TC*TC_COMMAND SET_TC 1 12:00:00:00 -1 RENDERER*UPDATE SET 0
TC*TC_COMMAND SET_TC 1 12:00:00:00 -1 RENDERER*MAIN_LAYER SET_OBJECT SCENE*<uuid>
TC*TC_COMMAND SET_TC 1 12:00:00:00 -1 RENDERER*STAGE START
TC*TC_COMMAND SET_TC 1 12:00:00:00 -1 RENDERER*UPDATE SET 1

X.mio3 Boards

The following table shows the measured values (1) when testing 4.2.0.154.
These values can vary from different setups.

IO Mode

Video Format

TC Bias

V3

1080i60M

-4

V3

720p60M

0

V3

1080i50

-4

V3

720p50

1

V4

1080i60M

-6

V4

720p60M

0

V4

1080i50

-6

V4

720p50

0

(1) The ringbuffer was set to be 30 frames for testing purposes. The input was texture.