安定化にも成功
基本動作、というのは、今のところ、シングルモニター構成にして、そのモニター全体の画像をキャプチャーしてみているだけだからだ。
つまり、マルチモニター時にどうなるか、だとか、インターフェース上では、マウスカーソルのキャプチャーも出来る様なのだが、それも試していない。
更に言えば、作者製のUbuntu向けデスクトップ映像録画ソフトである所のTiDesktopRecorderには、ウインドウ録画機能もあるし、領域指定も可能になっているので、そういった所まで、Wayland環境でも、動作させる事ができるかどうかは、今日の時点では、判らない状況だ。
もっとも、インタフェース的には、ウインドウ指定のキャプチャーはできる様だし、領域指定については、全画面をキャプチャーして内部的にその一部を取り出せば良い話でもあるので、何とかなってもらいたい所だ。
ウインドウ録画ができるかできないかは、Webブラウザ等で動画を再生している状況を録画しつつ、同じマシンで別の作業ができるかどうか、という話に直結するし、Mirror-DTCのTransporterでも、指定ウインドウの内容のみクライアントに転送し、指定ウインドウは隠してしまう様な機能があるので、それに近い事ができる方が望ましい訳だ。
具体的には、Wayland環境では、ウインドウ位置の指定はユーザープログラムからは出来ない! みたいな話も、ネットでは見たような気がするので、Transporterやウインドウ録画時に、対象ウインドウを隠す処理はできないかもしれない。
しかし、ユーザーがウインドウを手作業で移動する事はできる感じだし、それが可能なら、マウス・キーボードエミュレーション機能を使えば、自動的に、ウインドウの表示位置を移動する事も不可能ではない気もする。
と、言う事なので、Wayland対応についても、何となく、先が見えて来た感じなのだが、少なくとも作者製のUbuntu向けソフトは、あまり利用者がいないので、この苦労が報われる気はしない今日この頃だ。
ちなみに、昨日の時点で不安定だった画面キャプチャーが、どうして、今日の時点で安定したのか、というと、Gnome-Remote-Desktop-Daemonが構築していたバッファ管理機構を全て排除したからだ。
つまり、昨日も書いていた様に、バッファ管理周りのコードを中途半端に移植していたので、誤動作する事になった、というのは判っていたので、それでは、最小限、どんな機能を実装すれば良いんだろうか、と、真面目にコードを見てみた所、Daemonが実装しているコードは、一切必要がない! という結論に至った訳だ。
なので、そういったコードを全て取り去ってみた所、PipeWire関係のコードもすっきりとして、昨日までとは見違えるくらい単純化されたので、動作状況を確認しつつ、最低限のコードを追加実装してみた所、普通に安定動作する様になった次第だ。
と、言う事で、数日前に書いた様に、オープンソース系のソフトというのは、不必要に複雑化されている事も多いので、そういうコードを見る時には、本当に、こんな実装は必要なのか? と、疑ってみると、幸せになれるかもしない今日この頃だ。

