< Previous | Contents | Next >

About the TCP Protocol Version 1.2

This protocol defines the communication standard between third-party applications (“Client”) and DaVinci Resolve (“Server”) using the TCP protocol.

Port number 9060 will be used by the server. SSL will not be used in this protocol. Communication takes the form of request-response messages, where the Client initiates a command, and the Server responds appropriately.

To use this protocol, you must first type the following string into the Advanced panel of the DaVinci Resolve System Preferences:

System.Remote.Control = 1


Data Types

The following data types are used in this protocol:

float (f): A 4-byte IEEE 754 single precision float

int (i): A 4-bytes signed int

unsigned char (uc): A 1-byte unsigned char (0–255)

image


NOTE: The bytes of the float and int types are transmitted in little endian order.


NOTE: The bytes of the float and int types are transmitted in little endian order.


NOTE: The bytes of the float and int types are transmitted in little endian order.

string (s): A UTF-8 encoded string. No terminator is specified. The string is a composite type, transmitted as a single int (i) specifying the number of characters in the string (N), followed by N unsigned chars (uc) containing the letters of the string.

Command Format

Commands are transmitted as a single string (using characters a–z (0x61 – 0x7A) only), followed by any additional payload required by the command in the definition.

Response Format

The response to any command is composed of a status byte (unsigned char), followed by any additional payload required by the response.

Communication Delays

Once the first byte of the command string is sent, the rest of the command string and the payload data must follow without delay. At the end of COMMAND, the server must respond immediately. If there is a delay of more than 5 seconds during this process, the party waiting for data may drop the connection assuming that the peer has become unresponsive.

image


NOTE: Alternatively, a maximum allowable delay may be defined, in which case, the client may issue periodic ‘connect’ commands to keep the connection alive.


NOTE: Alternatively, a maximum allowable delay may be defined, in which case, the client may issue periodic ‘connect’ commands to keep the connection alive.


NOTE: Alternatively, a maximum allowable delay may be defined, in which case, the client may issue periodic ‘connect’ commands to keep the connection alive.

There is currently no limit on the delay between two consecutive commands.

 

Data Types Command Format Response Format Communication Delays Status Response Values