CRI Sofdec  Last Updated: 2024-09-25 20:36 p
初期化/終了について

初期化/終了の手順について

CRI Mana ライブラリの初期化より先に、CRI Atom ライブラリの初期化を行ってください。
初期化の手順は次のようになります。

  1. エラーコールバック登録
  2. CRI Atom ライブラリの初期化
  3. CRI Mana フレーム変換関数の初期化(オプション)
  4. CRI Mana ビデオコーデックのセットアップ(オプション)
  5. CRI Mana ライブラリの初期化

ライブラリを終了する場合は、逆にCRI Mana ライブラリから終了してください。

  1. CRI Mana ライブラリの終了
  2. CRI Atom ライブラリの終了

フレーム変換関数の初期化 (オプション)

CRI Mana ライブラリのデコード結果は、YUVバッファー形式となります。CRI Mana ライブラリから、YUVバッファー以外の形式でフレームを取得する場合、フレーム変換関数の初期化が必要です。
以下の例のように、内部で色変換処理が必要となるフォーマットでのフレームを取得を取得する場合には、事前に対応するフレーム変換初期化関数の呼び出しを行ってください。

例) ARGB32ビット形式でフレームを取得する場合:
/* ARGB32ビット形式用初期化関数 */
/* ライブラリの初期化 */
criMana_Initialize(NULL, NULL, 0);
:
/* ARGB32ビット形式でのフレームの取得 */
criManaPlayer_CopyFrameToBufferARGB32(mana, &frame_info, &argbbufs);
void criMana_InitializeFrameARGB32(void)
フレーム変換処理の初期化 (32bit ARGB8888形式)
void criMana_Initialize(const CriManaLibConfig *config, void *work, CriSint32 work_size)
ライブラリの初期化
void criManaPlayer_CopyFrameToBufferARGB32(CriManaPlayerHn player, const CriManaFrameInfo *frame_info, CriManaTextureBuffer *frame_buf)
デコード結果の取得 (32bit ARGB形式)

フレーム変換関数の初期化は、Manaライブラリ初期化前でも後でも構いません。

注意
初期化を呼び出すと、変換用の静的テーブルがリンクされますので、アプリケーションのコードサイズが増えます。
また、色変換時にフレームバッファーの面積に応じてCPU負荷が上がります。
基本的には変換関数は使用せず、YUVバッファー形式でフレームを取得して描画するようにしてください。

コーデック(ビデオデコーダー)のセットアップ(オプション)

CRI Manaライブラリのデフォルトの初期化で利用可能なビデオコーデックは Sofdec.Prime のみです。

その他の、H.264/VP9/AV1のコーデックでエンコードされた動画の再生を行うにはコーデック専用のセットアップを初期化前に行う必要があります。
例えばVP9/AV1では以下のような関数をCRI Manaライブラリの初期化前に呼び出す実行する必要があります。

詳細は各機種固有の説明を参照してください。

機種ごとの専用初期化/終了関数について

CRI Mana ライブラリには各機種専用の初期化/終了関数が準備されている場合があります。
例えばPC向けには次のような関数があります。

汎用の初期化関数でもCRI Manaライブラリ自体は動作しますが、機種専用関数を使わないと設定できないパラメーターが存在します。
詳細は各機種固有の説明を参照してください。

初期化パラメーターの省略について

初期化関数のパラメーター構造体引数はNULL指定をすることで、省略が可能です。
省略した場合は、各パラメーターは機種ごとに定義されたデフォルト値となります。
詳細は各機種固有の説明を参照してください。