kodiの次期バージョンv21であるOmegaのリリースが間近と言うのに、
いつまで前バージョンv19のMatrixを使い続ける事になるのだろうか。

そう、常用しているラズパイkodiはv19で留めているのだ。
新しもの好きの性格からしては、今迄よく我慢したものだ。

v19とv20では使い勝手が若干異なり違和感があったのだが、
それ位なら気にしない。

なによりも、pvrやゲームアドオンの不具合が最大のネックだった。

まずはゲームアドオンのMAME2010に関すること。
そもそもv20のNexus以降はラズパイosも64bitを使用する予定だったのだが、
MAME2010の64bitモジュールのバイナリがネット上を探してもない。
なので、面倒だがソースからバイナリにしたものを用意する必要がある。

しかし、その労力が報われることなく、試すや早々に問題が発生。
ジョイスティックから上レバー入力でXボタンもONになる。
ジョイスティックのドライバーを疑ったのだが、MAME2000では正常動作する。
こうなれば、間違いなくMAME2010の問題だろう。

ただ、ソースをもとに調べる気力もなく、早々に使用を断念する。
結局は、最初の志しを曲げてv20でも32bit osを使用することで妥協した。
これなら、v19で使用していたものを流用できる。
所詮、使用するのはラズパイ3。
妥当な判断だろうと、自分に言い聞かせる。

しかし、そう妥協した32bitにおいても問題が...
TV録画のresume再生が出来ないのである。
どのタイミングで再生を止めても、最初からの再生となる。

あれこれと試したところ、mpeg2-ts形式の再生に問題があるようだ。
ファイルマネージャーから、当該ファイル再生を試みても同じ結果となる。
こうなると、依存するffmpegの問題だろう。
確かに、ffmpeg5.1.2に変更されてから、Windows版でも思わしくない。

せめて、pvr上からはresume再生出来ないものか弄ってみる。
結果、v19のpvrアドオンでは設定しなかったmime-typeを、改めて設定することで解決した。
ただ、コンテキストメニューからの「再生」は対応しきれていない;
この際だ、それくらいは妥協しよう。

さて、今度こそ。

しかし、二度あることは三度ある...

しばらくは、正常に運用出来ていたのだが、
epg画面を連続でスクロールさせていたとき、番組表の文字が突然と消えてまった。



このとき、心がポキッと折れた。
そう、これがv19を使い続けている理由である。

そうのうち修正されるだろうと静観していたのだが、v21 Omegaのリリースが間近である。
kodi本家のmasterブランチを確認するが、修正に至る気配は微塵も感じられない。
関連情報をネットを調べてみても皆無。

さて、このままv19を使い続けのか?

否!

そんなわけで、この不具合を深掘りしてみた。

まずは、debugログを有効にして情報を確認する。
Fontが消えるタイミングで表示されるメッセージを確認する。

CacheCharacter: New cache texture is too large ...
GetCharacter: Unable to cache character. Clearing character ...

この情報から状況を読み解くとキャッシュのバッファが上限オーバーしてリセットされているようだ。
ただ、その通り動作しているのなら、正常に表示されるはず。

そもそも、ログには当該メッセージが連続して記されている。
この事から、正常にリセットされないために、この動作がループしていると予想。

そんなことで、Fontキャッシュを初期化する関数を確認する。
すると、バッファオーバーの判定条件に用いる変数がクリアされていない。

試しに、リセットのタイミングで変数を0クリアしてやると不具合は解消された。
ログを見ても正常に機能しているようだ。

さて、この修正は正しいのか?
正誤は不明だが、正常に機能しているようだ。
まぁ、このまま使ってみることにする。

ところで、不具合の原因となった箇所が追加されたのは前回のcommit。
なる程、それなら修正される余地はあるはず。

なにげに、そのcommitの日付けに目をやると、

一年前の8月...。

おいおい、修正される見込み無さ過ぎやろ!