Recording | Playback Configuration language

# Recording

For recording the xposextool program connects to one or more XmetaX or XposeXrecord proxies, instructs each proxy what kind of data and which clients of which screens are to be recorded, receives the recorded data from the proxies, and stores it into one or more recorded files.

The statement

    start record [noGui] [onSignal] [ownColormap] [traceState]

begins the recording immediately without displaying the graphical user interface.

With noGui the dialog box does never appear, in the event of a termination condition (Termination) the program terminates. Otherwise the graphical user interface is displayed (Recording). The parameter onSignal configures control by signals (Control by signals). The parameter ownColormap lets xposextool use its own colormap for its user interface. The parameter traceState lets the program xposextool print state changes on the standard output stream (Printing state changes).

The statement

    recordSettings

introduces sub-statements, which specify recording parameters.

## Source

### Screens

The sub-statement

        fromDisplay|fromDisplays display_name...

specifies the client connections (X Window client connection) of the XmetaX or XposeXrecord proxies which displaythe clients to be recorded. If display_name contains a screen number, only the specified screen is recorded, otherwise all screens of the X Window proxy are recorded. The value of the environment variable $DISPLAY is taken by default.

The sub-statement introduces sub-sub-statements, which specify recording parameters for an individual display or screen.

### Connection

The sub-sub-statement

            connectTimeout timeout

determines the period of time (Points of time and periods of time), within which the xposextool program tries to connect to the XmetaX or XposeXrecord proxy. If the connection cannot be established within the timeout (20 seconds by default), the corresponding screens are not recorded.

The sub-sub-statement

            offlineTimeout timeout

determines the period of time (Points of time and periods of time), within which the XmetaX or XposeXrecord proxy has to honor X11 requests, before it is regarded as broken. The default value is 20 seconds.

The sub-sub-statement

            continueWhenOffline on|off

specifies whether the recording should continue when one of the XmetaX or XposeXrecord proxies terminates or not (default).

### Compression

The sub-sub-statement

            transmission {uncompressed|fastCompression|mediumCompression|strongCompression}

configures the kind of compression used for the communication between the XmetaX or XposeXrecord proxy and the xposextool program. The various arguments allow to find a trade-off between compression quality and resource usage (by default the transmission is not compressed).

### Multimedia

The sub-sub-statement

            multimedia

introduces sub-sub-sub-statements, which specify individual multimedia operations.

The sub-sub-sub-statement

                record "multimedia_specification"

defines the multimedia operation for capturing audio, video, or binary data streams during recording. The default value of "" denotes no capturing.

## Scope and properties of the recording

The sub-sub-statement

            type|types {all|none|{[+|-]output}|{[+|-]visible}|{[+|-]pointerImages}|{[+|-]bell}
                |{[+|-]input}|{[+|-]buttonHits}|{[+|-]pointerMovements}|{[+|-]keyHits}}...

denotes a list (Lists) of (group of) types of data to be recorded (by default, output and input are recorded):

output stands for all X11 requests with visible or audible effects:

visible comprises all drawing and window manipulating requests,

pointerImages stands for requests changing the image of the pointer,

bell denotes the audible bell signal.

input stands for all input events:

buttonHits denotes pointer clicks,

pointerMovements stands for the movements of the pointer device,

keyHits denotes keyboard input.

all stands for the complete X11 protocol traffic, including requests without any visible effects.

The sub-sub-statement

            client|clients {all|none
                |{[+|-]id resource_id}
                |{[+|-]name window_name}
                |{[+|-]button number}}...

specifies a list (Lists) of X Window clients which are recorded. Individual clients may be denoted in several ways:

With id the id of one of the clients resources is specified.

With name the name of one of its windows is specified.

button means that the client(s) are denoted by succeeding mouse clicks using the specified button.

By default, all current and future clients are recorded.

The sub-sub-statement

            pointerMotionResolution samples_per_second

specifies the sampling rate of pointer movements (15 times per second by default).

The sub-sub-statement

            timestampResolution number_per_second

specifies the resolution of recorded timestamps (100 timestamps per second by default, corresponding to a resolution of 10ms).

The sub-sub-statement

            showSnapshotPointerImage {on|off}

specifies whether a busy pointer image should be shown during writing a snapshot (Snapshots) (default) or not.

## Destination

### Recorded files

The sub-statement

        toFile|toFiles file_name|-

specifies the destination of the recorded data, - stands for the standard output stream, ~ for the home directory. The file_name may contain pattern elements (Pattern elements) like the default destination ~/%Y-%m-%d_%H:%M:%S.pose, which specifies an ISO like time stamp.

Each recorded file starts with a few human readable lines of meta data which can be extracted by one of the commands

    sed '/^$/q' file_name
    head -20 file_name

By default only one recorded file is created. However, various forms of the newFiles statement instruct the xposextool program to write multiple files, which may be replayed individually or in sequence.

The sub-statement

        newFiles {{exactlyAfter|earliestAfter|latestAfter} period_of_time}...

specifies that the recording should switch to a new file exactly when, earliest when, or latest when the specified period of time (Points of time and periods of time) expires. The earliestAfter and latestAfter specifiers, which can be combined to define a time interval, allow the xposextool program to postpone the file switch to a less busy time. The default value of "0 ms" for all parameters disables switching to a new file.

The sub-statement

        newFiles {onTheQuarterHour|onTheHour|onTheDay}

lets the xposextool program switch to a new file exactly at the specified absolute time, for example at 00:00, 00:15, 00:30, 00:45, 01:00, ... for onTheQuarterHour or every day at 00:00 for onTheDay.

The sub-statement

        newFiles {{exactlyAfter|earliestAfter|latestAfter} file_size}...

specifies that the recording should switch to a new file exactly when, earliest when, or latest when the size of the recorded file has reached the specified value (File sizes). The earliestAfter and latestAfter specifiers, which can be combined to define a size interval, allow the xposextool program to postpone the file switch to a less busy time. The default value of "0 bytes" for all parameters disables switching to a new file.

The sub-statement

        newFiles afterEvery number_of_snaphots snapshots

lets the xposextool program switch to a new file after writing the specified number of snapshots (Snapshots). However, the snapshot which causes switching to a new file is not written to the end of the old file but gets the starting snapshot of the new file. Because each individual recorded file starts with a snapshot the reasonable minimum number_of_snapshots is 2 while the default value of 0 disables switching to a new file.

The sub-statement

        overwriteProtection {on|off}

determines, whether an existing recorded file may be overwritten or not (default).

The sub-statement

        keepNumberOfFiles number_of_files

determines that at any time only the specified number of recorded files should be hold. The superfluous older files are removed automatically. The default value of 0 disables this feature.

### Snapshots

So that a single recorded file can be replayed without the preceding file, each file starts with a snapshot containing all relevant resources and data of the recorded X Window server(s). For fast positioning during playback (Hotkeys) additional snapshots may be inserted during recording.

The sub-statement

        insertSnapshots {{exactlyAfter|earliestAfter|latestAfter} period_of_time}...

specifies that a snapshot is to be written exactly when, earliest when, or latest when the specified period of time (Points of time and periods of time) expires. The earliestAfter and latestAfter specifiers, which can be combined to define a time interval, allow the xposextool program to postpone writing the snapshot to a less busy time. By default, snapshots are written earliestAfter "60 min".

The sub-statement

        insertSnapshots {{exactlyAfter|earliestAfter|latestAfter} file_size}...

specifies that a snapshot is to be written exactly when, earliest when, or latest when the size of the recorded file has reached the specified value (File sizes). The earliestAfter and latestAfter specifiers, which can be combined to define a size interval, allow the xposextool program to postpone writing the snapshot to a less busy time. The default value of "0 bytes" for all parameters disables writing additional snapshots due to file size.

### Compression

The sub-statement

        encoding {uncompressed|fastCompression|mediumCompression|strongCompression}

configures the kind of compression used for writing recorded files. The various arguments allow to find a trade-off between compression quality and resource usage (by default recorded files are not compressed).

### Meta data

The sub-statements

        title text_with_pattern_elements
        subTitle text_with_pattern_elements
        description text_with_pattern_elements
        keywords text_with_pattern_elements
        author text
        copyright text_with_pattern_elements

specify meta informations which may be displayed during playback in the onscreen display (Displaying) or in the statistic output (Messages). Most of the meta informations may contain pattern elements (Pattern elements).

## Termination

The sub-statement

        terminate [exactlyAfter] period_of_time

specifies that the whole recording should terminate exactly when the specified period of time (Points of time and periods of time) expires. The default value of "0 ms" means no termination by time.

The sub-statement

        terminate [exactlyAfter] file_size

specifies that the whole recording should terminate exactly when the total size of all recorded files has reached the specified value (File sizes). The default value of "0 bytes" means no termination due to file size.

top
Playback
Configuration language

Copyright © 2021 X-Software GmbH
info@x-software.com