CRI Sofdec  Last Updated: 2024-04-17 11:21 p

データ構造

struct  CriManaLibConfig
 Manaライブラリ初期化パラメーター [詳解]
 
struct  CriManaPlaybackCommonParams
 再生ワーク用基本パラメーター [詳解]
 

マクロ定義

#define CRIMANA_MAX_MOVIE_HEADER_SIZE   (16 * 1024)
 ムービーファイルの解析に必要な最大サイズ [詳解]
 
#define criMana_SetDefaultLibConfig(p_config)
 ライブラリ初期化用コンフィグ構造体にデフォルト値をセット [詳解]
 
#define CriManaMetaMallocFunc   CriManaMallocFunc
 メタデータワーク用メモリ確保関数 [詳解]
 
#define CriManaMetaFreeFunc   CriManaFreeFunc
 メタデータワーク用メモリ解放関数 [詳解]
 

型定義

typedef void *(* CriManaMallocFunc) (void *obj, CriUint32 size)
 メモリ確保関数 [詳解]
 
typedef void(* CriManaFreeFunc) (void *obj, void *mem)
 メモリ解放関数 [詳解]
 

列挙型

enum  CriManaThreadModel { CRIMANA_THREAD_MODEL_MULTI = 0 , CRIMANA_THREAD_MODEL_SINGLE = 1 , CRIMANA_THREAD_MODEL_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 スレッドモデル [詳解]
 
enum  CriManaDecodeMode { CRIMANA_DECODE_MODE_NORMAL = 0 , CRIMANA_DECODE_MODE_B_SKIP = 1 , CRIMANA_DECODE_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 デコーダー動作モード [詳解]
 

関数

const CriChar8 * criMana_GetLibraryVersionString (void)
 Manaライブラリのバージョン番号やビルド情報を返します。 [詳解]
 
CriBool criMana_AnalyzeMovieHeader (void *movie_header_ptr, CriUint32 movie_header_size, CriManaMovieInfo *mvinf)
 ムービーファイルのヘッダーを解析し、ムービー情報を取得します。 [詳解]
 
void criMana_SetUserAllocator (CriManaMallocFunc malloc_func, CriManaFreeFunc free_func, void *obj)
 ユーザーアロケーターの登録 [詳解]
 
CriSint32 criMana_CalculateLibWorkSize (const CriManaLibConfig *config)
 ライブラリ初期化用ワーク領域サイズの計算 [詳解]
 
void criMana_Initialize (const CriManaLibConfig *config, void *work, CriSint32 work_size)
 ライブラリの初期化 [詳解]
 
void criMana_InitializeFrameARGB32 (void)
 フレーム変換処理の初期化 (32bit ARGB8888形式) [詳解]
 
void criMana_Finalize (void)
 ライブラリの終了処理 [詳解]
 
CriBool criMana_IsInitialized (void)
 ライブラリ初期化状態の取得 [詳解]
 
void criMana_ExecuteMain (void)
 サーバー処理の実行 [詳解]
 
void criMana_SyncMasterTimer (void)
 マスタータイマーへの同期 [詳解]
 
void criMana_AdvanceManualTimer (void)
 マニュアルタイマーの時刻を進める [詳解]
 
void criMana_ExecuteVideoProcess (void)
 ビデオのデコード(全ハンドル一括) [詳解]
 
void criMana_SetDecodeSkipFlag (CriBool flag)
 デコードスキップフラグの設定(全ハンドル一括) [詳解]
 
CriBool criMana_GetDecodeSkipFlag (void)
 デコードスキップフラグの取得(全ハンドル一括) [詳解]
 
void criMana_SetAllPauseFlag (CriBool flag)
 全体ポーズの設定(全ハンドル一括) [詳解]
 
CriBool criMana_GetAllPauseFlag (void)
 全体ポーズフラグの取得 [詳解]
 
void criMana_Lock (void)
 デコード処理の割り込みを防止 [詳解]
 
void criMana_Unlock (void)
 デコード処理の割り込み防止を解除 [詳解]
 
void criMana_UseStreamerManager (CriBool flag)
 ストリーミング管理モジュールを使用するかどうかの制御フラグをセットする [詳解]
 
CriBool criMana_IsStreamerManagerUsed (void)
 ストリーミング管理モジュールを使用するかどうかの制御フラグの取得 [詳解]
 
void criMana_EnumeratePlayers (CriManaPlayerCbFunc func, void *obj)
 プレーヤーの列挙 [詳解]
 
void criManaPlayer_SetExtDecoderWorkAllocator (CriManaPlayerHn player, CriManaExtDecoderWorkMallocFunc allocfunc, CriManaExtDecoderWorkFreeFunc freefunc, void *obj)
 拡張デコーダーワーク確保用のコールバックの登録 [詳解]
 
void criManaPlayer_SetSoundCategoryByName (CriManaPlayerHn player, CriUint32 track_id, const CriChar8 *category_name)
 オーディオトラックのカテゴリの設定 [詳解]
 
void criManaPlayer_UnsetSoundCategory (CriManaPlayerHn player, CriUint32 track_id)
 オーディオトラックのカテゴリの削除 [詳解]
 
void criMana_SetAudioLatencyLegacy (CriBool sw)
 旧音声遅延に戻す設定 [詳解]
 
void criMana_SetAmbisonicsAudioFlag (CriBool flag)
 Ambisonics音声再生フラグの設定 [詳解]
 
CriBool criMana_GetAmbisonicsAudioFlag (void)
 Ambisonics音声再生フラグの取得 [詳解]
 

詳解

マクロ定義詳解

◆ CRIMANA_MAX_MOVIE_HEADER_SIZE

#define CRIMANA_MAX_MOVIE_HEADER_SIZE   (16 * 1024)

ムービーファイルの解析に必要な最大サイズ

説明:
criMana_AnalyzeMovieHeader でムービーファイルの解析を行う際に必要なデータサイズです。
エンコード時の条件によって実際のヘッダーサイズは変動しますが、この値を超えることはありません。
参照
criMana_AnalyzeMovieHeader

◆ criMana_SetDefaultLibConfig

#define criMana_SetDefaultLibConfig (   p_config)
値:
{\
(p_config)->max_decoder_handles = 4;\
(p_config)->thread_model = CRIMANA_THREAD_MODEL_MULTI;\
(p_config)->version = CRIMANA_VERSION;\
(p_config)->version_string = CRIMANA_VER_NAME;\
}
@ CRIMANA_THREAD_MODEL_MULTI
Definition: cri_mana.h:339

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

引数
[out]p_config初期化用コンフィグ構造体へのポインタ
説明:
criMana_Initialize 関数に設定するコンフィグ構造体( ::CriManaLibConfig ) に デフォルトの値をセットします。
備考:
各機種固有の関数が存在する場合があります。詳細は機種別のリファレンスを参照してください。
参照
CriManaLibConfig

◆ CriManaMetaMallocFunc

#define CriManaMetaMallocFunc   CriManaMallocFunc

メタデータワーク用メモリ確保関数

説明:
メタデータワーク領域を確保するためのインターフェイスです。
参照
criManaPlayer_SetMetaDataWorkAllocator

◆ CriManaMetaFreeFunc

#define CriManaMetaFreeFunc   CriManaFreeFunc

メタデータワーク用メモリ解放関数

説明:
メタデータワーク領域を解放するためのインターフェイスです。
参照
criManaPlayer_SetMetaDataWorkAllocator

型定義詳解

◆ CriManaMallocFunc

typedef void*( * CriManaMallocFunc) (void *obj, CriUint32 size)

メモリ確保関数

引数
[in]objユーザー指定オブジェクト
[in]size要求メモリサイズ(バイト単位)
戻り値
void* 確保したメモリのアドレス(失敗時はNULL)
説明:
メモリ確保関数登録用のインターフェイスです。
CRI Manaライブラリがライブラリ内で行なうメモリ確保処理を、 ユーザー独自のメモリ確保処理に置き換えたい場合に使用します。
備考:
コールバック関数が実行される際には、sizeに必要とされるメモリのサイズがセット されています。
コールバック関数内でsize分のメモリを確保し、確保したメモリのアドレスを 戻り値として返してください。
尚、引数の obj には、 criMana_SetUserAllocator 関数で登録したユーザー指定 オブジェクトが渡されます。
メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを criMana_SetUserAllocator 関数の引数にセットしておき、 本コールバック関数の引数を経由して参照してください。
注意
メモリの確保に失敗した場合、エラーコールバックが返されたり、呼び出し元の関数が 失敗する可能性がありますのでご注意ください。
参照
CriManaFreeFunc, criMana_SetUserAllocator

◆ CriManaFreeFunc

typedef void( * CriManaFreeFunc) (void *obj, void *mem)

メモリ解放関数

引数
[in]objユーザー指定オブジェクト
[in]mem解放するメモリアドレス
戻り値
なし
説明:
メモリ解放関数登録用のインターフェイスです。
CRI Manaライブラリ内がライブラリ内で行なうメモリ解放処理を、 ユーザー独自のメモリ解放処理に置き換えたい場合に使用します。
備考:
コールバック関数が実行される際には、memに解放すべきメモリのアドレスがセット されています。
コールバック関数内でmemの領域のメモリを解放してください。 尚、引数の obj には、::criMana_SetUserAllocator 関数で登録したユーザー指定 オブジェクトが渡されます。
メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを criMana_SetUserAllocator 関数の引数にセットしておき、 本コールバック関数の引数を経由して参照してください。
参照
CriManaMallocFunc, criMana_SetUserAllocator

列挙型詳解

◆ CriManaThreadModel

スレッドモデル

説明:
CRI Manaライブラリがどのようなスレッドモデルで動作するかを表します。
参照
CriManaLibConfig, criMana_CalculateLibWorkSize, criMana_Initialize
列挙値
CRIMANA_THREAD_MODEL_MULTI 

マルチスレッド動作モデル。
ライブラリは内部でスレッドを作成し、マルチスレッドにて動作します。

CRIMANA_THREAD_MODEL_SINGLE 

シングルスレッド動作モデル。
ライブラリは内部でスレッドを作成しません。

◆ CriManaDecodeMode

デコーダー動作モード

説明:
デコーダーの動作モードを示します
参照
criManaPlayer_SetDecodeMode
列挙値
CRIMANA_DECODE_MODE_NORMAL 

通常デコード処理モード

説明:
通常のデコード処理を実行します。
ManaライブラリおよびManaプレーヤーのデフォルト値です。
CRIMANA_DECODE_MODE_B_SKIP 

強制Bピクチャスキップモード

説明:
再生しているムービーデータ内のビデオストリームにBピクチャが含まれている場合、 Bピクチャについてはデコード処理を実行しません。
ムービー再生の負荷を減らしたい場合、この動作モードを指定します。
備考:
Sofdec.Primeコーデックのみ対応。

関数詳解

◆ criMana_GetLibraryVersionString()

const CriChar8* criMana_GetLibraryVersionString ( void  )

Manaライブラリのバージョン番号やビルド情報を返します。

戻り値
const CriChar8 * ライブラリ情報文字列
呼び出し条件:
スレッドセーフです。
説明:
ライブラリのバージョン、ビルドした日時、プラットフォームの情報が表示されます。

◆ criMana_AnalyzeMovieHeader()

CriBool criMana_AnalyzeMovieHeader ( void *  movie_header_ptr,
CriUint32  movie_header_size,
CriManaMovieInfo mvinf 
)

ムービーファイルのヘッダーを解析し、ムービー情報を取得します。

引数
[in]movie_header_ptrムービーデータをロード済みのバッファーアドレス
[in]movie_header_sizeムービーヘッダサイズ
[out]mvinfムービー情報構造体
戻り値
CriBool 解析に成功したかどうか
呼び出し条件:
スレッドセーフです。
説明:
ムービーファイルの内容を解析します。 本関数は完了復帰関数です。本関数から処理が戻るとムービー情報構造体に有効な値が埋められています。
解析に必要なデータが先頭アドレスから第二引数に指定されたサイズまでの範囲に収まっていれば、
ムービーデータ全体が入力バッファーにロードされている必要はありません。
また、第二引数に指定されたサイズに必要以上に大きな値が入力されていても、解析処理が必要以上にメモリにアクセスすることはありません。
ムービーデータのエンコード時の条件によって実際のヘッダーサイズは変動しますが、
解析に必要になる最大のサイズは CRIMANA_MAX_MOVIE_HEADER_SIZE マクロを参照してください。
備考:
バッファーアドレスには必ずムービーデータ先頭を指定してください。

◆ criMana_SetUserAllocator()

void criMana_SetUserAllocator ( CriManaMallocFunc  malloc_func,
CriManaFreeFunc  free_func,
void *  obj 
)

ユーザーアロケーターの登録

引数
[in]malloc_funcメモリ確保関数
[in]free_funcメモリ解放関数
[in]objユーザーオブジェクト(任意)
呼び出し条件:
criMana_Initialize 関数の前に呼び出してください。

スレッドセーフではありません。
説明:
CRI Manaライブラリにメモリアロケーター(メモリの確保/解放関数)を登録します。
CRI Manaライブラリがライブラリ内で行なうメモリ解放処理を、 ユーザー独自のメモリ解放処理に置き換えたい場合に使用します。
備考:
登録したメモリアロケーターは複数スレッドから呼び出される場合があります。 マルチスレッドセーフなアロケーターを登録してください。
参照
CriManaMallocFunc, CriManaFreeFunc

◆ criMana_CalculateLibWorkSize()

CriSint32 criMana_CalculateLibWorkSize ( const CriManaLibConfig config)

ライブラリ初期化用ワーク領域サイズの計算

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

◆ criMana_Initialize()

void criMana_Initialize ( const CriManaLibConfig config,
void *  work,
CriSint32  work_size 
)

ライブラリの初期化

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

スレッドセーフではありません。
説明:
Manaライブラリの初期化をします。
ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。

ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。

本関数で、最大同時に使用するハンドル資源数やスレッドモデルを指定します。 途中でハンドル資源数を調整したい場合は、一度再生を全て停止して及び criMana_Finalize 関数で 終了してから、再度本関数を呼び出してください。
workにNULL、work_sizeに0を指定した場合は、::criMana_SetUserAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。
備考:
ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。
また、必要なワーク領域のサイズは、プラットフォームによっても異なります。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
備考:
各機種固有の関数が存在する場合があります。詳細は機種別のリファレンスを参照してください。
参照
criMana_Finalize

◆ criMana_InitializeFrameARGB32()

void criMana_InitializeFrameARGB32 ( void  )

フレーム変換処理の初期化 (32bit ARGB8888形式)

呼び出し条件:
CRI Manaライブラリの初期化後に本関数を実行してください。
スレッドセーフではありません。
説明:
32bit ARGB8888 フォーマットで、フレームを取得するために必要な初期化関数です。
上記フォーマットでフレームを取得する場合は、取得関数の前に必ず本関数を呼び出してください。

備考
本関数を呼び出すと、内部のフレーム色変換に必要な静的メモリ領域(数百KB)がリンクされます。 そのため、上記フォーマットを使用せず他のフォーマットでフレームを取得する アプリケーションは本関数を使用しないでください。
参照
criManaPlayer_CopyFrameToBufferARGB32

◆ criMana_Finalize()

void criMana_Finalize ( void  )

ライブラリの終了処理

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

スレッドセーフではありません。
説明:
Manaライブラリの終了処理を行います。
備考:
各機種固有の関数が存在する場合があります。詳細は機種別のリファレンスを参照してください。
参照
criMana_Initialize

◆ criMana_IsInitialized()

CriBool criMana_IsInitialized ( void  )

ライブラリ初期化状態の取得

戻り値
CriBool 初期化中かどうか
戻り値
CRI_FALSE未初期化状態
CRI_TRUE初期化済み
説明:
CRI Manaライブラリが既に初期化されているかどうかをチェックします。
参照
criMana_Initialize, criMana_Finalize

◆ criMana_ExecuteMain()

void criMana_ExecuteMain ( void  )

サーバー処理の実行

呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。
説明:
Manaライブラリの内部状態を更新します。
アプリケーションは、この関数を定期的に実行する必要があります。

ハンドルごとに内部状態の更新を管理したい場合は、 criManaPlayer_ExecuteMain 関数を使用してください。

注意
本関数はCRI Atomライブラリの criAtomEx_ExecuteMain とは違い、CRIMANA_THREAD_MODEL_MULTI を設定しても Manaライブラリ内部で定期的に自動実行を行いません。したがって本関数の呼び出し が滞るとムービー再生ががたつく場合があります。

◆ criMana_SyncMasterTimer()

void criMana_SyncMasterTimer ( void  )

マスタータイマーへの同期

呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。別スレッドで実行するとGetTimeが返す時刻が不正になる場合があります。
説明:
全てのManaプレーヤーハンドルの再生時刻を、マスタータイマーに同期させます。
ハンドルごとにマスタータイマーの時刻同期を管理したい場合は criManaPlayer_SyncMasterTimer 関数を 使用してください。
注意
本関数は、最低でもビデオのフレームレートよりも細かい周期で呼び出す必要があります。

◆ criMana_AdvanceManualTimer()

void criMana_AdvanceManualTimer ( void  )

マニュアルタイマーの時刻を進める

呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。
説明:
全てのManaプレーヤーハンドルのマニュアルタイマーの時刻を進めます。 機能説明は個別ハンドル用のcriManaPlayer_AdvanceManualTimer関数を ご参照下さい。
参照
criManaPlayer_AdvanceManualTimer

◆ criMana_ExecuteVideoProcess()

void criMana_ExecuteVideoProcess ( void  )

ビデオのデコード(全ハンドル一括)

呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフです。
説明:
作成済みの全てのManaプレーヤーハンドルに対し、::criManaPlayer_ExecuteVideoProcess 関数を 一度ずつ実行します。
CRIMANA_THREAD_MODEL_MULTIを criMana_Initialize 関数で設定した場合、本関数は Manaライブラリ内部で作られる別スレッド上で自動的に実行されます。そのため、 アプリケーションから呼び出す必要はありません。なお、優先度はメインスレッドより 低くなるように設定されています。

◆ criMana_SetDecodeSkipFlag()

void criMana_SetDecodeSkipFlag ( CriBool  flag)

デコードスキップフラグの設定(全ハンドル一括)

呼び出し条件:
スレッドセーフです。
説明:
デコードスキップ機能を有効にします。
引数 flag がCRI_TRUE(1)なら、スキップ有効。引数 flag がCRI_FALSE(0)ならスキップ無効です。

デコードスキップを有効にすると、再生負荷による処理落ちが発生した場合に内部で自動的に 必要な枚数分フレームをスキップします。見た目はガタつきますが、音飛びの発生を防ぎやすくなります。

デフォルトでスキップが有効かどうかは機種に依存します。デバイス性能が一意に決まる機種 ではデフォルト無効、一意に定まらない機種はデフォルト有効になります。
注意:
ビデオコーデックによって本機能への対応状況が異なります。 ・Sofdec.Primeは対応しています。 ・H.264はAndroidのみ対応しています。それ以外は未対応です。 ・VP9は未対応です。

◆ criMana_GetDecodeSkipFlag()

CriBool criMana_GetDecodeSkipFlag ( void  )

デコードスキップフラグの取得(全ハンドル一括)

呼び出し条件:
スレッドセーフです。
説明:
デコードスキップフラグを取得します。

◆ criMana_SetAllPauseFlag()

void criMana_SetAllPauseFlag ( CriBool  flag)

全体ポーズの設定(全ハンドル一括)

引数
[in]flag全体ポーズフラグ(CRI_TRUE:全体ポーズ有効、CRI_FALSE:全体ポーズ無効)
呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。
説明:
全体ポーズ機能を有効にします。
引数 flag がCRI_TRUE(1)なら、全体ポーズ有効。引数 flag がCRI_FALSE(0)なら全体ポーズ無効です。

全体ポーズを無効から有効にすると、全てのハンドルについてポーズを行います。
(アプリ側から見ると全てのムービーが一時停止になっている状態になります) ただし、ユーザーがcriManaPlayer_Pause関数でハンドル個別に指定する ポーズスイッチ(ユーザーポーズフラグ)の有効/無効の情報は内部で保持しています。 (全体ポーズ有効中でもcriManaPlayer_Pause関数に よるユーザーポーズフラグの更新は行います)
また、criManaPlayer_IsPaused関数はユーザーポーズフラグの情報を返しますので、 全体ポーズの有効/無効の情報とは別物になります。
全体ポーズを有効から無効にした場合、ユーザーポーズフラグが有効なハンドルについては ポーズが継続したままになり、ユーザーポーズフラグが無効なハンドルについては ムービーが再生し始めます。
参照
criMana_GetAllPauseFlag, criManaPlayer_Pause, criManaPlayer_IsPaused

◆ criMana_GetAllPauseFlag()

CriBool criMana_GetAllPauseFlag ( void  )

全体ポーズフラグの取得

戻り値
CriBool 全体ポーズフラグ
呼び出し条件:
スレッドセーフではありません。
説明:
全体ポーズフラグを取得します。

criManaPlayer_IsPaused関数で取得できるユーザーポーズフラグとは別物なのでご注意下さい。
参照
criMana_SetAllPauseFlag

◆ criMana_Lock()

void criMana_Lock ( void  )

デコード処理の割り込みを防止

説明:
デコード処理の割り込み抑止します。
本関数実行後、::criMana_Unlock関数実行までの間、デコード処理の動作が抑止されます。
参照
criMana_Unlock

◆ criMana_Unlock()

void criMana_Unlock ( void  )

デコード処理の割り込み防止を解除

説明:
criMana_Lock 関数による、デコード処理の割り込み防止を解除します。
参照
criMana_Lock

◆ criMana_UseStreamerManager()

void criMana_UseStreamerManager ( CriBool  flag)

ストリーミング管理モジュールを使用するかどうかの制御フラグをセットする

引数
[in]flag制御フラグ (CRI_TRUE:使用する、CRI_FALSE:使用しない)
呼び出し条件:
ライブラリの初期化後も呼び出し可能。ただし、動画再生していない状態で呼び出してください。
説明:
ADXと共通のストリーミング管理モジュールを使用するかどうかのフラグを指定します。
デフォルトで制御フラグはCRI_FALSE:使用しないに設定します。
注意
  • Ver.2.25.22以降で一部機種(PC/Mac/PS4/XboxOne(GDK)/Switchなど)の制御フラグが
    デフォルトでCRI_TRUEだったのをCRI_FALSEに変更しています。
    従来挙動(機種毎に想定されるワーストケースのデバイス性能に
    基づいてストリーミングの実行量を抑える、同時再生本数が多いシーンで
    各々のストリーミングをバランス良く処理する挙動)に戻したい場合、
    本関数でCRI_TRUEを設定してください。
  • Ver.2.25.22未満で既に制御フラグがデフォルトでCRI_FALSEの機種
    (PS5/Scarlett/iOS/Android)については本関数でCRI_TRUEを設定しないでください。
    もしCRI_TRUEを設定した場合、ストリーミング管理モジュールが上手く機能せず
    動画の音途切れ、カクツキなどが発生します。
参照
criMana_IsStreamerManagerUsed

◆ criMana_IsStreamerManagerUsed()

CriBool criMana_IsStreamerManagerUsed ( void  )

ストリーミング管理モジュールを使用するかどうかの制御フラグの取得

戻り値
制御フラグ (CRI_TRUE:使用する、CRI_FALSE:使用しない)
呼び出し条件:
スレッドセーフです。
説明:
ストリーミング管理モジュールを使用するかどうかの制御フラグの取得します。
参照
criMana_UseStreamerManager

◆ criMana_EnumeratePlayers()

void criMana_EnumeratePlayers ( CriManaPlayerCbFunc  func,
void *  obj 
)

プレーヤーの列挙

引数
[in]funcプレーヤーコールバック関数
[in]objユーザ指定オブジェクト
説明:
アプリケーション中で確保したプレーヤーを列挙します。

本関数を実行すると、第 1 引数( func ) でセットされたコールバック関数がManaプレーヤーの数分だけ呼び出されます。
(Manaプレーヤーハンドルが、引数としてコールバック関数に渡されます。)
備考:
第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。
コールバック関数のその他の引数については、 別途 CriManaPlayerCbFunc の説明をご参照ください。
参照
CriManaPlayerCbFunc

◆ criManaPlayer_SetExtDecoderWorkAllocator()

void criManaPlayer_SetExtDecoderWorkAllocator ( CriManaPlayerHn  player,
CriManaExtDecoderWorkMallocFunc  allocfunc,
CriManaExtDecoderWorkFreeFunc  freefunc,
void *  obj 
)

拡張デコーダーワーク確保用のコールバックの登録

引数
[in]playerManaプレーヤーハンドル
[in]allocfuncメモリ確保関数
[in]freefuncメモリ解放関数
[in]objユーザーオブジェクト(任意)
呼び出し条件:
criMana_Initialize 関数の前に呼び出してください。

スレッドセーフではありません。
説明:
CRI Manaライブラリに拡張デコーダーワーク用のメモリアロケーター(メモリの確保/解放関数)を登録します。
CRI Manaライブラリがライブラリ内で行なうメモリ解放処理を、 ユーザー独自のメモリ解放処理に置き換えたい場合に使用します。

◆ criManaPlayer_SetSoundCategoryByName()

void criManaPlayer_SetSoundCategoryByName ( CriManaPlayerHn  player,
CriUint32  track_id,
const CriChar8 *  category_name 
)

オーディオトラックのカテゴリの設定

引数
[in]playerManaプレーヤーハンドル
[in]track_idオーディオトラック番号 (0: メイン, 1: サブ, 2: エクストラ)
[in]category_nameカテゴリ名
説明:
criManaPlayer_Start 関数の前に本関数を呼ぶことで、その後再生するムービーのオーディオトラックにカテゴリを設定することができます。
各オーディオトラックトラックに異なるカテゴリ設定を適用することが可能です。引数 track_id の値でオーディオトラックを指定します。
track_id が 0 ならメイン、1 ならサブ、2 ならエクストラオーディオトラックを指定することになります。
設定したカテゴリ情報を削除するには、 criManaPlayer_SetSoundCategoryByName 関数を使用します。
カテゴリという機能の詳細については CRI ADXマニュアルを参照してください。
呼び出し条件:
CriManaPlayerConfig.use_atomex_player の値を CRI_TRUE として作成した CriManaPlayerHn を使用してください。
デフォルト設定で作成した CriManaPlayerHn では、本関数は無効です。

カテゴリ設定は再生開始前に行ってください。 再生中の音声に対してカテゴリ設定の更新を行うと、カテゴリの再生数カウントが異常になる危険があります。

また、事前に ACF のレジストを行う必要があります。使用可能なカテゴリ情報は ACF 内に記述されているためです。
ACF については別途 CRI ADXマニュアルをご確認ください。
本関数はスレッドセーフではありません。
参照
criManaPlayer_CreateWithConfig, criManaPlayer_UnsetSoundCategory

◆ criManaPlayer_UnsetSoundCategory()

void criManaPlayer_UnsetSoundCategory ( CriManaPlayerHn  player,
CriUint32  track_id 
)

オーディオトラックのカテゴリの削除

引数
[in]playerManaプレーヤーハンドル
[in]track_idオーディオトラック番号 (0: メイン, 1: サブ, 2: エクストラ)
説明:
オーディオトラックに設定されているカテゴリ情報を削除します。
引数 track_id の値が 0 ならメイン、1 ならサブ、2 ならエクストラオーディオトラックを指定することになります。
カテゴリの設定を行うには criManaPlayer_SetSoundCategoryByName 関数を使用してください。
呼び出し条件:
CriManaPlayerConfig.use_atomex_player の値を CRI_TRUE として作成した CriManaPlayerHn を使用してください。
デフォルト設定で作成した CriManaPlayerHn では、本関数は無効です。

本関数はスレッドセーフではありません。

◆ criMana_SetAudioLatencyLegacy()

void criMana_SetAudioLatencyLegacy ( CriBool  sw)

旧音声遅延に戻す設定

引数
[in]sw音声遅延を旧仕様に戻す制御フラグ(CRI_TRUE:有効、CRI_FALSE:無効)
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーで再生する音声の再生開始時の音声遅延を旧仕様に設定するための関数です。
再生開始前( criManaPlayer_Prepare 関数または criManaPlayer_Start 関数呼び出し前)に本関数を実行してください。
音声再生に criAtomExPlayer を使用する場合は本設定の影響はありません。

デフォルトでは CRI_FALSE に設定されており、無効となります。
無効時、ライブラリ内部で再生開始時の不要なバッファリングを無くして、再生開始時の音声遅延が極力発生しないように処理します。

CRI_TRUEを設定して有効にした場合、旧仕様に戻します。 旧仕様では音声バッファリングが発生し、再生開始時の音声遅延が発生します。
従来に比べてアプリケーションの音声遅延の挙動が大きく変わってしまったり、
音声再生開始の遅延をデータ側で調整していたといったケースでは旧仕様に戻すようにしてください。

◆ criMana_SetAmbisonicsAudioFlag()

void criMana_SetAmbisonicsAudioFlag ( CriBool  flag)

Ambisonics音声再生フラグの設定

引数
[in]flagAmbisonics音声再生フラグ(CRI_TRUE:有効、CRI_FALSE:無効)
呼び出し条件:
ライブラリの初期化 ::criMana_Initialize、
ライブラリ初期化用ワーク領域サイズの計算 criMana_CalculateLibWorkSize より前に
呼び出して設定を行ってください。
スレッドセーフです。
説明:
Ambisonics音声再生を可能にするかどうかのフラグを設定する関数です。
デフォルトでフラグは CRI_FALSE に設定されており、無効となります。
Ambisonics音声を含んでいる動画を再生する場合は本関数でflagにCRI_TRUEを設定して有効にしてください。

◆ criMana_GetAmbisonicsAudioFlag()

CriBool criMana_GetAmbisonicsAudioFlag ( void  )

Ambisonics音声再生フラグの取得

戻り値
flag Ambisonics音声再生フラグ(CRI_TRUE:有効、CRI_FALSE:無効)
呼び出し条件:
スレッドセーフです。
説明:
Ambisonics音声再生フラグを取得する関数です。