少し前、公開されていたpatchにより、kodiのpvrでデジタル放送の字幕表示が可能になった。
そう言っても簡単な作業は必要なのだが、

kodiで字幕表示 part 1
kodiで字幕表示 part 2
kodiで字幕表示 part 3

但し、完璧ではない。
お約束のようにメモリーリークが付いてくる。
インターレース解除でもしかり、
お前もか!そう罵しりたくなる。

どうせ、arib字幕というニッチな機能なので放置。

使わない上に困らないので、長らくスルーしていたのだが、
先日、気紛れに調べてみた。

まず、問題箇所を絞るところから。
少なくとも、字幕対応patchをあてなければ症状は出ない。
そうなれば、間違いなくpatchをあてたコードだろう。

その中でも新規に追加されるファイル libaribcaption.cを確認する。
まず、メモリの確保、そしてリリースする箇所を比べていくことに。

メモリ確保はともかく、リリースする箇所がffmpegやkodi側にも散らばっている。

順を追って調べていくと、一部オブジェクトが開放されていないように思われる。
そんな訳で字幕デコード関数の最後に当該オブジェクトのクリア関数を呼び出してみた。

一行追加しただけだが、これで問題は解決したようである。

ffmpeg.diff

ただ、これでホッとしてはいけない。
インターレース解除時のメモリーリーク、録画再生時のシーク不具合に...etc。

ハァ〜 orz