As of now in the live configuration of SRT the timestamp field of a data packet reflects the time the payload was submitted to SRT for sending or the source time for the payload provided by the app.
In other configurations (essentially when TSBPD is disabled), the timestamp field of a data packet reflects the time the packet is being sent over a UDP socket. It also means each retransmitted packet has a different value of the timestamp field.
The latter conflicts with the AEAD mode. The timestamp field is included in the associated data. A packet is expected to be encrypted only once, while the timestamp field will change if a packet is retransmitted.
TSBPD off, AES-GCM on configuration is forbidden by #2573. Hence only live configuration is allowed to use AEAD.
However, there is not much sense in preserving the existing timestamping behavior.
In the non-live configuration, the timestamp field is not used by the receiver. Could be used to estimate transmission delays though.
However, having a unified logic regardless of the configuration makes a lot more sense. It simplifies the code, simplifies the protocol, and allows using AEAD in non-live configurations.
As of now in the live configuration of SRT the timestamp field of a data packet reflects the time the payload was submitted to SRT for sending or the source time for the payload provided by the app.
In other configurations (essentially when TSBPD is disabled), the timestamp field of a data packet reflects the time the packet is being sent over a UDP socket. It also means each retransmitted packet has a different value of the timestamp field.
The latter conflicts with the AEAD mode. The timestamp field is included in the associated data. A packet is expected to be encrypted only once, while the timestamp field will change if a packet is retransmitted.
TSBPD off, AES-GCM on configuration is forbidden by #2573. Hence only live configuration is allowed to use AEAD.
However, there is not much sense in preserving the existing timestamping behavior.
In the non-live configuration, the timestamp field is not used by the receiver. Could be used to estimate transmission delays though.
However, having a unified logic regardless of the configuration makes a lot more sense. It simplifies the code, simplifies the protocol, and allows using AEAD in non-live configurations.