We are probably only going to use the time of the last packet transmitted as our basic test of whether a video and/or data channel is connected. It won't stop us thinking a bad stream is a good stream, it just confirms there is a stream.
We can probably significantly reduce the CPU load by removing all the stats processing.
We should do this and then benchmark. Is it a significant saving?