mmcli command line

Updated: April 19, 2023

Start mmcli to execute test scripts and to accept interactive commands

Synopsis:

mmcli [-D name=value] [-H] [-h history_file] [-i DLL [options]]
        [-L] [-l log_file] [-v] [script_file...] 

Options:

-D name=value
Define a global variable. You can specify as many -D options as you like. Each option setting must contain a name-value pair, with the name and value separated by an equal sign (=).
Global variables are visible to all test scripts and in the interactive session.
-H
Write the command history to the default history file (cli.history). Commands are written to this file in the same order that they're executed, whether they're read from test scripts or the interactive session.

The history file is different from the log file, which you can set with the -l option.

-h history_file
Write the command history to the specified file. As with the -H option, commands are written in the order that they're executed.
-i DLL [options]
Load the dynamic library of a multimedia component. The API functions of that component become accessible to mmcli.
The library filename can be followed by a set of parameters for initializing the library. You must specify the parameters in a comma-separated list of name-value pairs, in which the name and value in each parameter are separated by an equal sign (=). For example, you can load the mm-renderer library and tell it to connect to the service named “car” and to create a context named “voice” by setting the following option:
-i mmrenderer_cli.so connect=car,context=voice

You can provide as many -i options as you like to support all of the APIs you plan to use. The available configuration options vary with the library.

-L
When logging, display time as hh:mm:ss.aaa, where aaa is milliseconds. By default, mmcli displays time as the number of seconds and milliseconds since it was started, in the format sss.aaa.
-l log_file
Write the commands issued to mmcli and their results to the specified file in addition to displaying this information in the interactive session.
The log file is different from the history file, which you can set with the -h option. The log file provides more information because it contains not only the command history but also the results of media operations.
-v
Enable verbose mode to log additional information. This option is disabled by default.
script_file
Execute a test script of media commands. To ensure mmcli can support the commands called by the script, you must either load the necessary library files on the command line (see the -i option for more information) or use the load command in the script before calling any API functions.
You can name as many test scripts as you like and mmcli will execute them in the order listed. This is important to remember if you have dependencies between scripts.

Description:

The mmcli utility loads the libraries of multimedia components so that you can call their API functions in test scripts or an interactive session. You can load libraries on startup by specifying one or more -i command-line options. For any of these options, you can define parameters to initialize the library.

You can log the command history (with the -H or -h option) and the results of commands (with -l). These options let you generate and review the complete chronological sequence of media operations with event timing and other information included. The command history and the results of commands are always displayed in the interactive session, even if you've disabled logging to files.

When started, mmcli:
  1. Examines its command-line settings to configure logging and to load the libraries of multimedia components (as requested)
  2. Executes the test scripts named on its command line, in the order listed
  3. Starts an interactive session and waits for media commands

Note that you don't have to name any test scripts; in that case, mmcli simply skips the second step. If you do name test scripts, you must load all library files necessary to support the API commands called by those scripts. While mmcli can ignore or recover from some command specification errors, it can't guess at which component implements a particular command and then load that component.

The interactive session stays active until you enter quit to explicitly exit.