Comment by awesome_dude

2 days ago

If the video is streaming, people don't really care if a few frames drop, hell, most won't notice.

It's only when several frames in a row are dropped that people start to notice, and even then they rarely care as long as the message within the video has enough data points for them to make an (educated) guess.

P/B frames (which is usually most of them) reference other frames to compress motion effectively. So losing a packet doesn't mean a dropped frame, it means corruption that lasts until the next I-frame/slice. This can be seconds. If you've ever seen corrupt video that seems to "smear" wrong colors, etc. across the screen for a bunch of frames, that's what we're talking about here.

  • Again - the viewer rarely cares when that happens

    Minor annoyance, maybe, rage quit the application? Not a chance.

    • If you’re never sending an I-frame then it’s permanently corrupt. Sending an I-frame is the equivalent of eventual consistency.

    • If the area affected literally doesn't change for minutes afterwards it will not get refreshed and fixed.

Okay but now you're explaining that correctness is not necessarily the only reasonable state. It's possible to sacrifice some degree of correctness for enormous gains in performance because having absolute correctness comes at a cost that might simply not be worth it.