XvGrabPort(3X)

名前
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)