Xv(3) X ウィンドウシステムの動画機能拡張

説明

Xv 機能拡張は、X のディスプレイに接続するビデオアダプタをサポートでき るようにする。この機能拡張が取っているアプローチにおいては、ディスプレ イは 1 つあるいは複数のビデオアダプタを持つことができ、そのそれぞれが 1 つあるいは複数のポートを持ち、これを経由して独立したビデオストリーム を流すことができる。

アダプタによっては、ドロウアブル上で動画を表示することができるかもしれ ないし、ドロウアブルから動画を取り込むことができるかもしれない。 あるいはその両方が可能かもしれない。この機能拡張は動画のエンコーディン グ(NTSC, PAL, SECAM 等)とドロウアブルのフォーマット(深さとビジュアル ID のペア)を相互に変換する。アダプタによっては、複数の動画エンコーディングや 複数のドロウアブルフォーマットを扱えるかもしれない。

クライアントは Xv(3X) を用いてディスプレイのビデオ資源の使用権を取得し、 共有を管理する。クライアントは普通、XvQueryExtension(3X) を用いて機能 拡張の状態を調べ、XvQueryAdaptors(3X) を用いて存在しているビデオアダプタ を調べ、XvQueryEncodings(3X) を用いてアダプタがサポートしている動画 エンコーディングを調べる。

クライアントは利用可能なビデオ資源を一度調べれば、サポートされている機 能に従って、自由に動画をドロウアブルに張り付けたり、ドロウアブルから 動画を取り込んでよい。クライアントは、ビデオの動作が変化した時や、 ポートの属性が変化した時のイベントを選択して受け取ることができる。

ライブラリ関数の概略

Xv ライブラリ関数の概略を以下に示す:

XvGetPortAttribute(3X) - 現在のポートの属性値を返す

XvGetStill(3X) - ドロウアブルから動画を 1 フレーム取り込む

XvGetVideo(3X) - ドロウアブルから動画を取り込む

XvGrabPort(3X) - クライアントによる排他使用のためにポートをロックする

XvPortNotify(3X) - ポートの属性が変化した時にイベントを生成する

XvPutStill(3X) - ドロウアブルに動画を 1 フレーム書き込む

XvPutVideo(3X) - ドロウアブルに動画を書き込む

XvQueryAdaptors(3X) - 画面に対応するアダプタの情報を返す

XvQueryBestSize(3X) - 最適なドロウアブル領域の大きさを決める

XvQueryEncodings(3X) - アダプタがサポートしているエンコーディングの一覧を返す

XvQueryExtension(3X) - 機能拡張のバージョンとリビジョンを返す

XvSelectPortNotify(3X) - XvPortNotify イベントを有効あるいは無効にする

XvSelectVideoNotify(3X) - XvVideoNotify イベントを有効あるいは無効にする

XvSetPortAttribute(3X) - ポートの属性を設定する

XvStopVideo(3X) - 再生中の動画を止める

XvUngrabPort(3X) - グラブしているポートを解放する

XvVideoNotify(3X) - 動画処理のために生成されるイベント

以上の関数はそれぞれ、Xv のオンラインマニュアルで解説されている。