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

書式

#include <X11/extensions/Xvlib.h>

XvPutStill(dpy, port, d, gc, vx, vy, vw, vh, dx, dy, dw, dh)

Display *dpy;
XvPortID port;
Drawable d;
GC gc;
int vx, vy, dx, dy;
unsigned int vw, vh;
unsigned int dw, dh;

引き数

dpy
Xv サーバが Xv クライアントからのリクエストを受け付けるディスプレイ画面 を指定する。ディスプレイを指定するオプションが指定されていなければ、Xv は DISPLAY 環境変数で指定されているディスプレイを使う。ディスプレイ 指定オプションは「ホスト名:番号」という形式である。コロン 1 つ(:)でな く、コロン 2 つ(::)を使った場合には、トランスポート層で DECnet を使う ことが指定される。
port
静止画を取得するポートを定義する。
d
静止画が書き込まれるドロウアブルを定義する。 現在はピックスマップはサポートされていない。
gc
グラフィックスコンテクスト(GC)を定義する。 GC の構成要素は subwindow-mode, clip-x-origin, clip-y-origin, clip-mask である。
vx,vy,vw,vh
書き込みが行われるビデオ領域の位置と大きさを指定する。 vxvy は、この領域の左上のピクセルを定義する。 vwvh は、この領域の幅と高さをピクセル単位で指定する。
dx,dy,dw,dh
静止画が書き込まれる先の領域の位置と大きさを定義する。 dxdy は、この領域の左上隅を定義する。 dwdh は、この領域の幅と高さをピクセル単位で指定する。

説明

XvPutStill(3X) は、ドロウアブルに動画を 1 フレーム書き込む。 入力先(ビデオ)の矩形領域の位置と大きさは vx, vy, vw, vh によって 指定する。出力先(ドロウアブル)の矩形領域の位置と大きさは dx, dy, dw, dh によって指定する。

ビデオデータはビデオエンコーディングの境界でクリップされ、リクエストさ れたドロウアブル領域の大きさ(あるいはサポートされている大きさでこれに 最も近いもの)に拡大・縮小され、ドロウアブルの境界でクリップされる。

他のクライアントがポートをグラブしていると、このリクエストは無視され、 詳細内容として XvBusy を持つ XvVideoNotify イベントがそのドロウアブル に対して生成される。ポートが正しいビデオ信号を受け取っていない場合には、 詳細内容として XvHardError を持つ XvVideoNotify イベントがその ドロウアブルに対して生成される。

返り値

[Success]
XvPutStill(3X) が正常に終了した場合に返される。
[XvBadExtension]
Xv 機能拡張が使えない場合に返される。
[XvBadAlloc]
XvGetStill(3X) がリクエストを処理するために使うメモリの割り当てに失敗 した場合に返される。

診断

[XvBadPort]
要求されたポートが存在しない場合に生成される。
[BadDrawable]
要求されたドロウアブルが存在しない場合に生成される。
[BadGC]
要求されたグラフィックスコンテクストが存在しない場合に返される。
[BadAlloc]
リクエストを処理するための資源が不十分な場合に生成される。