next up previous
Next: MalibFrame Up: 各クラスのAPI詳細 Previous: MalibDelay

Subsections

MalibFilter

各種の画像処理を実装するフィルタに関する抽象クラスである。

記述ファイル

filter.c、filter.h

マクロ定義

MALIB_FILTER_NEW(type, prev)
 
フィルタの生成を簡潔に記述するための汎用マクロ定義。 typeには作成したいフィルタを記述し、prevには前段の フィルタへのポインタを代入する。ただし、間に生成される バッファはMalibPlainBufに限定されるため、 それ以外のバッファを要求する場合には利用できない
MALIB_FILTER_NEW_X(type, extention, prev, arg)
 
フィルタの生成を簡潔に記述するための汎用マクロ定義。 typeには作成したいフィルタを記述し、prevには前段の フィルタへのポインタを代入する。また、extentionwith_argなどと記述することにより、引数をとる コンストラクタの一部にも対応することができる。argには その引数を記述する
MALIB_FILTER_GENERIC_NEW(klass, vtbl, accepts)
 
フィルタの各サブクラスの定義において、コンストラクタを 簡潔に記述することを目的とした汎用マクロ定義。このマクロは クラスの作成者に対して用意されているもので、ユーザが用いる マクロではない。klassには作成したいクラス名、vtblは そのクラスが定義するバーチャル関数テーブル、 acceptsにはそのフィルタが許容するデータ種別を 表すフラグを記述する
MALIB_FILTER_GENERIC_NEW_0(klass, vtbl, accepts, retptr)
 
上記と同様であるが、クラスの作成と同時にメンバ変数に対して 初期設定を行ないたい場合にこのマクロを利用する。最後の retptrには作成したいクラス型のポインタ変数を 渡しておくと、マクロ実行後に作成途中のデータへのポインタが 確保される。その後、メンバ変数の初期設定などを実施したのち、 ユーザに対してそのポインタを返すようにする
MALIB_FILTER_GENERIC_NEW_WITH_BUF
(klass, creator, setbuffer, buf)
 
入力バッファを引数にとるようなコンストラクタを簡潔に記述 するためのマクロ定義。klassには作成したいクラス名、 creatorはバッファを引数に取らない単純なコンストラクタ名、 setbufferはバッファをセットする関数名、 bufは入力バッファへのポインタを記述する。 本マクロ定義もクラス実装者向けに用意されているマクロである
MALIB_FILTER_ACCEPT_ALL
 
入力データの種別として全てを許容する場合のフラグ。本 マクロ定義を利用しない場合は、 MalibFrameで定義するカラーモデルの定義を用 いる
MALIB_FILTER_NOT_ACCEPTABLE(filter, colormodel)
 
filtercolormodelのデータ形式を許容するかどう かを判定する
MALIB_FILTER_VFUNC_TBL(obj)
 
フィルタクラスのバーチャル関数テーブルに変換する

メンバ変数

MalibFilterに追加されるメンバ変数は以下のとおりである。
buf
 
フィルタに入力するバッファへのポインタ
acceptable
 
許容できるデータ形式を示すフラグ

公開関数

malib_filter_set_buffer (MalibFilter* filter, MalibBuffer* buf)
 
入力バッファを設定する。サブクラスから呼ばれるべき関数であり、 ユーザがこの関数を直接呼んではいけない
malib_filter_set_buffer_with_frame (MalibFilter* filter,
MalibBuffer* buf, MalibFrame* frame_info)
 
入力バッファを設定する。また、引数で新たなサンプルフレーム情報を 設定する。本関数は、データ形式やフレームのサイズが変化するため サンプルフレーム情報が変化するような場合に用いる
malib_filter_set_frame_info (MalibFilter* filter,
MalibFrame* frame_info)
 
サンプルフレーム情報をセットする
malib_filter_calc_output_image_size (MalibFilter* filter)
 
フィルタが出力するフレームが持つ 実データを格納するメモリ領域に必要なサイズを返す
malib_filter_set_acceptable (MalibFilter* filter, int acceptable)
 
フィルタが入力するデータとして許容する形式を設定する
malib_filter_delete (MalibFilter* filter)
 
デストラクタ
malib_filter_set_buffer_with_colormodel (MalibFilter* filter,
MalibBuffer* buf, int colormodel)
 
入力バッファを設定する。引数として与えるカラーモデルの フレームを新規に作成し、サンプルフレーム情報として設定する
malib_filter_set_buffer_with_colormodel_and_depth (MalibFilter* filter,
MalibBuffer* buf, int colormodel, int depth)
 
入力バッファを設定する。引数として与えるカラーモデルおよび 色深度を持つフレームを新規に作成し、 サンプルフレーム情報として設定する

非公開関数

malib_filter_get_previous_frame_info (MalibFilter* filter)
 
このフィルタに入力として接続されているバッファに対し、 さらにその入力となるソースが生成するサンプルフレーム情報への ポインタを取得する



Jun IIO
2001-06-14