Transmission with relative record timing means the records are scheduled one after another based on the delta time tag set.
The option MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME
is used to perform this function.
For instance, for an array of n records to transmit, the records' transmit timing is as follows:
Time record 1 = record 1 time tag (offset from current time)
Time record 2 = Time record 1 + (record 2 time tag - record 1 time tag)
Time record 3 = Time record 2 + (record 3 time tag - record 2 time tag)
......
Time record n = Time record n-1 + (record n time tag - record n-1 time tag)
Each time tag becomes relative to the previous record sent.
ar429_aperiodic.c
#define BUFFER_SIZE 4096 // 4KB
#define MAX_TX_RECORDS_TO_TRANSMIT 8
HMXF_SERVER server;
HMXF_CHANNEL txChannel;
HMXF_BUFFER txBuffer=0;
uint32 label, sdi, data, ssm, parity;
uint32 record;
uint64 currentTime;
uint64 delay100ms = 100000;
uint32 rc;
...
if (!rc)
if (!rc)
if (!rc)
{
if (!rec429)
rc = MAXT_ERROR_MEM;
}
rec = rec429;
for (record=0, currentTime=delay100ms; record < MAX_TX_RECORDS_TO_TRANSMIT && !rc; record++)
{
rec->
timeTag = currentTime+((record+1)*10000LL);
label = 010;
sdi = 1;
data = record*64;
ssm = 0;
parity = VMXF_A429_PARITY_ODD;
if(!rc)
}
if (!rc)
rc =
mxfA429TxAperiodicWrite(txBuffer, MXF_TXAPERIODIC_FLAG_USE_RECORD_RELATIVE_TIME, 0, MAX_TX_RECORDS_TO_TRANSMIT, rec429);
if (rec429)
free(rec429);
...