[mythtv-commits] [MythTV/mythtv] f8a45f: HDHomeRun recorder repeatedly setting PID filter

Gary Buhrmaster noreply at github.com
Thu Aug 19 17:55:04 UTC 2021

  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: f8a45f9700777aaedb0ca09d5bfe8e63d0c29283
  Author: Gary Buhrmaster <gary.buhrmaster at gmail.com>
  Date:   2021-08-19 (Thu, 19 Aug 2021)

  Changed paths:
    M mythtv/libs/libmythtv/recorders/hdhrstreamhandler.cpp
    M mythtv/libs/libmythtv/recorders/streamhandler.cpp
    M mythtv/libs/libmythtv/recorders/streamhandler.h

  Log Message:
  HDHomeRun recorder repeatedly setting PID filter

As reported in ticket #trac-11475:
After the reports on list, irc, and the SD forums indicated that there was an issue with the
MythTV HDHomeRun recorder repeatedly issuing set filter, I have performed a git bisect of MythTV,
and the result is that the first commit that is causing the problem appears to be
9b22460f53bf6313516f33987e4260897c6076a3 which is "Merge of various recorder changes from mythtv-rec2".
This seems to generate new filter updates hundreds (or more) times per second.
The second commit 0542a100237dd26bcbc60212c443f4619586f15b "Refs #10414. Lower HDHomeRun recorder
CPU usage a tiny bit more." sets a timer to only update the filters about 10 times per second (the
currently observed rate). For testing purposes, I have created a patch against fixes/0.26 which
updates the filter on the hdhomerun only when the code indicates that the filter list has been
changed (attached). It should not be considered complete, but simply as a proof of concept.
In particular, I have not looked at EIT filter changes, nor other recorders.

Update 20210819 by kmdewaal:
Patch updated for today's master with only minor modifications
and tested extensively with HDHomeRun on DVB-C and DVB-T2 with EIT.
An alternative implementation would be to create the new PID filter string,
compare this with the previously sent PID filter string and send the
new string only if it is different from the old string.
This is how it is done in the SatIP streamhandler.
The chosen implementation also changes streamhandler base class. This is
however more efficient as it now only requires creating the PID filter
string when it is needed. Also, the changes in the streamhandler base
class now also enable the same solution in the SatIP streamhandler.

Signed-off-by: Klaas de Waal <kdewaal at mythtv.org>

More information about the mythtv-commits mailing list