Does Channels not 'look ahead' when it comes to Pass priority? Let me explain:
My device has three tuners. At 10pm, there are three 1 hour shows that I have a pass for. At 10:30pm is another show that I have a pass for, but its priority is higher than the three shows recording at 10pm.
But what is happening, is that Channels is recording the three 1 hour shows at 10pm, and since all tuners are in use, it is not recording my higher priority show at 10:30pm.
If this is simply how Channels DVR works, I sure would like to request some degree of 'looking ahead', to ensure that a lower priority show that overlaps with a higher priority show doesn't prevent the higher priority show from being recorded, as I am currently experiencing.
That works. For me, a lower priority show should never prevent a higher priority show from being recorded, even if it means clipping (stop recording) the lower priority show to start recording the higher priority one.
I forgot to also mention that in Scheduled Recordings, Channels shows my higher priority show as scheduled to be recorded, but it doesn't happen since all three tuners are recording lower priority shows. So something seems 'off' with this.
I hope this can be a priority (pun intended) on your to do list. Channels knows about my higher priority show, since it shows up in the Scheduled Recordings list. Ideally Channels is 'evaluating' shows whenever it sees it is coming up, and will stop a recording of a lower priority show to ensure recording of the higher priority show.
I have no doubt this is not simple from a development perspective, but it's a pretty significant thing that a lower priority show will prevent a higher priority show from being recorded.
I think another part that makes development of proper conflict handling more difficult than most users realize is that Channels does not "claim ownership" of your tuners.
Let me clarify that: The HDHR tuners have a couple different ways they can be used by other software. Originally a program would claim the whole device, and no other program could use the device while the first was using it. Now however, there a different method of using the tuners that works better with a mixed environment:
A program looks for HDHR devices on the network
The program then queries each device to see which channels that device says it can tune
When the program wishes to tune a channel (whether for live viewing or recording), it requests the channel from a device that says it can tune that channel. If the device has a free tuner, it will then start the stream.
The difference between this new method is that no program has exclusive control over the HDHR device, and therefore cannot know for certain the disposition of the device's tuners. In the older method of using HDHR devices a program would create a socket—separate from the tuners—to get information about the status of the device and its tuners; the new method does not offer this ability and the exclusivity it offers.
I imagine better conflict handling would require a rewrite of the recording scheduling code of the DVR server software, which is probably more involved than most users suspect.
Totally agree that this is not a simple fix. But I would consider it a pretty critical aspect of a DVR to have a certain degree of confidence that a high priority Pass show will get recorded. But as things stand, I can have a show set to priority #1, but that doesn't guarantee it will be recorded. And this is in the scenario where nothing other than Channels is controlling the tuner.
But that's the point: Channels doesn't know it's the only software using the device. The "new" method of using the devices being pushed by SiliconDust doesn't really allow for a program to claim control of the entire device, only to request information or a stream from the device. The "legacy" way allowed for more control of the device, but SD wants to move to different paradigm. Whether that's a good thing or not is a different discussion.
But Channels doesn't need to know if other software is using the device. To me, that is beyond what Channels has to 'worry' about. The issue I am describing is entirely within the Channels 'world'.
Perhaps there should be a setting in the Channels DVR software to inform Channels how many tuners there are, so that, in my original scenario, it knows it needs to stop recording one of the shows to ensure that my high priority show is recorded. Or perhaps Channels already knows how much tuners there are based on the hardware it has identified.
Yes, Channels knows how many tuners each HDHR device has. However, Channels only knows the disposition of the tuners it is currently using; it does not know anything about the tuners it is not using.
Here's an example: Let's suppose you have a Quatro. Channels knows there are up to 4 tuners available. If you are watching one program live, and recording another, Channels knows that 2 of possibly 4 tuners are in use by itself. However, Channels does not know what the Quatro's other 2 tuners are doing. It only knows that there may possibly 2 free tuners available for another recording or client to use.
Here's where things get a little tricky: The "Tuner Sharing" option of the Channels clients. If you do not use this feature, then when a Channels client (not the DVR) watches a live program, it requests the stream from the HDHR device directly, not through the DVR. Coupling this with the example from above, if a Channels client that does not have "Tuner Sharing" enabled wants to watch a live channel, that will use a third tuner from the Quatro. However, since it's a direct connection between the client and the tuner, the DVR knows nothing about this tuner. Therefore, it thinks the Quatro could still possibly have 2 free tuners, even though there is only 1 free tuner.
In order to fully ensure that the DVR server knows the disposition of every available tuner, Channels would have to mandate and enforce "Tuner Sharing" when a DVR is used on all of its clients. Because this involves an additional step (the stream goes to the DVR first before it is sent to the client), it can introduce performance penalties and may introduce criticism from other users.
To sum it up, the issue of tuners, priority, and other software is much more complicated than it seems on its surface. Reworking the priority and scheduling of the DVR within this context is more involved than one would initially assume.
I'm still not clear on where you're going, and I think you are actually overcomplicating it a bit. In my situation, my device has 3 tuners, and Channels is recording a show on all 3. Channels knows that all three are busy, because it is using them. it also knows what shows are coming. It may not be simple, but it is not unreasonable to expect Channels to know it needs to stop recording one of the lower priority shows and start recording the higher priority show.
It's not unreasonable to expect it to behave that way. But then you are stuck with a partial recording and have to decide what to do with that: Does it stay as a partial recording; or do you delete it, mark it as an error recording, and schedule it to record again; or do you do something else entirely or a combination of both.
Regardless of which solution is chosen, what is clear is that the recording conflict and priority code in the DVR server needs a rework and improvement. In any case, such a rework is probably not as trivial as most users believe, and will probably take more time and effort than expected.
Until that happens, look on the bright side: At least Channels has some sort of recording priority to assist in recording conflicts. Many other DVR software packages have no form of conflict resolution or way to prioritize recordings/rules. If you'd rather have absolutely no say in how recording conflicts and priorities are handled, feel free to use SiliconDust's DVR.
Yes this is a must have feature. Actually a basic feature that is probably expected by most users. I thought it did this until reading this post and now I’m wondering if I’m missing out on some shows. It might explain why I have missed one or two shows in the past.
Also I don’t really think this is that difficult to implement. There are several ways to do it, each with some positives and negatives but in the end no matter what the solution is, you get your top priority show recorded! Big win.
I kind of feel the same way. No doubt dealing with conflict resolution is not an easy task, but even something as basic as: If all tuners are recording, and upcoming show is higher priority than those currently being recorded, stop recording the lowest priority show, and start recording the upcoming show.
To repeat, I know this is not simple, and yes, this will create partially recorded shows. But to me this is fine, as I've made it clear (in the recording priority list) that certain shows are more important than others.
Our official stance on all of this is: buy more tuners.
I say this with the full understanding that it sounds lazy and that we’re pushing the problem on you guys. But with our support for stacking and prioritizing tuners, and all the (very true and real) issues listed above, it really is going to give you the best experience.
After all of the work put into managing priority and deciding which things should or should not record, you’re still going to end up with shows not recording.
For power recorders, a little more money and another simple install of an HDHomeRun, gives them conflict free recording with zero anxiety and zero pass planning. It’s really worth the investment.
This is something that almost no other DVRs can even offer. Need to record more things? Add more tuners. Channels does this practically seamless. This is what we suggest if you’re running into serious recording conflicts.