Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Try to fix corner cases when stopping in-progress recordings.
The backend uses EncoderLink::MatchesRecording(), which in turn uses ProgramInfo::IsSameRecording(), to determine which recorder to stop. Unfortunately the logic used is too strict in some respects and too loose in others. It is too strict in that it requires an exact match on ProgramInfo::recstartts when there are many places in the code where the exact recstartts used by the recorder is not known. The result is the stop recording request is ignored in those cases. It is too loose in that it doesn't only uses chanid and recstartts. The result is that it can stop the wrong recording in some cases. This change attempts to resolve at least some of the issues. Changed PI:IsSameRecording() to also check the program title. Changed EL::MatchesProgram() to check PI::IsSameProgramWeakCheck() and the inputids instead of PI::IsSameRecording() when the inputid is known. This handles the cases where the exact recstartts isn't known. Finally, removed a work-around for this problem in ScheduleCommon that didn't always work. (cherry picked from commit 8116fde)
- Loading branch information