Measure the interval since the last audio rate control message in nanoseconds instead of seconds. Increasing the precision catches audio rate messages that are late by less than a second. Signed-off-by: Deborah Brouwer <deborahbrouwer3563@xxxxxxxxx> --- utils/cec-follower/cec-processing.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/utils/cec-follower/cec-processing.cpp b/utils/cec-follower/cec-processing.cpp index 93db4059..243c9d09 100644 --- a/utils/cec-follower/cec-processing.cpp +++ b/utils/cec-follower/cec-processing.cpp @@ -29,8 +29,8 @@ /* Time between each polling message sent to a device */ #define POLL_PERIOD 15000 -/* The maximum interval in seconds between audio rate messages as defined in the spec */ -#define MAX_AUD_RATE_MSG_INTERVAL 2 +/* The maximum interval in nanoseconds between audio rate messages as defined in the spec */ +#define MAX_AUD_RATE_MSG_INTERVAL 2000000000 struct cec_enum_values { const char *type_name; @@ -241,7 +241,8 @@ static void aud_rate_msg_interval_check(__u64 ts_new, __u64 ts_old) * turned off the audio rate control. */ if (ts_old) { - unsigned interval = (ts_new - ts_old) / 1000000000; + __u64 interval = ts_new - ts_old; + if (interval > MAX_AUD_RATE_MSG_INTERVAL) { warn("The interval between Audio Rate Control messages was greater\n"); warn("than the Maxiumum Audio Rate Message Interval (2s).\n"); -- 2.17.1