書式
#include <X11/extensions/Xvlib.h>XvGrabPort(dpy, port, time)
Display *dpy;
XvPortID
port;
Time
time;
引き数
- dpy
- Xv サーバが Xv クライアントからのリクエストを受け付けるディスプレイ画面 を指定する。ディスプレイを指定するオプションが指定されていなければ、Xv は DISPLAY 環境変数で指定されているディスプレイを使う。ディスプレイ 指定オプションは「ホスト名:番号」という形式である。コロン 1 つ(:)でな く、コロン 2 つ(::)を使った場合には、トランスポート層で DECnet を使う ことが指定される。
- port
- グラブスルポートを定義する。
- time
- リクエストのタイムスタンプを指定する。
説明
XvGrabPort(3X) はポートをグラブする。一旦クライアントがポートをグラブ すると、グラブを行ったクライアントしかそのポートにビデオ関連リクエスト を出せなくなる。タイムスタンプが現在のポート時刻より前ならば、XvGrabPort のリクエスト は無視され、XvInvalidTime が返される。他のクライアントが既にポートをグ ラブしていると、XvAlreadyGrabbed が返される。それ以外の場合には、この 関数は Success をステータスとして返す。以下のリクエストが処理さ れた時にポート時刻が更新される: XvGrabPort(3X), XvUngrabPort(3X), XvPutVideo(3X), XvPutStill(3X), XvGetVideo(3X), XvGetStill(3X)
そのポートが他のクライアントのためにビデオ処理をしている最中ならば、そ のビデオ処理は無効にされる。そして詳細内容として XvPreempted を持つ XvVideoNotify イベントがそのドロウアブルに対して生成される。
返り値
- [Success]
- XvGrabPort(3X) が正常に終了すると返される。
- [XvInvalidTime]
- 要求された時刻が現在のポート時刻より前の場合に返される。
- [XvAlreadyGrabbed]
- 他のクライアントが既にポートをグラブしている場合に返される。
- [XvBadExtension]
- Xv 機能拡張が使えない場合に返される。
- [XvBadAlloc]
- XvGrabPort(3X) がリクエストを処理するためのメモリの割り当てに失敗した 場合に返される。
診断
- [XvBadPort]
- リクエストされたポートが存在しない場合に生成される。