Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Avoid calling RemoveAllPIDFilters() when using Vchan tuning
The first step is to improve the error messages. In two places the "UpdateFilters called in wrong tune mode" message has been updated to specify the value of the wrong tune mode. After this update, an example of the error message is: mythbackend: mythbackend[779282]: E HDHRStreamHandleri hdhrstreamhandler.cpp:242 (UpdateFilters) HDHRSH[4](13249773):i UpdateFilters called in wrong tune mode, 4 From this, we know that the tune mode was hdhrTuneModeVChannel. We know that UpdateFilters was called, but in hdhrstreamhandler.cpp, the only call to it is avoided for Vchan tuning. 108 void HDHRStreamHandler::run(void) ... 140 UpdateFiltersFromStreamData(); 141 if (m_tuneMode != hdhrTuneModeVChannel) 142 UpdateFilters(); Code examination revealed that the offending invocation of UpdateFilters() is in RemoveAllPIDFilters(). This routine is called unconditionally in 108 void HDHRStreamHandler::run(void) ... 183 LOG(VB_RECORD, LOG_INFO, LOC + "RunTS(): " + "shutdown"); 184 185 RemoveAllPIDFilters(); The solution is to condition the call to RemoveAllPIDFilters() in the same way the call to UpdateFilters() was previously conditioned. If we're using Virtual Channel Tuning, then don't bother removing filters which were never created in the first place. Resolves #905
- Loading branch information