kodiのPVRアドオンを少しばかり快適にしてみた。

メインで使用しているkodiはラズパイ3 + Leia環境。
次バージョンMatrixは既にリリースされているが、未だにラズパイ3未対応のためv18を使用。
ただし、ぬかりはない。
v19対応PVRアドオンは既に用意してある。

しかし、このPVRアドオン v19版、少しばかり気なる点が...。
Windows + kodi v19において番組表示時、CPUの負荷がおかしな事になっている。
極端に重い。
そして、番組表最終ページのみ極端に軽くなる。
ラズパイ3 + kodi v19では、若干重めではあるものの上記のような挙動は見られない。

プラットフォームの違いで挙動が変るとなると、単純なものではないのかもしれん。
kodiのグリッド表示箇所等を調べてみたがサッパリ分らん。
もっともWidows限定って言う時点で、手の届かない所に問題がありそうな...。

そもそも、このPVRアドオンは自作...あっ、それだろ。
最初は、そう思ったのだがpvr.iptv.simpleでも同様の挙動である。

ググッってみると「v19 + cpu負荷 + epg」のワードでそれなりにヒットする。
しかし、これらは殆どが起動時のepgデータ読込みが遅くなった事に関して言及しているもの。
このWindows問題とは別である。
ちなみに、このデータ読み込み遅延は、epg読込みを非同期にするれば解決するらしい。
非同期に...。

epg非同期と言えば、pvrアドオンのapiに関連する関数があったはず。

たしかに、上記二つの問題は「重い」と「遅い」で全然別の問題である。
ただ、実装しても無駄にはならん。

そんな気紛れから、epgデータ読込みの非同期を実装することにした。

思い付きから事を起したのだが、決して使えない代物ではない。
もし登録チャンネル数が50、60も有るような場合を考えると明解である。

kodiのデフォルト設定として2時間毎に全チャンネルの番組情報を更新する。
取得する番組は現在から過去1日、又先3日分のデータを取り込むことになる。

これだけの量である。
ラズパイ3程度のスペックなら影響が無いとは言えない。

これに対して非同期なら、上記レンジの範囲に入った番組を追加、外れた番組を削除するだけで済む。
これなら全チャンネルが偶然、同じ時刻に更新されたとしても、たかがしれている。

早速、作業に取り組んでみた。
EPGの読込みを非同期処理にすると言っても、あれこれと頭を捻る必要はない。
pvrアドオンに用意された仕組みを使うだけ。
後は効率良く処理分散させて、任意のタイミングで処理するだけである。

さて、どんなものだろうか。
その効果は実感できるのか?
そう思ったのだが、自宅環境は地デジ、BS1、及びプレミアムの9チャンネル。
恩恵はなさそうである;