You need to be little more specific.
Are these people watching on the same device, such as a Roku TV, computer or tablet? Or are they on separate devices?
Most likely, you mean the latter case. So for now, I will assume this.
Frankly, there are many different policies that might be used to govern this situation, but given that we are talking a consumer-facing product, the policy needs to be kept simple and consistent, even if the policy is not perfect. No single policy will be. But getting consumers to pick from multiple policies is probably demanding too much of them. At the very least, there needs to be a default policy and any different policy would be in some kind of “advanced settings” area of the Tablo configuration.
The policy I would suggest is that, in general, a person live streaming a show puts a “lock” on that stream, and it cannot be cancelled by anyone, including even a scheduled recording. That is, a live stream has precedence.
So if two Joe is watching channel X on device A, and Jane is watching channel X at the same time on device B, and if Joe decides to switch to channel Z and there are no free tuners, his request to do so will be stopped, but he will be will be told that he cannot switch because no tuner is available, with a list of the tuners in use and which ones are recording and which ones are live streamed.
The only real issue I see with this policy is privacy. That is, users sharing a tablo device may learn that someone else is watching a channel and, in some cases, this could be a privacy concern.
I think would be rare. Frankly, I think the incidents where a person screams as her murder mystery is cut short just when the murderer is about to revealed are much more important here.
In short, I think a Tablo is shared device with implied lack of privacy from its participants.
It is not like a Tablo is some kind of mini multi-tenanted software solution (for those of you who work in the cloud or on large-scale enterprise software systems). Nor can it be because tuners are shared.
But I also think I didn’t fully respond to your question because you explicitly asked who gets the message and who gets the choice?
Arghh… that’s a really good specific question!
But I think a consistent response, per my rule that a live stream has precedence of any recording, that both users would have to agree to let a recording proceed in order for the recording to grab a tuner.
That is, suppose there are no tuners left, and a recording is scheduled. Any number of users are live streaming on N channels where the channels may or may not be the same.
In this way, at least one tuner must be freed up for the scheduled recording to proceed.
So the best thing is look for the channel with the least number of users. Then a message is sent some user watching that channel. If that user agrees to give up watching the show, then if a tuner is freed up, then the recording will take place.
But what if there are no channel watched by a single user? Then agreement must be obtained from each of the users to stop watching the show. If all agree, the live streaming of that channel is stopped and a tuner becomes available…
If a request to stop watching a show involves multiple users, the message might be: "A recording of the Amazing Race is scheduled for 9M in 15 minutes. This recording will be cancelled unless you and anyone else watching Blood and Treasure agree to stop watching. There are now two separate devices watching Blood and Treasure. "
Then a popup would ask if they agree to stop watching or not.
If both parties watching on the separate devices agree, the tuner is freed up. If not, a message goes out that “Please continue to watch Blood and Treasure”.
Thank you for your question. It is a really important use case, and show how nuanced things become when independent devices are putting demands on shared resources, and where the devices are both independent and perhaps geographically distributed.
Today, recordings just knock people off of live streams, and that is really, really bad.
So I really think that the software engineers at Tablo need to directly wrestle with the problems of resource management here, though I can see why they might prefer to avoid the issue.
I just don’t think there is any avoiding it. There is simply nothing like a live stream being stopped without warning when a scheduled recording grabs the tuner.
Imagine watching name-your-favorite-sports-event on a Tablo, when a recording of a Big Bang Theory rerun grabs the tuner. Definitely not good for reliable live streaming.