#[repr(C)]pub struct INPUT_PLUGIN_TABLE {
pub flag: i32,
pub name: LPCWSTR,
pub filefilter: LPCWSTR,
pub information: LPCWSTR,
pub func_open: Option<unsafe extern "C" fn(file: LPCWSTR) -> INPUT_HANDLE>,
pub func_close: Option<extern "C" fn(ih: INPUT_HANDLE) -> bool>,
pub func_info_get: Option<extern "C" fn(ih: INPUT_HANDLE, iip: *mut INPUT_INFO) -> bool>,
pub func_read_video: Option<extern "C" fn(ih: INPUT_HANDLE, frame: i32, buf: *mut c_void) -> i32>,
pub func_read_audio: Option<extern "C" fn(ih: INPUT_HANDLE, start: i32, length: i32, buf: *mut c_void) -> i32>,
pub func_config: Option<extern "C" fn(hwnd: HWND, dll_hinst: HINSTANCE) -> bool>,
pub func_set_track: Option<extern "C" fn(ih: INPUT_HANDLE, track_type: i32, track_index: i32) -> i32>,
pub func_time_to_frame: Option<extern "C" fn(ih: INPUT_HANDLE, time: f64) -> i32>,
}Expand description
入力プラグイン構造体
Fields§
§flag: i32フラグ
name: LPCWSTRプラグインの名前
filefilter: LPCWSTR入力ファイルフィルタ
information: LPCWSTRプラグインの情報
func_open: Option<unsafe extern "C" fn(file: LPCWSTR) -> INPUT_HANDLE>§func_close: Option<extern "C" fn(ih: INPUT_HANDLE) -> bool>§func_info_get: Option<extern "C" fn(ih: INPUT_HANDLE, iip: *mut INPUT_INFO) -> bool>§func_read_video: Option<extern "C" fn(ih: INPUT_HANDLE, frame: i32, buf: *mut c_void) -> i32>画像データを読み込む関数へのポインタ
§Args
ih: 入力ファイルハンドルframe: 読み込むフレーム番号buf: データを読み込むバッファへのポインタ
§Returns
読み込んだデータサイズ
func_read_audio: Option<extern "C" fn(ih: INPUT_HANDLE, start: i32, length: i32, buf: *mut c_void) -> i32>音声データを読み込む関数へのポインタ
§Args
ih: 入力ファイルハンドルstart: 読み込み開始サンプル番号length: 読み込むサンプル数buf: データを読み込むバッファへのポインタ
§Returns
読み込んだサンプル数
func_config: Option<extern "C" fn(hwnd: HWND, dll_hinst: HINSTANCE) -> bool>入力設定のダイアログを要求された時に呼ばれる関数へのポインタ (nullなら呼ばれません)
§Args
hwnd: ウィンドウハンドルdll_hinst: インスタンスハンドル
§Returns
trueなら成功
func_set_track: Option<extern "C" fn(ih: INPUT_HANDLE, track_type: i32, track_index: i32) -> i32>入力ファイルの読み込み対象トラックを設定する関数へのポインタ (FLAG_MULTI_TRACKが有効の時のみ呼ばれます)
func_open()の直後にトラック数取得、トラック番号設定が呼ばれます。※オープン直後の設定以降は呼ばれません
§Args
ih: 入力ファイルハンドルtrack_type: メディア種別 ( 0 = 映像 / 1 = 音声 )track_index: トラック番号 ( -1 が指定された場合はトラック数の取得 )
§Returns
設定したトラック番号 (失敗した場合は -1 を返却) トラック数の取得の場合は設定可能なトラックの数 (メディアが無い場合は 0 を返却)
§See Also
INPUT_PLUGIN_TABLE::FLAG_MULTI_TRACK
INPUT_PLUGIN_TABLE::TRACK_TYPE_VIDEO
INPUT_PLUGIN_TABLE::TRACK_TYPE_AUDIO
func_time_to_frame: Option<extern "C" fn(ih: INPUT_HANDLE, time: f64) -> i32>映像の時間から該当フレーム番号を算出する時に呼ばれる関数へのポインタ (FLAG_TIME_TO_FRAMEが有効の時のみ呼ばれます)
画像データを読み込む前に呼び出され、結果のフレーム番号で読み込むようになります。
§Remarks
FLAG_TIME_TO_FRAMEを利用する場合のINPUT_INFOのrate,scale情報は平均フレームレートを表す値を設定してください
§Args
ih: 入力ファイルハンドルtime: 映像の時間(秒)
§Returns
映像の時間に対応するフレーム番号
Implementations§
Source§impl INPUT_PLUGIN_TABLE
impl INPUT_PLUGIN_TABLE
Sourcepub const FLAG_VIDEO: i32 = 1i32
pub const FLAG_VIDEO: i32 = 1i32
画像をサポートする
Sourcepub const FLAG_AUDIO: i32 = 2i32
pub const FLAG_AUDIO: i32 = 2i32
音声をサポートする
Sourcepub const FLAG_CONCURRENT: i32 = 16i32
pub const FLAG_CONCURRENT: i32 = 16i32
画像・音声データの同時取得をサポートする ※同一ハンドルで画像と音声の取得関数が同時に呼ばれる ※異なるハンドルで各関数が同時に呼ばれる
Sourcepub const FLAG_MULTI_TRACK: i32 = 32i32
pub const FLAG_MULTI_TRACK: i32 = 32i32
マルチトラックをサポートする ※func_set_track()が呼ばれるようになる