CRI Sofdec  Last Updated: 2024-09-25 20:36 p

データ構造

struct  CriManaProcessorConfig_PC
 デコード用プロセッサーコンフィグ構造体 [詳解]
 
struct  CriManaLibConfig_PC
 Manaライブラリ初期化パラメーター [詳解]
 
struct  CriManaMediaFoundationH264DecoderConfig_PC
 H.264デコーダー用コンフィグ構造体 [詳解]
 

マクロ定義

#define criMana_SetDefaultProcessorConfig_PC(p_config)
 デコード用プロセッサーコンフィグ構造体にデフォルト値をセット [詳解]
 
#define criMana_SetDefaultLibConfig_PC(p_config)
 ライブラリ初期化用コンフィグ構造体にデフォルト値をセット [詳解]
 
#define criMana_SetDefaultMediaFoundationH264DecoderConfig_PC(p_config)
 MediaFoundation H.264ムービー用デコーダーコンフィグ構造体にデフォルト値をセット [詳解]
 

列挙型

enum  CriManaOutputDataType_PC
 PC固有出力データ形式 [詳解]
 

関数

CriSint32 criMana_CalculateLibWorkSize_PC (const CriManaLibConfig_PC *config)
 ライブラリ初期化用ワークサイズ計算関数 (PC固有機能つき) [詳解]
 
void criMana_Initialize_PC (const CriManaLibConfig_PC *config, void *work, CriSint32 work_size)
 ライブラリ初期化関数 (PC固有機能つき) [詳解]
 
void criMana_Finalize_PC (void)
 ライブラリの終了処理 (PC固有機能つき) [詳解]
 
void criMana_SetDecodeThreadPriority_PC (int prio)
 デコードマスタースレッドのプライオリティ変更 [詳解]
 
void criMana_SetupMediaFoundationH264Decoder_PC (const CriManaMediaFoundationH264DecoderConfig_PC *config, void *work, CriSint32 work_size)
 H.264デコーダー初期化パラメーターのセットアップ関数 [詳解]
 
CriManaOutputDataType_PC criMana_ConvertToOutputDataType_PC (CriManaOutputDataType output_data_type)
 PC固有出力データ形式への変換関数 [詳解]
 

詳解

マクロ定義詳解

◆ criMana_SetDefaultProcessorConfig_PC

#define criMana_SetDefaultProcessorConfig_PC (   p_config)
値:
{\
(p_config)->num_threads = 0; \
(p_config)->affinity_masks = NULL; \
(p_config)->priority = -1; \
}

デコード用プロセッサーコンフィグ構造体にデフォルト値をセット

引数
[out]p_config
説明:
criMana_Initialize_PC 関数に設定するプロセッサーコンフィグ構造体( ::CriManaProcessorConfig_PC ) に デフォルトの値をセットします。
参照
CriManaProcessorConfig_PC

◆ criMana_SetDefaultLibConfig_PC

#define criMana_SetDefaultLibConfig_PC (   p_config)
値:
{\
criMana_SetDefaultLibConfig(&(p_config)->mana); \
criMana_SetDefaultProcessorConfig_PC(&(p_config)->processor); \
}

ライブラリ初期化用コンフィグ構造体にデフォルト値をセット

引数
[out]p_config初期化用コンフィグ構造体へのポインタ
説明:
criMana_Initialize_PC 関数に設定するコンフィグ構造体( ::CriManaLibConfig_PC ) に デフォルトの値をセットします。
参照
CriManaLibConfig_PC

◆ criMana_SetDefaultMediaFoundationH264DecoderConfig_PC

#define criMana_SetDefaultMediaFoundationH264DecoderConfig_PC (   p_config)

MediaFoundation H.264ムービー用デコーダーコンフィグ構造体にデフォルト値をセット

引数
[in]p_configMediaFoundation H.264ムービー用デコーダーコンフィグ構造体へのポインタ
説明:
criMana_SetupMediaFoundationH264Decoder_PC 関数に設定するデコーダーコンフィグ構造体( ::CriManaMediaFoundationH264DecoderConfig_PC ) に デフォルトの値をセットします。
参照
CriManaMediaFoundationH264DecoderConfig_PC

列挙型詳解

◆ CriManaOutputDataType_PC

PC固有出力データ形式

説明:
PC固有の出力データ形式を示します。
参照
criMana_ConvertToOutputDataType_PC, CriManaOutputDataType, CriManaFrameInfo, criManaPlayer_ReferFrame

関数詳解

◆ criMana_CalculateLibWorkSize_PC()

CriSint32 criMana_CalculateLibWorkSize_PC ( const CriManaLibConfig_PC config)

ライブラリ初期化用ワークサイズ計算関数 (PC固有機能つき)

引数
[in]config初期化用コンフィグ構造体
戻り値
CriSint32 ライブラリワーク領域サイズ
呼び出し条件:
スレッドセーフです。
説明:
PC固有機能を有効にしたManaライブラリを使用するために必要なワーク領域のサイズを取得します。
ライブラリが必要とするワーク領域のサイズは、ライブラリの初期化コンフィグ構造体の 内容によって変化します。
引数 config の情報は、関数内でのみ参照されます。関数実行後に config の領域を解放 しても問題ありません。

◆ criMana_Initialize_PC()

void criMana_Initialize_PC ( const CriManaLibConfig_PC config,
void *  work,
CriSint32  work_size 
)

ライブラリ初期化関数 (PC固有機能つき)

引数
[in]configPC固有パラメーターつき初期化用コンフィグ構造体
[in]workアプリ側で確保済みのワーク領域のアドレス (内部でアライン調整する)
[in]work_sizeワーク領域のサイズ (=criMana_CalculateLibWorkSizeの戻り値)
呼び出し条件::
CriAtomExライブラリの初期化後、かつ criManaPlayer_Create 関数の前に呼んでください。

スレッドセーフではありません。
説明:
Manaライブラリの初期化をします。
PC固有でマルチコアを使ったデコード制御を行ないたい場合、::criMana_Initialize 関数の変わりに 本関数を実行してください。渡されたコンフィグに従ってマルチコアの設定を行ったあと、内部で criMana_Initialize 関数を呼び出します。
ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。

workにNULL、work_sizeに0を指定した場合は、::criMana_SetUserAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意
本関数を実行後、必ず対になる criMana_Finalize_PC 関数を実行してください。
また、 criMana_Finalize_PC 関数を実行するまでは、本関数を再度実行しないでください。
参照
criMana_Finalize_PC

◆ criMana_Finalize_PC()

void criMana_Finalize_PC ( void  )

ライブラリの終了処理 (PC固有機能つき)

呼び出し条件:
全てのハンドルが STOP or PLAYEND 状態であること
AtomExライブラリ終了関数の前に本関数を呼び出してください。

スレッドセーフではありません。
説明:
Manaライブラリの終了処理を行います。
参照
criMana_Initialize_PC

◆ criMana_SetDecodeThreadPriority_PC()

void criMana_SetDecodeThreadPriority_PC ( int  prio)

デコードマスタースレッドのプライオリティ変更

引数
[in]prioスレッドプライオリティ
呼び出し条件:
マルチスレッドモデルでManaライブラリの初期化した後に本関数を実行してください。
説明:
デコード処理を行うスレッドのプライオリティを変更します。
デフォルト状態(本関数を実行しない場合)では、 デコード処理のスレッドプライオリティは、THREAD_PRIORITY_BELOW_NORMAL に設定されています。
注意
本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( CRIMANA_THREAD_MODEL_MULTI )に設定した場合にのみ効果を発揮します。
シングルスレッドモデルでライブラリを初期化した状態、もしくはライブラリ初期化前に 本関数を呼び出した場合は何も処理を行いません。
参照
criMana_Initialize, criMana_Initialize_PC

◆ criMana_SetupMediaFoundationH264Decoder_PC()

void criMana_SetupMediaFoundationH264Decoder_PC ( const CriManaMediaFoundationH264DecoderConfig_PC config,
void *  work,
CriSint32  work_size 
)

H.264デコーダー初期化パラメーターのセットアップ関数

引数
[in]configMediaFoundation H.264デコーダー初期化用コンフィグ構造体
[in]workアプリ側で確保済みのワーク領域のアドレス (内部でアライン調整する)
[in]work_sizeワークサイズ
呼び出し条件:
スレッドセーフではありません。
criMana_Initialize_PC 関数よりも前に呼び出してください。
本関数に対する終了処理は不要です。
本関数を使用した場合、下記ライブラリファイルへのリンクが必要です。
  • Mfplat.lib
  • mfuuid.lib
    アプリ側で確保済みのワーク領域、ワークサイズ(work、work_size)への指定には未対応で、
    関数内部ではこれらの引数は使用しておりません。それぞれNULL、0を指定してご使用下さい。
説明:
H.264ムービー再生を行うための、H.264デコードライブラリの初期化パラメーターを設定します。

実際のH.264デコーダーライブラリの初期化は::criMana_Initialize_PC関数の呼び出し時になります。
引数 config の情報は、関数内でのみ参照されます。関数実行後に config の領域を解放 しても問題ありません。
configにNULLを指定した場合はH.264デコーダー用コンフィグ構造体( ::CriManaMediaFoundationH264DecoderConfig_PC ) のデフォルトの値をセットします。
参照
CriManaMediaFoundationH264DecoderConfig_PC, criMana_Initialize_PC

◆ criMana_ConvertToOutputDataType_PC()

CriManaOutputDataType_PC criMana_ConvertToOutputDataType_PC ( CriManaOutputDataType  output_data_type)

PC固有出力データ形式への変換関数

引数
[in]output_data_type機種共通出力データ形式
呼び出し条件:
スレッドセーフです。
説明:
CriManaOutputDataType の CRIMANA_OUTPUT_DATA_TYPE_HW1 から CRIMANA_OUTPUT_DATA_TYPE_HW4 を PC専用に定義された出力データ形式へ変換します。
それ以外の CriManaOutputDataType の値を入力に指定した場合は CRIMANA_OUTPUT_DATA_TYPE_PC_UNDEFINED を返します。
参照
CriManaOutputDataType, CriManaFrameInfo, criManaPlayer_ReferFrame