ShowVideoExternal

Handle videos on external monitors

This Activity is used to display a camera with archive functionality on an external monitor. In case the camera does not support archive functionality, see Video.Out.Device Functionality. See also VideoCommunication for better conceptual overview.

Objects

Role Prop Type Description
Source SourceType int 0: Invalid
1: Object
Source string URL of the source/camera Objects (same as member URL)
Destination Destination string URL of the destination/pane Object (same as member URL)

Props

See ShowVideo props.

Streams

See ShowVideo streams.

Operations

See ShowVideo Operations.

Module XML example

<Objects>
    ...
    <!-- Video -->
    <Object id="Video" exclude="1">
        <!-- Video.CameraExtOnly -->
        <Object id="CameraExtOnly">
            <Property id="CameraName" type="string" address="1" />
            <Property id="Streams" type="object[]" kind="cam_stream" />
            <Activity id="myshowvideoexternal" role="Source" />
        </Object>

        <!-- Video.DigitalDisplay -->
        <Object id="DigitalDisplay">
            <Property id="Number" type="int" address="1" minval="1"/>

            <!-- Functionality.Video.Display-->
            <Operation id="Split">
                <Property id="Format" type="string"/>
            </Operation>
            <State id="SplitFormat" type="string" />

            <!-- Video.DigitalDisplay.Pane -->
            <Object id="Pane">
                <Property id="PaneNumber" type="int" address="1" minval="1"/>
                <Activity id="myshowvideoexternal" role="Destination" />
            </Object>
        </Object>
    </Object>
    ...
</Objects>

<Activities>
    <!-- Show video external -->
    <Activity id="myshowvideoexternal" type="ShowVideoExternal">
        <Property id="Time" type="time" optional="1" />
        <Property id="Speed" type="double" optional="1" />
        <Property id="Stream" type="string" optional="1" />
        <Property id="StartTime" type="time" optional="1" />
        <Property id="EndTime" type="time" optional="1" />
        <Property id="StreamList" type="string" optional="1" />

        <ObjectRole id="Source">
            <Property id="SourceType" type="int">
                <Option id="Invalid" value="0" />
                <Option id="Object" value="1" />
            </Property>
        </ObjectRole>

        <ObjectRole id="Destination" />

        <Operation id="Play">
            <Property id="Time" type="time" optional="1" />
            <Property id="Speed" type="double" optional="1" />
            <Property id="Stream" type="string" optional="1" />
        </Operation>
        <Operation id="GoLive" available="Time!=null AND StartTime==null AND EndTime==null">
            <Property id="Stream" type="string" optional="1" />
        </Operation>
        <Operation id="Step">
            <Property id="Direction" type="string">
                <Option value="Forward" />
                <Option value="Backward" />
            </Property>
            <Property id="Frames" type="int" optional="1" />
            <Property id="ms" type="int" optional="1" />
        </Operation>
    </Activity>
</Activities>

App XML example

<Objects>
    ...
    <!-- DigitalDisplay -->
    <Object id="DigitalDisplay">
        <App domain="Video" type="Monitor" >
            <Functionality id="Video.Display" />
            <Mapping>
            </Mapping>
        </App>

        <!-- TestPanel.Video.DigitalDisplay.Pane -->
        <Object id="Pane">
            <App domain="Video" type="Monitor" />
        </Object>
    </Object>
    ...
</Objects>

Workflow

When WinGuard wants to switch on a camera on an external monitor, it triggers the start of a ShowVideoExternal Activity via activity.Start IPC call. The initial Activity Properties supplied via activity.Start indicate whether the streaming session should start in live or archive mode.

The streaming session is controlled via ActivityOperations (e.g., Play, Step, GoLive, etc.). The adapter should update the Activity Properties continuously to reflect its current state.

This Activity is running until the camera is switched off. This is triggered via activity.End IPC call.

On startup, the adapter has to create Activities for all cameras which are currently displayed on an external monitor. This allows WinGuard to show all initially switched on cameras, when the display control is started the first time. Any changes to the streaming session in the third-party system (i.e., not requested by an Activity Operation) also have to be reflected in the Activity state. This includes deletion of the Activity when the camera is turned off.

Last modified September 25, 2026