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

書式

#include <X11/extensions/Xvlib.h>

XvPutVideo(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
動画イメージが書き込まれる出力先(ドロウアブル)領域の位置と大きさを定義 する。 dx dy は、この領域の左上のピクセルを定義する。 dw dh は、この領域の幅と高さをピクセル単位で指定する。

説明

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

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

ビデオがうまく開始したら、詳細内容として XvStarted を持つ XvVideoNotify イベントがそのドロウアブルに対して生成される。ポートが既 に使用中ならば、そのビデオ処理は無効にされ、さらに新しいドロウアブル が古いドロウアブルと異なる場合には、詳細内容として XvPreempted を持つ XvVideoNotify イベントが古いドロウアブルに対して生成される。他の クライアントがポートをグラブしていると、詳細内容として XvBusy を持つ XvVideoNotify イベントがそのドロウアブルに対して生成される。ポートが 正しいビデオ信号を受け取っていない場合や、ビデオがアクティブな間に ビデオ信号に割り込みがかかった場合には、詳細内容として XvHardError を 持つ VideoNotify イベントがそのドロウアブルに対して生成される。

返り値

[Success]
XvPutVideo(3X) が正常に終了した場合に返される。
[XvBadExtension]
Xv 機能拡張が使えない場合に返される。
[XvBadAlloc]
リクエストを処理するための資源が不十分な場合に返される。

診断

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