INPUT_PLUGIN_TABLE

Struct INPUT_PLUGIN_TABLE 

Source
#[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>

入力ファイルをオープンする関数へのポインタ

§Args

  • file: ファイル名

§Returns

INPUT_HANDLE

§func_close: Option<extern "C" fn(ih: INPUT_HANDLE) -> bool>

入力ファイルをクローズする関数へのポインタ

§Args

  • ih: 入力ファイルハンドル

§Returns

trueなら成功

§func_info_get: Option<extern "C" fn(ih: INPUT_HANDLE, iip: *mut INPUT_INFO) -> bool>

入力ファイルの情報を取得する関数へのポインタ

§Args

  • ih: 入力ファイルハンドル
  • iip: 入力ファイル情報構造体へのポインタ

§Returns

trueなら成功

§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

Source

pub const FLAG_VIDEO: i32 = 1i32

画像をサポートする

Source

pub const FLAG_AUDIO: i32 = 2i32

音声をサポートする

Source

pub const FLAG_CONCURRENT: i32 = 16i32

画像・音声データの同時取得をサポートする ※同一ハンドルで画像と音声の取得関数が同時に呼ばれる ※異なるハンドルで各関数が同時に呼ばれる

Source

pub const FLAG_MULTI_TRACK: i32 = 32i32

マルチトラックをサポートする ※func_set_track()が呼ばれるようになる

Source

pub const TRACK_TYPE_VIDEO: i32 = 0i32

Source

pub const TRACK_TYPE_AUDIO: i32 = 1i32

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.