Skip to main content

Overlay

The Video Overlay subsystem renders on-screen objects over video playback (e.g. timestamps, KLV metadata, FOV cones). Overlay can be enabled and configured in the player UI.

Enabling overlays

  • Use the overlay button in the player controls to toggle overlays on/off.

⚙️ Modes

The overlay supports two working modes:

  • Presentation mode is the viewing mode. Enabled layers keep updating from the incoming packet, but overlay objects are not selectable or transformable.
  • Editor mode is the layout-authoring mode. Editable objects such as the compass and data text items can be selected, moved, rotated, and resized. Layer visibility, layer opacity, HUD display mode, and ruler enable state can also be changed and then saved as part of the layout.
  • The ruler and marker are special cases: when they are enabled and have valid geometry, they stay visible and remain draggable in both modes.

🗐 Layers

The overlay is organized into independent layers so the operator can show, hide, or fade each one without affecting the others:

  • HUD shows the compass and any regular HUD text items. When HUD display mode is set to compass, only the compass remains visible and HUD text items are hidden.
  • Data shows user-defined label/value readouts. These may be static values or live values linked to incoming KLV tags.
  • VMTI shows runtime moving-target graphics driven by incoming metadata. This layer is packet-driven and is not used for manual text authoring.
  • Grid shows a projected ground-plane grid and north arrow when georeferencing is available.
  • Marker shows a shared interactive point that can be moved from the overlay or from the detached map window.

Metadata required for presentation:

  • HUD compass: heading is the primary live input. terrainOrientation can also be supplied, and georeferenced KLV can further improve projected orientation.
  • Data layer, static item: no incoming metadata is required after the item is created.
  • Data layer, KLV-backed item: the selected KLV tag, or selected nested tag path, must be present in the incoming packet.
  • VMTI layer: KLV tag 74 must be present, with 74.8 frame width, 74.9 frame height, and at least one renderable target in 74.101.
  • Grid layer: MISB ST 0601 frame georeferencing is required. Use either full-frame corners 82-89, or frame center 23 and 24 plus offset corners 26-33.
  • Marker layer: MISB ST 0601 frame georeferencing is required if you expect a geographic marker position to be projected into the current frame.

✏️ Editor

The Editor is used to create and maintain the saved overlay layout.

Overlay editor

To add an item:

  • Switch to Editor mode.
  • Choose the item source: Static or KLV.
  • Enter the label and appearance settings.
  • For a Static item, also enter the fixed value to display.
  • For a KLV item, select the tag to read from the live packet, then add the item. New items are placed at the next default position in the layout.

To update an item:

  • Select the existing data item on the canvas or from the editor state.
  • Change its label, source, tag selection, colors, font, or timestamp format as needed.
  • Drag the selected item to move it. Use the transform handles to resize text and rotate it.

To remove an item:

  • Select the existing data item.
  • Use the delete action in the editor panel.
  • Removal applies only to authored data items. Runtime-generated layers such as VMTI are not deleted from the incoming metadata stream by the editor.

The Editor supports two kinds of data text items:

  • Static item: both the label and the value are saved in the layout and remain fully user-controlled.
  • KLV-backed item: the label is part of the saved layout, but the value is always read from the current packet. As the packet changes, the displayed value changes automatically.

KLV tags and nested standards are handled as follows:

  • A top-level MISB ST 0601 field is selected by its tag number, for example 13 or 23.
  • If that tag contains a nested local set or subordinate standard, select the nested field as a parent.child path such as 74.8 or 74.101.
  • If the nested selector is left at Whole local set, the item points to the parent tag itself rather than to one child field.
  • Nested standards are therefore treated as subordinate KLV paths, not as separate overlay objects. The parent tag identifies the local set, and the nested tag identifies the field inside that local set.
  • Timestamp-format controls appear only for timestamp tags. Those values can be displayed as local time or ISO 8601.

Metadata required for presentation:

  • Static item: no live metadata is required after the item is saved.
  • KLV-backed item: the selected top-level tag or nested parent.child tag path must exist in the incoming packet.
  • Timestamp item: the selected KLV field must contain a valid timestamp value if you expect formatted time output.
  • Saved layout state: item position, rotation, font size, colors, label, source, and selected tag or fixed value are part of the presentation layout.

The Editor also persists marker state. When the marker is enabled, its saved state includes whether the marker is shown, whether it is currently acting in master or slave mode, and the last tracked geographic position when one is available.

🎯 VMTI

VMTI is a runtime overlay. It is intended for live moving-target presentation, not manual authoring. When valid VMTI metadata is present, the overlay can draw target boxes, centroids, contours, masks, labels, and target colors directly over the image frame.

Overlay VMTI

If the VMTI layer is enabled but the required packet fields are missing, no target graphics are presented.

Metadata required for presentation:

  • Top-level KLV tag 74 for the VMTI local set.
  • 74.8 frame width and 74.9 frame height.
  • 74.101 target series.
  • For each target, at least one renderable geometry source such as a bounding box, centroid, contour, or mask.

⊞ Grid

The Grid is a read-only ground-reference aid. It is rendered above the ruler and projects a ground-plane grid with a north arrow into image space. It updates automatically as packet georeferencing changes.

Overlay grid

If the Grid layer is enabled without valid frame georeferencing, the layer remains empty.

Metadata required for presentation:

  • Full-frame corner georeferencing using tags 82-89, or
  • Frame center 23 and 24 plus offset-corner tags 26-33.

📏 Ruler

The Ruler is a measurement overlay. When enabled, it displays the saved line between its start and end points and continuously recalculates the ground distance from the current georeferencing. Its endpoints remain draggable whenever the ruler is enabled.

Overlay ruler

The ruler uses image-space endpoints but ground-referenced distance. This means the line stays anchored to the same image positions, while the measured distance can change when the packet georeferencing changes.

Metadata required for presentation:

  • Full-frame corner georeferencing using tags 82-89, or
  • Frame center 23 and 24 plus offset-corner tags 26-33.
  • A saved ruler start point and end point if you expect an immediate visible measurement.

📍 Marker

The Marker is a shared interactive overlay point. It can be controlled from the Player overlay or from the detached map window.

Overlay marker

When the marker is enabled:

  • dragging it in the overlay makes the overlay the current master
  • dragging it in the map window makes the map the current master
  • the last surface you move becomes the active source for the shared marker position

This means the marker is synchronized between the video overlay and the map instead of being managed separately in each view.

The marker uses geographic coordinates for synchronization. The map keeps the marker anchored to latitude and longitude, and the overlay reprojects that geographic position into the current frame whenever the current packet has usable georeferencing.

If you drag the marker directly in the overlay, the overlay updates the shared geographic position and the map marker follows it. If you drag the marker in the map window, the overlay follows that map position and reprojects it into the frame.

If the current packet cannot project the shared geographic position into the frame, the overlay may not be able to draw the marker even though the map still retains the marker position.

Metadata required for presentation:

  • Full-frame corner georeferencing using tags 82-89, or
  • Frame center 23 and 24 plus offset-corner tags 26-33, or
  • an externally supplied geographic marker position from the map if you want the overlay to follow map-driven marker updates once projection is possible.

For Player workflow details, see Player. For KLV inspection details, see KLV.