XvQueryEncodings(3) アダプタが対応しているエンコーディングのリストを返す

書式

#include <X11/extensions/Xvlib.h>

XvQueryEncodings(dpy, port, p_num_encodings, pp_encoding_info)

register Display *dpy;
XvPortID port;
unsigned long *p_num_encodings;
XvEncodingInfo **pp_encoding_info;

引き数

*dpy
Xv サーバが Xv クライアントからのリクエストを受け付けるディスプレイ画面 を指定する。ディスプレイを指定するオプションが指定されていなければ、Xv は DISPLAY 環境変数で指定されているディスプレイを使う。ディスプレイ 指定オプションは「ホスト名:番号」という形式である。コロン 1 つ(:)でな く、コロン 2 つ(::)を使った場合には、トランスポート層で DECnet を使う ことが指定される。
port
エンコーディングのリストを問い合わせるアダプタを持つポートを指定する。
p_num_encodings
アダプタがサポートしているエンコーディングの数へのポインタが書き込まれ る。
pp_encoding_info
返されるエンコーディング情報のリストへのポインタが返される。 XvEncodingInfo は、以下の内容を持つ構造体である:


    typedef struct {
      XvEncodingID encoding_id;
      char *name;
      unsigned long width;
      unsigned long height;
      XvRational rate;
      unsigned long num_encodings;
    } XvEncodingInfo;

encoding_id
エンコーディングの ID を指定する。エンコーディング ID は、ポートの エンコーディング属性が変化した時にエンコーディングを識別するために使わ れる。
name
エンコーディングを識別するための整形された文字列へのポインタ。この文字 列は "タイミング-シグナルの種類" という形式である。例えば "ntsc-composite" などである。
width,height
デコードされるビデオイメージの幅と高さ(ピクセル単位)。
rate
デコードされるビデオのフィールドレート。

XvRational 構造体は、分数を指定するために用いる。 これは以下のような構造体である:


    typedef struct {
      int numerator;
      int denominator;
    } XvRational;

numerator は分子を表し、denominator は分母を表す。

説明

XvQueryEncodings(3X) はアダプタについてのエンコーディング情報を返す。 それぞれのエンコーディングは、前述の XvEncodingInfo 構造体によって記述 される。エンコーディングはエンコーディング ID によって識別される。この 値を使うとポートのエンコーディング属性の設定や取得を行うことができる。

返り値

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

診断

[XvBadPort]
要求されたポートが存在しない場合に生成される。