kodiのLeiaからMatrixへ移行する際、pvr周りに大な変更があった。
当然、pvrアドオンのapiにも影響している。
基本的な使い方は変らないのだが、インターフェースに若干の変更があった。
よって、Leiaから移行する際にはひと手間必要である。

そして、通常の動作にも若干の変化が見られる。
ただ、使用しているのは自前で用意したpvrアドオン
なので、IPTV Simple Client等では違った挙動をするかもしれないので、あしからず。

まずは、epg表示の処理が重くなっている。
察するに、Leiaではサボっていた表示情報の更新を真面目にしているのではなかろうか。
ただ、Matrixの最初のバージョンに比べれば大分と軽くなった。
しかし、それでもLeiaと比べると明かにcpuの負担が増えている。

また、Leiaではみられなかった不具合として、epg表示中の一部番組が空白となる。
これに関しても、バージョンが進めば直るのではと、楽観していたのだが...
この期に及んでも直る気配はない。

前述通り、自前のアドオンなのでバグではないと言い切れない。
ただ、基本的にLeia版とコードは変らず、そのLeia版では問題なく表示されている。

そして先日、ラズパイ3で64bit OSを試したのを機に「番組の空白表示問題」調べてみることにした。

最初に、空白となる番組の傾向を確認する。
チャンネルとしてはNHKに多く、また地デジに限らずスポーツ番組で顕著にみられる。

次に空白となる番組を、正しく表示されたepgstationの番組表で確認してみる。

そして解ったのは、空白となる番組は全て「つなぎ番組」が用意されているものだという事。

つなぎ番組とは、番組の延期等を考慮した代替番組や、野球中継等で早く終了した場合のクッション番組の事。
偉そうに語るが、今回調べるまで存在すら知らなかったのだが...;
ちなみにepgstationの番組表では、これら「つなぎ番組 」の内容も正しく表示されている。

そうと解れば、それら原因は容易に想像できる。
番組の開始、又は終了時間が前番組と重複しているものは内部的に表示されずに、パスされるのであろう。

それなら、これら不具合を解消するのは簡単である。
前番組と時間が完全重複するものはpvrアドオンからkodiへ渡さない。
又、前番組の終了時間と次番組開始時間が重複するものは時間調整して渡す。

そう考えたのだが、そうは問屋が卸さない。

epgデータを読み込む際、新規ロード、又はキャッシュからのロードで挙動に違いがある事に気付いた。

キャッシュからロードされる場合は前述通り、時間重複した番組は空白となる。
しかし、新規にデータを読み込んだ際は、重複した時間が調整されて正しく表示される。

そう考えると放送全体が丸ごと重複するものだけ対処するのが良かろうと考える。
pvrの番組表では排他的にしか表示されないなら、これら番組はいずれにせよ表示されないのだから。
そんな訳で、pvrアドオンから当該番組ならkodiへ渡さずスキップするように修正した。
これで、スポーツ番組に発生しがちだった空白問題は解決できそうである。

そして、連続する番組の終了と開始が重複するものに関しては、従来通りkodiへ渡すことにする。
問題を有したままとなるが、少なくとも新規ロード時は正しく表示される。
なにより、今日の時点で該当する番組はNHK「政見放送」直後の番組だけである。

いろいろな意味で良しとする!