XvGrabPort -
クライアントで排他利用するためにポートをロックする
#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]
- リクエストされたポートが存在しない場合に生成される。
関連項目¶
XvUngrabPort(3X) XvVideoNotify(3X)