next up previous
Next: MalibBuffer Up: 各クラスのAPI詳細 Previous: ファイル一覧

Subsections

MalibBttv

Video4Linuxを利用したビデオキャプチャデバイスへのアダプタを提供する。

記述ファイル

bttv.c、bttv.h

マクロ定義

ビデオキャプチャ設定のMAlibにおける標準として以下のマクロが定義される。

MALIB_STD_V4L_DEVICE
 
ビデオキャプチャデバイス
MALIB_STD_V4L_VIDEOMODE
 
ビデオ形式
MALIB_STD_V4L_PALETTE
 
ビデオパレット
MALIB_STD_V4L_CHANNEL
 
ビデオ入力チャネル
MALIB_STD_V4L_WIDTH
 
キャプチャ画像のサイズ(幅)
MALIB_STD_V4L_HEIGHT
 
キャプチャ画像のサイズ(高さ)
MALIB_STD_V4L_DEPTH
 
キャプチャ画像の色深度
MALIB_STD_V4L_VIDEODEVNAME_SIZE
 
ビデオデバイス名の長さ

メンバ変数

MalibBttvに追加されるメンバ変数は以下のとおりである。
vch
 
ビデオチャンネル構造体(Video4Linux で定義される video_channel)
vmbuf
 
ビデオメモリバッファ構造体(Video4Linux で定義される video_mbuf)
vmmap
 
ビデオメモリマップ構造体(Video4Linux で定義される video_mmap)
buf
 
メモリマップ領域へのポインタ
fd
 
ビデオキャプチャデバイスのファイル記述子
device
 
ビデオキャプチャデバイス名
capture_hook
 
キャプチャ時にフックされる関数へのポインタ
capture_hook_arg
 
上記関数の引数へのポインタ

公開関数

malib_bttv_new ()
 
コンストラクタ
malib_bttv_new_with_device (const unsigned char* device)
 
コンストラクタ。引数でビデオキャプチャデバイスを指定することが可能
malib_bttv_new_with_size (unsigned int width, unsigned int height)
 
コンストラクタ。引数でキャプチャ画像の幅と高さを指定することが可能。 キャプチャデバイスの能力を越える範囲の値を指定した場合はエラーとなる
malib_bttv_new_with_config (const unsigned char* device,
unsigned int width, unsigned int height, unsigned int format,
unsigned int channel, unsigned int videomode)
 
コンストラクタ。ビデオキャプチャデバイス、キャプチャ画像の幅、高さ、 ビデオデータ形式(RGB/GREY/BWなどカラーモデルで指定)、 キャプチャ対象チャネル、ビデオモード(NTSC/PAL/SECAMなど Video4Linux のAPIを利用して指定)を引数で設定することが可能
malib_bttv_start_capture (MalibBttv* bttv)
 
ビデオキャプチャを開始する。実際のキャプチャ画像は接続した ホルダに対してmalib_holder_increment_frame()を呼ぶことで 書き出されるが、ビデオキャプチャ準備を整えた後にキャプチャ画像を 得る前に、必ず1回、この関数を呼び出しておく必要がある
malib_bttv_set_hook (MalibBttv* bttv,
void (* hook)(void* arg), void* arg)
 
キャプチャ時にフックされる関数をセットする。 NULL を指定した場合にはキャプチャ時に関数は実行されない。 標準では関数はフックされない状態とされる

非公開関数

malib_bttv_delete (MalibBttv* bttv)
 
デストラクタ
malib_bttv_init (MalibBttv* bttv, unsigned int width,
unsigned int height, unsigned int format,
unsigned int channel, unsigned int videomode)
 
引数で与える設定のもと、ビデオキャプチャデバイスの初期化を行なう
malib_bttv_convert_colorinfo (unsigned int format,
unsigned int* colormodel, unsigned int* depth)
 
Video4Linux API で指定されるビデオデータ形式から、 MAlib で用いるカラーモデルおよび色深度に変換する
malib_bttv_swap_rb_and_copy (unsigned int i,
unsigned char* src, int* dest)
 
Video4Linux で得られるカラー画像のキャプチャデータは BGRの順に並んで格納されるので、並び順がRGBとなるよう 入れ替えつつ、指定のバッファにコピーする
malib_bttv_capture_next_frame (MalibBttv* bttv, MalibFrame* frame)
 
フレーム画像を更新する。リファレンスカウンタの同期チェックに より、実際のキャプチャは行なわれない場合もある
malib_bttv_write_frame_data (MalibBttv* bttv, MalibFrame* frame)
 
ビデオキャプチャデバイスにメモリマップされた キャプチャ済フレームバッファ領域から指定のフレームデータ領域へ の書き込みを行なう


next up previous
Next: MalibBuffer Up: 各クラスのAPI詳細 Previous: ファイル一覧
Jun IIO
2001-06-14