この章では、SunVideo Plus に付属しているプログラミングツールおよび XIL サンプルプログラムを紹介します。SunVideo Plus ソフトウェアには、いくつかのサンプルプログラムのソースコードが付属しています。下記の表は、付属しているすべてのプログラミングツールとサンプルプログラムの簡単な説明です。構文および関連するオプションの詳細については、表の後で説明します。
これらのプログラムは、SunVideo Plus カードが正しく動作しているか確認するのにも役立ちます。
o1k_audrec プログラムは、ファイルにオーディオを記録するための、コマンド行から使用するツールです。
o1k_audrec のコマンド行構文は、以下のとおりです。
hostname% o1k_audrec オプション -o ファイル名 |
o1k_audrec コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
| オプション | 説明と有効な値 |
デフォルト値
|
o1k_audplay プログラムは、オーディオファイルを再生するための、コマンド行から使用するツールです。
o1k_audplay のコマンド行構文は、以下のとおりです。
hostname% o1k_audplay オプション -i ファイル名 |
o1k_audplay コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
|
|
|
|
o1k_audloop プログラムは、オーディオ入力をオーディオ出力にループさせるための、コマンド行から使用するツールです。
o1k_audloop のコマンド行構文は、以下のとおりです。
hostname% o1k_audloop オプション |
o1k_audloop コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
soundtool プログラムは、u-law 形式のオーディオファイル (圧縮されたオーディオファイル) を録音、再生、変更するための GUI ツールです。
hostname% soundtool [-D デバイス] |
下図は、soundtool デモプログラムの画面を示しています。

soundtool は、SUNWaudmo パッケージで配布されるデモプログラムの 1 つです。一般的には、/usr/demo/SOUND/src/soundtool/ にインストールします。soundtool は、libaudio オーディオライブラリおよび複数のシステムコール (開く / 閉じる、読み取り / 書き込み、ioctl、fcntl など) を使用して、サン標準のハードウェアとオーディオデバイスを操作します。SunVideo Plus に付属している soundtool のソースは、デフォルトでは、O1KHOME のサンプル用のサブディレクトリ (通常は、/opt/SUNWo1kp/examples/soundtool) にインストールされます。
SunVideo Plus コントロールパネル (o1k_ctl) を使用して、システムに取り付けられている SunVideo Plus のいろいろなオーディオ / ビデオ属性 (ビデオ / オーディオ入力の選択、オーディオの音量 / 利得、ビデオの明るさ、コントラストなど) の設定を静的および動的に変更することができます。
下図は、SunVideo Plus コントロールパネルの画面を示しています。

各 SunVideo Plus デバイスの設定は、データベースに保管されます。コントロールパネルから選択したデバイスの属性の設定を変更すると、そのデバイスのデータベースが変更されます。SunVideo Plus デバイスを開くと、対応するデータベース内の現在の設定を使用して、デバイスが設定されます。SunVideo Plus が開いている間、コントロールパネルは常に、SunVideo Plus デバイスを使用するプロセスと交信して、動的に設定を変更します。
コントロールパネルには、一部、動的に変更することができない属性があります。そうした属性の設定は、SunVideo Plus デバイスを開いたときにのみ有効になります。コントロールパネル上、それらの属性には、アスタリスク (*) が付いています。
ビデオ方式は、NTSC、PAL、AUTO のいずれかに設定することができます。AUTO が選択されている場合は、SunVideo Plus デバイスを開いたとき、自動的にビデオ方式が検出されます。ただし、自動検出には時間 (最高 1.5 秒) がかかりますから、使用しているビデオ方式がすでに判明している場合は、手動でビデオ方式を選択する方が時間の節約になります。
Query ボタンは、選択した SunVideo Plus デバイスが現在別のプロセスによって開かれているかどうかを動的に調査します。
コントロールパネル上のすべての属性値は、ユーザープログラムから変更することもできます。コントロールパネルが開いているときに別にプロセスによって変更されることがありますから、属性の状態が常に正しいとはかぎらないことに注意してください。コントロールパネルの Update ボタンをクリックすると、コントロールパネルの属性が最新の状態に更新されます。
xil_compress は、H.261 (ビデオ) 圧縮機能が追加された、修正版の XIL サンプルプログラムです。具体的な H.261 コードの変更内容については、ソースコードの注意書を参照してください。SunVideo Plus の SunVideo 互換モードでは、xil_compress デモプログラムの SunVideo 版をそのまま修正なしに実行することができます (SunVideo 版には、H261 は含まれていません)。デフォルトの圧縮率は 2 (-s 2) であり、CIF サイズの画像圧縮になります。QCIF サイズに画像を圧縮するには、-s 4 を使用します。
xil_compress のコマンド行構文は、以下のとおりです。
hostname% xil_compress オプション -o ファイル名 |
xil_compress コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
| 説明と有効な値 | デフォルト値 | |
| -o %s | ||
CIF CellB ビットストリームに圧縮するには、以下のように入力します。
hostname% xil_compress -C CellB -o /tmp/t.clb |
CIF JPEG ビットストリームに圧縮するには、以下のように入力します。
hostname% xil_compress -C Jpeg -o /tmp/t.jpeg |
CIF H261 ビットストリームに圧縮するには、以下のように入力します。
hostname% xil_compress -C H261 -o /tmp/t.h261 |
QCIF H261 ビットストリームに圧縮するには、以下のように入力します。
hostname% xil_compress -C H261 -s 4 -o /tmp/t.h261 |
xil_decompress は、H.261 機能が追加された、修正版の XIL サンプルプログラムです。H.261 の圧縮解除では、SunVideo Plus XIL 画像分子は、デフォルトでは、システムに最初に取り付けられた SunVideo Plus カードを使用し、ハードウェアによって高速に複合化を行います。デフォルト以外の SunVideo Plus デバイスを複合化に使用するためには、明示的に -D オプションを使用する必要があります。
xil_decompress のコマンド行構文は、以下のとおりです。
hostname% xil_decompress オプション -i ファイル名 |
xil_compress コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
| オプション | 説明と有効な値 |
デフォルト値
|
CIF CellB ビットストリームを圧縮解除するには、以下のように入力します。
hostname% xil_decompress -C CellB -s 320 240 -i /tmp/t.clb |
JPEG ビットストリームを圧縮解除するには、以下のように入力します。
hostname% xil_decompress -C Jpeg -i tmp/t.jpeg |
H261 ビットストリームを圧縮解除するには、以下のように入力します。
hostname% xil_decompress -C H261 -i tmp/t.h261 |
システムの 2 枚目の SunVideo Plus カードを使用して H261 ビットストリームを圧縮解除するには、以下のように入力します。
hostname% xil_decompress -C H261 -i tmp/t.h261 -D /dev/o1k1 |
xil_display は、ビデオを取得して表示する、修正版の XIL サンプルプログラムです。
画像の色に影響を与えるビデオ属性 (明るさ、コントラスト、色合いなど) に加えた変更は、コントロールパネルが使用するデータベースにも反映されます。このため、これらの属性のデフォルト値は、最後の行われた設定によって変化します。たとえば、xil_display を実行した後で、明るさの設定を変更し、ビデオアプリケーションを実行すると、その新しい値がデフォルト値になります。
xil_display のコマンド行構文は、以下のとおりです。
hostname% xil_display オプション |
xil_display コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
| 有効なオプション | 説明と有効な値 |
デフォルト値
|
現在の発色数が 24 ビットの場合、カラーマップバージョンオプションは何の働きもしません。8 ビットの発色数では、インストールされているカラーマップはその影響を受けます。XIL 版では、SunVideo Plus は 16 ビットのビデオデータを取得し、そのデータは XIL 画像分子によってソフトウェア的に 8 ビットにディザ処理されます。
hostname% xil_display |
xil_video_broadcast および xil_video_receiver の 2 つのプログラムは、SunVideo Plus カード上で動作する、修正版の XIL サンプルプログラムです。SunVideo Plus の SunVideo 互換モードでは、これらのデモプログラムの SunVideo 版をそのまま修正なしに実行することができます。
xil_video_broadcast のコマンド行構文は、以下のとおりです。
hostname% xil_video_broadcast オプション |
xil_video_broadcast コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
| 有効なオプション | 説明と有効な値 |
デフォルト値
|
xil_video_receiver のコマンド行構文は、以下のとおりです。
hostname% xil_video_receiver オプション |
TABLE 4-9 に、xil_video_receiver コマンドのオプションとデフォルト値を示します。
hostname% xil_video_receiver -C CellB hostname% xil_video_broadcast -C CellB |
xilh_video_broadcast および xilh_video_receiver の 2 つのプログラムは、SunVideo Plus カード上で動作する、H.261 圧縮用の修正版 XIL サンプルプログラムです。
xil_video_broadcast のコマンド行構文は、以下のとおりです。
hostname% xilh_video_broadcast オプション |
xilh_video_broadcast コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
xilh_video_receiver のコマンド行構文は、以下のとおりです。
hostname% xilh_video_receiver オプション |
xilh_video_receiver コマンドのオプションとデフォルト値は、下記の表に示すとおりです。
o1k_conf サンプルプログラムは、XIL およびSunVideo Plus オーディオ API を使用し、C++ で作成されたポイント- ポイントのオーディオ/ ビデオテレビ会議プログラムです。CellB、JPEG、H261 ビデオ形式といろいろなオーディオ形式に対応しています。
hostname% o1k_conf オプション |
o1k_conf コマンドのオプションとデフォルト値は、下記の表に示すとおりです。

このパネルから、オーディオ / ビデオパラメータを設定したり、住所録を使用して、接続するユーザーに関する情報を記録したりすることができます。
住所録を開くには、Address ボタンをクリックします。下図は、住所録パネルを示しています。

ユーザーを追加するには、New ボタンを選択します。住所録で最も重要な情報は、User@Host フィールドです。この情報は、テレビ会議の電話をかけるときに相手に接続するために使用されます。住所録のその他の情報は、省略することができます。ユーザー情報の入力を終えたら、Add ボタンをクリックしてください。(Add ボタンは、New ボタンを選択した後にのみ表示されます。) 住所録を保存するには、Save in File メニューを選択します。テレビ会議する相手を選択するには、リストからその相手を選択し、Done ボタンをクリックします。ポップアップウィンドウが閉じて、メインパネル (図 4-4) に選択した相手のユーザー@ホスト名が表示されます。
テレビ会議では、呼び出さされた側は呼び出した側の設定の通知を受けますから、テレビ会議のメインパネルの設定は、呼び出す側のユーザーだけ行う必要があります。o1k_conf のデフォルトの設定は、以下のとおりです。
テレビ会議の設定を変更するには、Setup をクリックし、メニューおよびポップアップウィンドウに示される指示に従って操作を行います。
テレビ会議に呼び出されると、呼び出した相手と呼び出しパラメータの情報を示すポップアップウィンドウが開き (下図を参照)、このウィンドウから会議に参加するかどうか決定することができます。

テレビ会議中、メインパネルの View を選択することにより、オーディオおよびビデオのビットレート、フレームレート、ネットワークパケットの稼働状況などの状態情報を表示することができます。続いて、A/V Panel を選択すると、オーディオ / ビデオパネルでオーディオおよびビデオパラメータの設定を変更することができます。
テレビ会議中は、画面に Local View と Far View (会議の相手の) の 2 つのウィンドウが表示されます。下図は、2 つのウィンドウの表示例です。

H.261 を使用している場合、Far View ウィンドウ内に画像の中に別の画像を表示することができます。その場合、自分の画像はウィンドウの左上に表示されます。CPU の負荷を減らすには、ローカルビューをアイコンにします。H.261 を使用したテレビ会議では特に、アイコン化することをお薦めします。
テレビ会議を終了したら、メインパネルの HangUp ボタンをクリックしてください。HangUp ボタンは、呼び出しを行った後で表示されます。