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

データ構造

struct  CriManaEventPoint
 イベントポイント情報 [詳解]
 
struct  CriManaCuePointInfo
 キューポイント情報 [詳解]
 
struct  CriManaPlayerConfig
 プレーヤー作成用コンフィグ構造体 [詳解]
 
struct  CriManaPlaybackVideoParams
 ビデオ関連再生パラメーター [詳解]
 
struct  CriManaPlaybackAudioParams
 オーディオ関連再生パラメーター [詳解]
 
struct  CriManaPlaybackSubtitleParams
 字幕関連再生パラメーター [詳解]
 
struct  CriManaPlaybackAlphaParams
 アルファチャンネルパラメーター [詳解]
 
struct  CriManaPlaybackBasicWorkConfig
 再生ワーク用パラメーター構造体 (基本) [詳解]
 
struct  CriManaPlaybackExWorkConfig
 再生ワーク用パラメーター構造体(拡張) [詳解]
 
struct  CriManaAudioInfo
 オーディオパラメーター [詳解]
 
struct  CriManaVideoInfo
 ビデオパラメーター [詳解]
 
struct  CriManaAlphaInfo
 アルファパラメーター [詳解]
 
struct  CriManaMovieInfo
 ムービー情報構造体 [詳解]
 
struct  CriManaImageBufferInfo
 イメージ情報 [詳解]
 
struct  CriManaFrameInfo
 ビデオフレーム情報 [詳解]
 
struct  CriManaTextureBuffer
 テクスチャバッファー構造体 [詳解]
 
struct  CriManaTextureBuffersYUV
 YUVテクスチャバッファー構造体 [詳解]
 

マクロ定義

#define CRIMANA_MAX_VIDEO_NUM   (1)
 ムービーファイル内の最大ビデオストリーム数 [詳解]
 
#define CRIMANA_MAX_AUDIO_NUM   (32)
 ムービーファイル内の最大オーディオストリーム数 [詳解]
 
#define CRIMANA_MAX_ALPHA_NUM   (1)
 ムービーファイル内の最大アルファストリーム数 [詳解]
 
#define CRIMANA_AUDIO_TRACK_OFF   (-1)
 オーディオ再生OFFの指定値 [詳解]
 
#define CRIMANA_AUDIO_TRACK_AUTO   (100)
 オーディオトラックのデフォルト値 [詳解]
 
#define CRIMANA_MAX_SUBTITLE_NUM   (16)
 字幕の最大チャンネル数 [詳解]
 
#define CRIMANA_SUBTITLE_CHANNEL_OFF   (-1)
 字幕再生OFFの指定値 [詳解]
 
#define CRIMANA_MAX_FILE_NAME   (256)
 Manaプレーヤーに指定可能なファイル名の最大長さ [詳解]
 
#define CRIMANA_DROP_FRAME_DELAY_OFF   (-1)
 再生時刻に対する遅延判定の無効値 [詳解]
 
#define criManaPlayer_SetDefaultHandleConfig(p_config)
 プレーヤー作成用コンフィグ構造体にデフォルト値をセット [詳解]
 

型定義

typedef CriManaPlayerObj * CriManaPlayerHn
 プレーヤーハンドル [詳解]
 
typedef void(* CriManaPlayerDataRequestCbFunc) (void *obj, CriManaPlayerHn player)
 データ要求コールバック関数 [詳解]
 
typedef void(* CriManaPlayerCuePointCbFunc) (void *obj, CriManaPlayerHn player, CriManaEventPoint *eventinfo)
 キューポイントコールバック関数 [詳解]
 
typedef void(* CriManaPlayerCbFunc) (void *obj, CriManaPlayerHn player)
 プレーヤーコールバック関数型 [詳解]
 
typedef void(* CriManaPlayerSubtitleCbFunc) (void *obj, CriManaPlayerHn player)
 字幕コールバック関数型 [詳解]
 

列挙型

enum  CriManaPlayerStatus {
  CRIMANAPLAYER_STATUS_STOP = 0 , CRIMANAPLAYER_STATUS_DECHDR = 1 , CRIMANAPLAYER_STATUS_WAIT_PREP = 2 , CRIMANAPLAYER_STATUS_PREP = 3 ,
  CRIMANAPLAYER_STATUS_READY = 4 , CRIMANAPLAYER_STATUS_PLAYING = 5 , CRIMANAPLAYER_STATUS_PLAYEND = 6 , CRIMANAPLAYER_STATUS_ERROR = 7 ,
  CRIMANAPLAYER_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 プレーヤーステータス [詳解]
 
enum  CriManaTimerType {
  CRIMANAPLAYER_TIMER_NONE =0 , CRIMANAPLAYER_TIMER_SYSTEM =1 , CRIMANAPLAYER_TIMER_AUDIO =2 , CRIMANAPLAYER_TIMER_USER =3 ,
  CRIMANAPLAYER_TIMER_MANUAL =4 , CRIMANAPLAYER_TIMER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 タイマー種別 [詳解]
 
enum  CriManaVideoCodecType { CRIMANA_VIDEO_CODEC_UNKNOWN = 0 , CRIMANA_VIDEO_CODEC_SOFDEC_PRIME = 1 , CRIMANA_VIDEO_CODEC_H264 = 5 , CRIMANA_VIDEO_CODEC_VP9 = 9 , CRIMANA_VIDEO_CODEC_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 ビデオコーデック種別 [詳解]
 
enum  CriManaAudioCodecType { CRIMANA_AUDIO_CODEC_UNKNOWN = 0 , CRIMANA_AUDIO_CODEC_ADX = 2 , CRIMANA_AUDIO_CODEC_HCA = 4 , CRIMANA_AUDIO_CODEC_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 オーディオコーデック種別 [詳解]
 
enum  CriManaAlphaType {
  CRIMANA_COMPO_OPAQ = 0 , CRIMANA_COMPO_ALPHFULL = 1 , CRIMANA_COMPO_ALPH3STEP = 2 , CRIMANA_COMPO_ALPH32BIT = 3 ,
  CRIMANA_COMPO_ALPH1BIT = 4 , CRIMANA_COMPO_ALPH2BIT = 5 , CRIMANA_COMPO_ALPH3BIT = 6 , CRIMANA_COMPO_ALPH4BIT = 7 ,
  CRIMANA_COMPO_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 アルファムービーの合成モード [詳解]
 
enum  CriManaMetaFlag { CRIMANA_META_FLAG_NONE = 0x0000 , CRIMANA_META_FLAG_CUE = 0x0001 , CRIMANA_META_FLAG_SEEK = 0x0002 , CRIMANA_META_FLAG_ALL = CRIMANA_META_FLAG_CUE | CRIMANA_META_FLAG_SEEK , CRIMANA_META_FLAG_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 メタデータの使用フラグ 【現在未対応】 [詳解]
 
enum  CriManaReferFrameResult { CRIMANA_REFER_RESULT_OK = 0 , CRIMANA_REFER_RESULT_SHORT_INPUT = 1 , CRIMANA_REFER_RESULT_SHORT_CPUTIME = 2 , CRIMANA_REFER_RESULT_NO_MORE_KEEP = 3 , CRIMANA_REFER_RESULT_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 ReferFrameのフレーム参照結果 (デバッグ情報) [詳解]
 
enum  CriManaShouldDropFrameReason { CRIMANA_DROP_FRAME_REASON_NO_NEED_TO_DROP = 0 , CRIMANA_DROP_FRAME_REASON_DROP_DELAY = 1 , CRIMANA_DROP_FRAME_REASON_DROP_CONCATENATION = 2 , CRIMANA_DROP_FRAME_REASON_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 criManaPlayer_ShouldDropFrame判定した理由 [詳解]
 
enum  CriManaColorSpaceConversionType
 色変換の種類 [詳解]
 
enum  CriManaPlayerMovieEventSyncMode { CRIMANAPLAYER_EVENT_SYNC_FRAME_TIME = 0 , CRIMANAPLAYER_EVENT_SYNC_PLAYBACK_TIME = 1 , CRIMANAPLAYER_EVENT_SYNC_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 ムービーイベント(キューポイント、字幕)の同期モード [詳解]
 

関数

CriSint32 criManaPlayer_CalculateHandleWorkSize (void)
 ManaPlayer用ワーク領域サイズの計算(コンフィグ指定なし) [詳解]
 
CriSint32 criManaPlayer_CalculateHandleWorkSizeWithConfig (const CriManaPlayerConfig *config)
 ManaPlayer用ワーク領域サイズの計算(コンフィグ指定つき) [詳解]
 
CriManaPlayerHn criManaPlayer_Create (void *work, CriSint32 work_size)
 Manaプレーヤーの作成(コンフィグ指定なし) [詳解]
 
CriManaPlayerHn criManaPlayer_CreateWithConfig (const CriManaPlayerConfig *config, void *work, CriSint32 work_size)
 Manaプレーヤーの作成(コンフィグ指定つき) [詳解]
 
void criManaPlayer_Destroy (CriManaPlayerHn player)
 Manaプレーヤーの破棄 [詳解]
 
void criManaPlayer_SetMetaDataWorkAllocator (CriManaPlayerHn player, CriManaMetaMallocFunc allocfunc, CriManaMetaFreeFunc freefunc, void *obj, CriManaMetaFlag meta_flag)
 メタデータ用アロケーターの登録 [詳解]
 
CriBool criManaPlayer_GetPlaybackWorkParam (CriManaPlayerHn player, CriManaPlaybackBasicWorkConfig *config_basic, CriManaPlaybackExWorkConfig *config_ex)
 再生ワークパラメーター構造体の取得 [詳解]
 
CriSint32 criManaPlayer_CalculatePlaybackWorkSize (CriManaPlayerHn player, const CriManaPlaybackBasicWorkConfig *config_basic, const CriManaPlaybackExWorkConfig *config_ex)
 再生用ワーク領域のサイズ計算 [詳解]
 
void criManaPlayer_SetPlaybackWork (CriManaPlayerHn player, const CriManaPlaybackBasicWorkConfig *config_basic, const CriManaPlaybackExWorkConfig *config_ex, void *work, CriSint32 work_size)
 再生ワーク領域の設定 [詳解]
 
void criManaPlayer_FreePlaybackWork (CriManaPlayerHn player)
 再生用ワークの解放 [詳解]
 
CriManaPlayerStatus criManaPlayer_GetStatus (CriManaPlayerHn player)
 Manaプレーヤーの状態取得 [詳解]
 
void criManaPlayer_ExecuteMain (CriManaPlayerHn player)
 Manaプレーヤーのサーバー処理の実行 [詳解]
 
void criManaPlayer_SyncMasterTimer (CriManaPlayerHn player)
 マスタータイマーへの時刻同期 [詳解]
 
void criManaPlayer_SetMasterTimerType (CriManaPlayerHn player, CriManaTimerType type)
 マスタータイマー種別の設定 [詳解]
 
CriManaTimerType criManaPlayer_GetMasterTimerType (CriManaPlayerHn player)
 マスタータイマーの種別取得 [詳解]
 
void criManaPlayer_SetUserTime (CriManaPlayerHn player, CriUint64 user_count, CriUint64 user_unit)
 ユーザータイマーの時刻をマスタータイマーの時刻に設定 [詳解]
 
void criManaPlayer_SetManualTimerUnit (CriManaPlayerHn player, CriUint64 timer_manual_unit_n, CriUint64 timer_manual_unit_d)
 マニュアルタイマーの時刻が進む単位の設定(有理数形式) [詳解]
 
void criManaPlayer_AdvanceManualTimer (CriManaPlayerHn player)
 マニュアルタイマーの時刻(カウント値)を進める [詳解]
 
CriBool criManaPlayer_ExecuteVideoProcess (CriManaPlayerHn player)
 ビデオのデコード処理 [詳解]
 
void criManaPlayer_SetFile (CriManaPlayerHn player, CriFsBinderHn bndrhn, const CriChar8 *path)
 ムービーファイルの設定 [詳解]
 
void criManaPlayer_SetData (CriManaPlayerHn player, const void *dataptr, CriSint64 datasize)
 メモリ再生用のデータ指定 [詳解]
 
void criManaPlayer_SetContentId (CriManaPlayerHn player, CriFsBinderHn bndrhn, CriSint32 id)
 再生ムービーファイルの設定 (CPKのコンテンツID指定) [詳解]
 
void criManaPlayer_SetFileRange (CriManaPlayerHn player, const CriChar8 *fname, CriUint64 offset, CriSint64 range)
 パックファイル内のムービーファイルの指定 (ファイル範囲指定) [詳解]
 
void criManaPlayer_SetPreviousDataAgain (CriManaPlayerHn player)
 同一ムービーデータの再セット [詳解]
 
CriBool criManaPlayer_GetMovieInfo (CriManaPlayerHn player, CriManaMovieInfo *mvinf)
 ムービーヘッダー情報の取得 [詳解]
 
void criManaPlayer_DecodeHeader (CriManaPlayerHn player)
 ヘッダーのデコード要求 [詳解]
 
void criManaPlayer_Prepare (CriManaPlayerHn player)
 再生の準備要求 [詳解]
 
void criManaPlayer_Start (CriManaPlayerHn player)
 再生開始 [詳解]
 
void criManaPlayer_Stop (CriManaPlayerHn player)
 再生の停止要求 [詳解]
 
void criManaPlayer_StopAndWaitCompletion (CriManaPlayerHn player)
 再生の停止 (完了復帰API) [詳解]
 
void criManaPlayer_Pause (CriManaPlayerHn player, CriBool sw)
 再生のポーズ切り替え [詳解]
 
CriBool criManaPlayer_IsPaused (CriManaPlayerHn player)
 再生のポーズ状態の取得 [詳解]
 
void criManaPlayer_Loop (CriManaPlayerHn player, CriBool sw)
 再生のループ切り替え [詳解]
 
CriBool criManaPlayer_IsLoopEnabled (CriManaPlayerHn player)
 ループ再生を行う設定がされているかどうかの取得 [詳解]
 
void criManaPlayer_GetTime (CriManaPlayerHn player, CriUint64 *count, CriUint64 *unit)
 再生時刻の取得 [詳解]
 
CriSint32 criManaPlayer_GetInputBufferSize (CriManaPlayerHn player)
 入力バッファーサイズの取得 [詳解]
 
CriSint32 criManaPlayer_GetInputBufferRemainSize (CriManaPlayerHn player)
 入力バッファー内データ残量の取得 [詳解]
 
void criManaPlayer_SetNumberOfFramePools (CriManaPlayerHn player, CriUint32 npools)
 内部ビデオバッファー(フレームプール)数の指定 [詳解]
 
void criManaPlayer_SetBufferingTime (CriManaPlayerHn player, CriFloat32 sec)
 入力データのバッファリング時間の指定 [詳解]
 
void criManaPlayer_SetMinBufferSize (CriManaPlayerHn player, CriUint32 min_buffer_size)
 最小バッファーサイズの指定 [詳解]
 
void criManaPlayer_SetFileStreamingFlag (CriManaPlayerHn player, CriBool streaming_flag)
 ストリーミングフラグの設定 [詳解]
 
void criManaPlayer_SetMaxMovieSize (CriManaPlayerHn player, CriSint32 max_width, CriSint32 max_height)
 最大解像度の設定 [詳解]
 
void criManaPlayer_SetMaxPictureDataSize (CriManaPlayerHn player, CriUint32 max_data_size)
 最大ピクチャデータサイズの指定 [詳解]
 
void criManaPlayer_ExecuteAutoSkip (CriManaPlayerHn player, CriManaFrameInfo *frame_info)
 デコードフレームの自動スキップ判定の実行 [詳解]
 
void criManaPlayer_SetAudioTrack (CriManaPlayerHn player, CriSint32 track)
 メインオーディオトラック番号の設定 [詳解]
 
void criManaPlayer_SetSubAudioTrack (CriManaPlayerHn player, CriSint32 track)
 サブオーディオトラック番号の設定 [詳解]
 
void criManaPlayer_SetExtraAudioTrack (CriManaPlayerHn player, CriSint32 track)
 エクストラオーディオトラック番号の設定 [詳解]
 
void criManaPlayer_SetVolume (CriManaPlayerHn player, CriFloat32 volume)
 オーディオボリュームの設定 (メインオーディオトラック) [詳解]
 
CriFloat32 criManaPlayer_GetVolume (CriManaPlayerHn player)
 オーディオボリュームの取得 (メインオーディオトラック) [詳解]
 
CriAtomExPlayerHn criManaPlayer_GetAtomExPlayerByTrackId (CriManaPlayerHn player, CriUint32 track_id)
 AtomExPlayerHn の取得 [詳解]
 
void criManaPlayer_SetSubAudioVolume (CriManaPlayerHn player, CriFloat32 volume)
 オーディオボリュームの設定 (サブオーディオトラック) [詳解]
 
CriFloat32 criManaPlayer_GetSubAudioVolume (CriManaPlayerHn player)
 オーディオボリュームの取得 (サブオーディオトラック) [詳解]
 
void criManaPlayer_SetExtraAudioVolume (CriManaPlayerHn player, CriFloat32 volume)
 オーディオボリュームの設定 (エクストラオーディオトラック) [詳解]
 
CriFloat32 criManaPlayer_GetExtraAudioVolume (CriManaPlayerHn player)
 オーディオボリュームの取得 (エクストラオーディオトラック) [詳解]
 
void criManaPlayer_SetPan (CriManaPlayerHn player, CriSint32 ch, CriFloat32 pan)
 2Dパンの設定(メインオーディオトラック) [詳解]
 
CriFloat32 criManaPlayer_GetPan (CriManaPlayerHn player, CriSint32 ch)
 2Dパンの取得(メインオーディオトラック) [詳解]
 
void criManaPlayer_ResetSendLevel (CriManaPlayerHn player)
 センドレベルのリセット(メインオーディオトラック) [詳解]
 
void criManaPlayer_SetSendLevel (CriManaPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level)
 センドレベルの設定(メインオーディオトラック) [詳解]
 
void criManaPlayer_ResetSubAudioSendLevel (CriManaPlayerHn player)
 センドレベルのリセット(サブオーディオトラック) [詳解]
 
void criManaPlayer_SetSubAudioSendLevel (CriManaPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level)
 センドレベルの設定(サブオーディオトラック) [詳解]
 
void criManaPlayer_ResetExtraAudioSendLevel (CriManaPlayerHn player)
 センドレベルのリセット(エクストラオーディオトラック) [詳解]
 
void criManaPlayer_SetExtraAudioSendLevel (CriManaPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level)
 センドレベルの設定(エクストラオーディオトラック) [詳解]
 
void criManaPlayer_SetBusSendLevelByName (CriManaPlayerHn player, const CriChar8 *bus_name, CriFloat32 level)
 バスセンドレベルの設定(メインオーディオトラック) [詳解]
 
void criManaPlayer_SetSubAudioBusSendLevelByName (CriManaPlayerHn player, const CriChar8 *bus_name, CriFloat32 level)
 バスセンドレベルの設定(サブオーディオトラック) [詳解]
 
void criManaPlayer_SetExtraAudioBusSendLevelByName (CriManaPlayerHn player, const CriChar8 *bus_name, CriFloat32 level)
 バスセンドレベルの設定(エクストラオーディオトラック) [詳解]
 
void criManaPlayer_ResetBusSendLevelAll (CriManaPlayerHn player)
 バスセンドレベルのリセット(全トラック) [詳解]
 
void criManaPlayer_SetSoundRendererType (CriManaPlayerHn player, CriAtomSoundRendererType sound_renderer_type)
 サウンドレンダラタイプの設定 [詳解]
 
void criManaPlayer_SetAsrRackId (CriManaPlayerHn player, CriSint32 asr_rack_id)
 ASRラックIDの設定 [詳解]
 
CriBool criManaPlayer_ReferFrame (CriManaPlayerHn player, CriManaFrameInfo *frame_info)
 デコード済みのフレーム情報の参照 [詳解]
 
CriBool criManaPlayer_IsFrameOnTime (CriManaPlayerHn player, const CriManaFrameInfo *frame_info)
 フレームの時刻判定 [詳解]
 
CriBool criManaPlayer_KeepFrame (CriManaPlayerHn player, CriManaFrameInfo *frame_info)
 フレームの保持 [詳解]
 
CriSint32 criManaPlayer_GetNumberOfKeepFrames (CriManaPlayerHn player)
 保持フレーム数の取得 [詳解]
 
void criManaPlayer_CopyFrameToBufferARGB32 (CriManaPlayerHn player, const CriManaFrameInfo *frame_info, CriManaTextureBuffer *frame_buf)
 デコード結果の取得 (32bit ARGB形式) [詳解]
 
void criManaPlayer_CopyFrameToBuffersYUV (CriManaPlayerHn player, const CriManaFrameInfo *frame_info, CriManaTextureBuffersYUV *frame_buf)
 デコード結果の取得 (YUV個別バッファー方式) [詳解]
 
void criManaPlayer_DiscardFrame (CriManaPlayerHn player, const CriManaFrameInfo *frame_info)
 フレームの解放 [詳解]
 
void criManaPlayer_DiscardOneKeepFrame (CriManaPlayerHn player)
 フレームの解放 [詳解]
 
void criManaPlayer_SetDataRequestCallback (CriManaPlayerHn player, CriManaPlayerDataRequestCbFunc func, void *obj)
 データ要求コールバックの登録 [詳解]
 
void criManaPlayer_DeferCallback (CriManaPlayerHn player)
 データ要求コールバックの再実行要求 [詳解]
 
void criManaPlayer_SetSeekPosition (CriManaPlayerHn player, CriSint32 seek_frame_no)
 シーク位置の設定 [詳解]
 
void criManaPlayer_SetMovieEventSyncMode (CriManaPlayerHn player, CriManaPlayerMovieEventSyncMode mode)
 ムービーイベント同期モードの指定 [詳解]
 
void criManaPlayer_SetSubtitleChannel (CriManaPlayerHn player, CriSint32 channel)
 字幕チャンネルの取得 [詳解]
 
CriUint32 criManaPlayer_GetSubtitleOnTime (CriManaPlayerHn player, CriUint8 *bufptr, CriUint32 bufsize)
 字幕の取得 [詳解]
 
CriManaCuePointInfocriManaPlayer_GetCuePointInfo (CriManaPlayerHn player)
 キューポイント情報の一覧取得 [詳解]
 
void criManaPlayer_SetCuePointCallback (CriManaPlayerHn player, CriManaPlayerCuePointCbFunc func, void *obj)
 キューポイントコールバックの設定 [詳解]
 
void criManaPlayer_SetSubtitleCallback (CriManaPlayerHn player, CriManaPlayerSubtitleCbFunc func, void *obj)
 字幕コールバックの登録 [詳解]
 
CriSint32 criManaPlayer_CalcFrameNoFromTime (CriManaPlayerHn player, CriUint64 count, CriUint64 unit)
 再生時刻からフレーム番号の計算 [詳解]
 
CriUint64 criManaPlayer_CalcTimeFromFrameNo (CriManaPlayerHn player, CriSint32 frame_no, CriUint64 unit)
 フレーム番号から再生時刻の計算 [詳解]
 
CriSint32 criManaPlayer_SearchNextEventPointByTime (CriManaPlayerHn player, CriUint64 count, CriUint64 unit, CriSint32 type, CriManaEventPoint *eventinfo)
 指定時刻直後のイベントポイントの検索 [詳解]
 
CriSint32 criManaPlayer_SearchPrevEventPointByTime (CriManaPlayerHn player, CriUint64 count, CriUint64 unit, CriSint32 type, CriManaEventPoint *eventinfo)
 指定時刻直前のイベントポイントの検索 [詳解]
 
void criManaPlayer_SetSpeed (CriManaPlayerHn player, CriSint32 speed_numerator, CriSint32 speed_denominator)
 再生速度の設定 [詳解]
 
void criManaPlayer_SetDecodeMode (CriManaPlayerHn player, CriManaDecodeMode mode)
 デコード動作モードの設定 [詳解]
 
CriBool criManaPlayer_ShouldDropFrame (CriManaPlayerHn player, CriManaFrameInfo *frame_info, CriSint32 threshold, CriManaShouldDropFrameReason *drop_frame_reason)
 フレームをドロップすべきかどうか判定 [詳解]
 
void criManaPlayer_SetAudioBaseConcatenation (CriManaPlayerHn player, CriBool flag)
 ループ再生や連結再生時にオーディオ基準の連結調整フラグを設定します [詳解]
 
CriBool criManaPlayer_GetAudioBaseConcatenation (CriManaPlayerHn player)
 ループ再生や連結再生時にオーディオ基準の連結調整フラグを取得 [詳解]
 
CriSint32 criManaPlayer_CalculateExtDecoderWorkSize (CriManaPlayerHn player, const CriManaPlaybackBasicWorkConfig *config_basic, const CriManaPlaybackExWorkConfig *config_ex)
 拡張デコーダーワーク領域のサイズ計算 [詳解]
 
void criManaPlayer_SetExtDecoderWork (CriManaPlayerHn player, const CriManaPlaybackBasicWorkConfig *config_basic, const CriManaPlaybackExWorkConfig *config_ex, void *work, CriSint32 work_size)
 拡張デコーダーワーク領域の設定 [詳解]
 
void criManaPlayer_SetNumberOfFramesForPrep (CriManaPlayerHn player, CriUint32 num_frames)
 再生準備時の貯蓄フレーム数の設定 [詳解]
 

詳解

マクロ定義詳解

◆ CRIMANA_MAX_VIDEO_NUM

#define CRIMANA_MAX_VIDEO_NUM   (1)

ムービーファイル内の最大ビデオストリーム数

説明:
参照
CriManaMovieInfo, criManaPlayer_GetMovieInfo

◆ CRIMANA_MAX_AUDIO_NUM

#define CRIMANA_MAX_AUDIO_NUM   (32)

ムービーファイル内の最大オーディオストリーム数

説明:
参照
CriManaMovieInfo, criManaPlayer_GetMovieInfo

◆ CRIMANA_MAX_ALPHA_NUM

#define CRIMANA_MAX_ALPHA_NUM   (1)

ムービーファイル内の最大アルファストリーム数

説明:
参照
CriManaMovieInfo, criManaPlayer_GetMovieInfo

◆ CRIMANA_AUDIO_TRACK_OFF

#define CRIMANA_AUDIO_TRACK_OFF   (-1)

オーディオ再生OFFの指定値

説明:
参照
criManaPlayer_SetAudioTrack

◆ CRIMANA_AUDIO_TRACK_AUTO

#define CRIMANA_AUDIO_TRACK_AUTO   (100)

オーディオトラックのデフォルト値

参照
criManaPlayer_SetAudioTrack

◆ CRIMANA_MAX_SUBTITLE_NUM

#define CRIMANA_MAX_SUBTITLE_NUM   (16)

字幕の最大チャンネル数

参照
CRIMANA_MAX_VIDEO_NUM, CRIMANA_MAX_AUDIO_NUM

◆ CRIMANA_SUBTITLE_CHANNEL_OFF

#define CRIMANA_SUBTITLE_CHANNEL_OFF   (-1)

字幕再生OFFの指定値

参照
criManaPlayer_SetSubtitleChannel

◆ CRIMANA_MAX_FILE_NAME

#define CRIMANA_MAX_FILE_NAME   (256)

Manaプレーヤーに指定可能なファイル名の最大長さ

参照
criManaPlayer_SetFile

◆ CRIMANA_DROP_FRAME_DELAY_OFF

#define CRIMANA_DROP_FRAME_DELAY_OFF   (-1)

再生時刻に対する遅延判定の無効値

説明:
criManaPlayer_ShouldDropFrame について第3引数 threshold に
指定した場合、現在の再生時刻に対する遅延があってもフレームをドロップすべきと
判定しなくなります。
drop_frame_reason には ::CRIMANA_DROP_FRAME_REASON_DROP_DELAYの
結果は格納されなくなります。
参照
criManaPlayer_ShouldDropFrame, CriManaShouldDropFrameReason

◆ criManaPlayer_SetDefaultHandleConfig

#define criManaPlayer_SetDefaultHandleConfig (   p_config)
値:
{\
(p_config)->readbuf_size_byte = 0;\
(p_config)->use_atomex_player = CRI_FALSE;\
(p_config)->max_path = CRIMANA_MAX_FILE_NAME;\
}
#define CRIMANA_MAX_FILE_NAME
Manaプレーヤーに指定可能なファイル名の最大長さ
Definition: cri_mana.h:116

プレーヤー作成用コンフィグ構造体にデフォルト値をセット

引数
[out]p_configプレーヤー作成用コンフィグ構造体へのポインタ
説明:
criManaPlayer_CreateWithConfig 関数に設定するコンフィグ構造体( ::CriManaPlayerConfig ) に デフォルトの値をセットします。
参照
criManaPlayer_CreateWithConfig

型定義詳解

◆ CriManaPlayerHn

typedef CriManaPlayerObj* CriManaPlayerHn

プレーヤーハンドル

説明:
CriManaPlayerHn は、動画再生用に作られたプレーヤーを操作するためのハンドルです。
criManaPlayer_Create 関数で動画再生用のプレーヤーを作成すると、 関数はプレーヤー操作用に、この"Manaプレーヤーハンドル"を返します。
データのセットや再生の開始、ステータスの取得等、プレーヤーに対して行う操作は、 全てManaプレーヤーハンドルを介して実行されます。
参照
criManaPlayer_Create

◆ CriManaPlayerDataRequestCbFunc

typedef void( * CriManaPlayerDataRequestCbFunc) (void *obj, CriManaPlayerHn player)

データ要求コールバック関数

引数
[in]objユーザー指定オブジェクト
[in]playerManaプレーヤーハンドル
説明:
次に再生するムービーを指定するためのコールバック関数です。 複数のムービーファイルをシームレスに連結して再生する場合に使用します。
コールバック関数の登録には criManaPlayer_SetDataRequestCallback を使用します。

◆ CriManaPlayerCuePointCbFunc

typedef void( * CriManaPlayerCuePointCbFunc) (void *obj, CriManaPlayerHn player, CriManaEventPoint *eventinfo)

キューポイントコールバック関数

引数
[in]objユーザー指定オブジェクト
[in]playerManaプレーヤーハンドル
[in]eventinfoキューポイントイベント情報
説明:
ムービーに埋め込まれたキューポイント(タイミング情報)が発生した時に実行される コールバック関数です。
コールバック関数の登録には criManaPlayer_SetCuePointCallback 関数を使用します。

◆ CriManaPlayerCbFunc

typedef void( * CriManaPlayerCbFunc) (void *obj, CriManaPlayerHn player)

プレーヤーコールバック関数型

引数
[in]objユーザ指定オブジェクト
[in]playerManaプレーヤーハンドル
説明:
プレーヤーの列挙に使用する、コールバック関数の型です。
criMana_EnumeratePlayers 関数に本関数型のコールバック関数を登録することで、 アプリケーション中で作成したプレーヤーをコールバックで受け取ることが可能となります。
注意
引数で渡されたManaプレーヤーを破棄してはいけません。
(アクセス違反やハングアップ等の重篤な不具合が発生する恐れがあります。)

本コールバック関数内で長時間処理をブロックすると、カクつき等の問題が発生しますので、 ご注意ください。
参照
criMana_EnumeratePlayers

◆ CriManaPlayerSubtitleCbFunc

typedef void( * CriManaPlayerSubtitleCbFunc) (void *obj, CriManaPlayerHn player)

字幕コールバック関数型

引数
[in]objユーザ指定オブジェクト
[in]playerManaプレーヤーハンドル
説明:
字幕が切り替わった際に呼び出される、コールバック関数の型です。
criManaPlayer_SetSubtitleCallback 関数に本関数型のコールバック関数を登録することで、
指定したプレーヤー再生中、字幕が切り替わった際に呼び出されます。
そのため、コールバック関数内で criManaPlayer_GetSubtitleOnTime 関数を呼び出すことで、
メインループから定期的に criManaPlayer_GetSubtitleOnTime 関数を実行する必要がなくなります。
注意
本機能を使い、メインループで定期的に criManaPlayer_GetSubtitleOnTime 関数を実行しない場合、
コールバック内部では必ず criManaPlayer_GetSubtitleOnTime を呼び出してください。
字幕が切り替わったにもかかわらず字幕取得が行われない場合、ムービー再生が途中で止まります。
本コールバック関数内で長時間処理をブロックすると、カクつき等の問題が発生しますのでご注意ください。
参照
criManaPlayer_SetSubtitleCallback

列挙型詳解

◆ CriManaPlayerStatus

プレーヤーステータス

説明:
Manaプレーヤーの再生状態を示す値です。 ハンドル状態は criManaPlayer_GetStatus 関数でいつでも取得することが出来ます。
ハンドル作成直後は CRIMANAPLAYER_STOP 状態です。

ハンドル状態は CRIMANAPLAYER_STATUS_STOP から CRIMANAPLAYER_STATUS_PLAYEND まで順に遷移していきます。
アプリケーションがムービーを再生するにあたって、必ずしもこの全ての状態をチェックする必要はありません。
最低限、CRIMANAPLAYER_STATUS_STOP, CRIMANAPLAYER_STATUS_PLAYING, CRIMANAPLAYER_STATUS_PLAYEND, CRIMANAPLAYER_STATUS_ERROR さえ チェックすれば、ムービーの再生を行うことができます。

Manaプレーヤーを作成後、ムービーの解像度などが既に確定している場合は、アプリケーションは criManaPlayer_Start 関数を直接呼び出すことができます。この場合、ハンドル状態は自動的に CRIMANAPLAYER_STATUS_PLAYEND まで遷移していきます。

最初に criManaPlayer_DecodeHeader 関数を呼び出した場合は、ヘッダー解析が終了するとハンドル状態は CRIMANAPLAYER_STATUS_WAIT_PREP となり、アプリケーションから criManaPlayer_Prepare 関数または criManaPlayer_Start 関数が呼ばれるまで待機します。

CRIMANAPLAYER_STATUS_WAIT_PREP状態以降、 criManaPlayer_GetMovieInfo 関数でムービー情報を取得することができます。
criManaPlayer_Prepare 関数 を呼び出した場合は、ヘッダー解析およびデータのバッファリングが終わると、 ハンドル状態は CRIMANAPLAYER_STATUS_READY となり、アプリケーションから criManaPlayer_Start 関数が 呼ばれるまで待機します。これによって再生開始のタイミングを調整することができます。

再生が終了すると自動的に CRIMANAPLAYER_STATUS_PLAYEND になります。

criManaPlayer_Stop 関数を呼び出した場合は、デコーダーの停止処理が終わったあとに CRIMANAPLAYER_STATUS_STOP 状態になります。 criManaPlayer_Stop 関数終了直後に停止状態になるとは限りません。

メモリ不足やデータエラーなど何らかの問題が発生した場合は CRIMANAPLAYER_STATUS_ERROR 状態となります。
CRIMANAPLAYER_STATUS_ERROR 状態になった場合は criManaPlayer_Stop 関数 を呼び出してハンドル状態が CRIMANAPLAYER_STATUS_STOP 状態に遷移させてください。

criManaPlayer_Destroy 関数は CRIMANAPLAYER_STATUS_STOP, CRIMANAPLAYER_STATUS_PLAYEND の いずれかの状態の時のみ呼び出すことができます。
参照
criManaPlayer_GetStatus
列挙値
CRIMANAPLAYER_STATUS_STOP 

停止中

CRIMANAPLAYER_STATUS_DECHDR 

ヘッダー解析中

CRIMANAPLAYER_STATUS_WAIT_PREP 

バッファリング開始停止中

CRIMANAPLAYER_STATUS_PREP 

再生準備中

CRIMANAPLAYER_STATUS_READY 

再生待機中

CRIMANAPLAYER_STATUS_PLAYING 

再生中

CRIMANAPLAYER_STATUS_PLAYEND 

再生終了

CRIMANAPLAYER_STATUS_ERROR 

エラー

◆ CriManaTimerType

タイマー種別

説明:
Manaプレーヤーが内部の時刻として同期する参照タイマー(マスタータイマー)の種別です。
参照
criManaPlayer_SetMasterTimerType, criManaPlayer_GetMasterTimerType
列挙値
CRIMANAPLAYER_TIMER_NONE 

ビデオフレームは時刻同期をしません。
デコードが終わったフレームはすぐに取得することができます。

CRIMANAPLAYER_TIMER_SYSTEM 

ビデオフレームは Manaプレーヤーが内部で使用しているシステム時刻 に同期します。

CRIMANAPLAYER_TIMER_AUDIO 

ビデオフレームはメインオーディオトラックで再生しているオーディオ時刻に同期します。
もしもムービーデータにオーディオが含まれていない場合は、ビデオはシステム時刻に同期します。

CRIMANAPLAYER_TIMER_USER 

ビデオフレームはアプリケーションから指定されたユーザー独自のタイマーに同期します。

CRIMANAPLAYER_TIMER_MANUAL 

マニュアルタイマー:アプリケーションから時刻が進む単位の設定や 時刻を進めるモードです。

◆ CriManaVideoCodecType

ビデオコーデック種別

説明:
再生するムービーに含まれるビデオコーデックの種別です。 現状は Sofdec.Prime (従来のSofdecコーデック) のみの対応になります。
参照
CriManaVideoInfo, CriManaMovieInfo, criManaPlayer_GetMovieInfo
列挙値
CRIMANA_VIDEO_CODEC_UNKNOWN 

Unknown

CRIMANA_VIDEO_CODEC_SOFDEC_PRIME 

Sofdec.Prime

CRIMANA_VIDEO_CODEC_H264 

H.264/AVC

CRIMANA_VIDEO_CODEC_VP9 

VP9

◆ CriManaAudioCodecType

オーディオコーデック種別

説明:
再生するムービーに含まれるオーディオコーデックの種別です。 現状は ADX コーデックのみの対応になります。
参照
CriManaAudioInfo, CriManaMovieInfo, criManaPlayer_GetMovieInfo
列挙値
CRIMANA_AUDIO_CODEC_UNKNOWN 

Unknown

CRIMANA_AUDIO_CODEC_ADX 

Advanced ADX

CRIMANA_AUDIO_CODEC_HCA 

HCA

◆ CriManaAlphaType

アルファムービーの合成モード

説明:
参照
CriManaPlaybackAlphaParams, CriManaAlphaInfo, CriManaFrameInfo, criManaPlayer_IsFrameOnTime, criManaPlayer_ReferFrame, criManaPlayer_DiscardFrame criManaPlayer_CopyFrameToBufferARGB32, criManaPlayer_CopyFrameToBuffersYUV
列挙値
CRIMANA_COMPO_OPAQ 

不透明、アルファ情報なし

CRIMANA_COMPO_ALPHFULL 

フルAlpha合成(アルファ用データが8ビット)

CRIMANA_COMPO_ALPH3STEP 

3値アルファ

CRIMANA_COMPO_ALPH32BIT 

フルAlpha、(カラーとアルファデータで32ビット)

CRIMANA_COMPO_ALPH1BIT 

フルAlpha、(カラーとアルファで32ビット、α値は2値)

CRIMANA_COMPO_ALPH2BIT 

フルAlpha、(カラーとアルファで32ビット、α値は4値)

CRIMANA_COMPO_ALPH3BIT 

フルAlpha、(カラーとアルファで32ビット、α値は8値)

CRIMANA_COMPO_ALPH4BIT 

フルAlpha、(カラーとアルファで32ビット、α値は16値)

◆ CriManaMetaFlag

メタデータの使用フラグ 【現在未対応】

説明:
どの種類のメタデータを使用したいかを制御するためのフラグです。 現状は種別ごとのフラグ制御は未対応です。シーク再生やキューポイントを使用する場合は、 CRIMANA_META_FLAG_ALLを指定してください。
参照
criManaPlayer_SetMetaDataWorkAllocator
列挙値
CRIMANA_META_FLAG_NONE 

メタデータを使用しない

CRIMANA_META_FLAG_CUE 

未対応

CRIMANA_META_FLAG_SEEK 

未対応

CRIMANA_META_FLAG_ALL 

全ての形式のメタデータを使用

◆ CriManaReferFrameResult

ReferFrameのフレーム参照結果 (デバッグ情報)

説明:
デコード済みのビデオフレームへの参照結果を表します。 このパラメーターはデバッグ時の参考情報として使用してください。
参照
CriManaFrameInfo criManaPlayer_IsFrameOnTime, criManaPlayer_ReferFrame, criManaPlayer_DiscardFrame, criManaPlayer_CopyFrameToBufferARGB32, criManaPlayer_CopyFrameToBuffersYUV
列挙値
CRIMANA_REFER_RESULT_OK 

フレーム参照成功

CRIMANA_REFER_RESULT_SHORT_INPUT 

入力バッファー内のデータ不足

CRIMANA_REFER_RESULT_SHORT_CPUTIME 

デコード処理のCPU時間不足

CRIMANA_REFER_RESULT_NO_MORE_KEEP 

キープ可能なフレームがない

◆ CriManaShouldDropFrameReason

criManaPlayer_ShouldDropFrame判定した理由

説明:
参照結果のビデオフレームをドロップすべきかどうか判定した理由を表します。
参照
criManaPlayer_ShouldDropFrame
列挙値
CRIMANA_DROP_FRAME_REASON_NO_NEED_TO_DROP 

フレームのドロップ不要

CRIMANA_DROP_FRAME_REASON_DROP_DELAY 

再生時刻に対してフレーム時刻が遅れているためドロップすべき

CRIMANA_DROP_FRAME_REASON_DROP_CONCATENATION 

ループ再生や連結再生時にオーディオ基準の連結調整のためドロップすべき

◆ CriManaColorSpaceConversionType

◆ CriManaPlayerMovieEventSyncMode

ムービーイベント(キューポイント、字幕)の同期モード

説明:
ムービーイベントの同期モードを示します。
参照
criManaPlayer_SetMovieEventSyncMode
列挙値
CRIMANAPLAYER_EVENT_SYNC_FRAME_TIME 

ムービーイベントはフレーム時刻(ビデオフレームの取得)に同期します。

CRIMANAPLAYER_EVENT_SYNC_PLAYBACK_TIME 

ムービーイベントは再生時刻(タイマー種別に基づいた再生時刻)に同期します。

関数詳解

◆ criManaPlayer_CalculateHandleWorkSize()

CriSint32 criManaPlayer_CalculateHandleWorkSize ( void  )

ManaPlayer用ワーク領域サイズの計算(コンフィグ指定なし)

戻り値
CriSint32 ハンドルワークサイズ
呼び出し条件:
スレッドセーフです。
説明:
Manaプレーヤーを作成するために必要な、ワーク領域のサイズを取得します。
Manaプレーヤーの作成に必要なワークメモリサイズは機種ごとに異なります。
参照
criManaPlayer_Create

◆ criManaPlayer_CalculateHandleWorkSizeWithConfig()

CriSint32 criManaPlayer_CalculateHandleWorkSizeWithConfig ( const CriManaPlayerConfig config)

ManaPlayer用ワーク領域サイズの計算(コンフィグ指定つき)

引数
[in]configManaプレーヤーハンドル作成用コンフィグ構造体へのポインタ
戻り値
CriSint32 ハンドルワークサイズ
呼び出し条件:
スレッドセーフです。
説明:
Manaプレーヤーを作成するために必要なワーク領域のサイズを取得します。
criManaPlayer_CalculateHandleWorkSize とは異なり、ハンドル作成用のパラメーターに 基づいてワークサイズを計算します。
本関数で計算したワークサイズ以上のメモリを確保し、criManaPlayer_CreateWithConfigに 指定してください。
備考:
同一のパラメーターの場合でも、Manaプレーヤーの作成に必要なワークメモリサイズは機種ごとに異なります。
参照
criManaPlayer_CreateWithConfig, criManaPlayer_SetDefaultHandleConfig

◆ criManaPlayer_Create()

CriManaPlayerHn criManaPlayer_Create ( void *  work,
CriSint32  work_size 
)

Manaプレーヤーの作成(コンフィグ指定なし)

引数
[in]workワーク領域のアドレス (内部でアライン調整)
[in]work_sizeワーク領域のサイズ
戻り値
CriManaPlayerHn Manaプレーヤーハンドル
呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。
説明:
Manaプレーヤーを作成します。

プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
アプリケーション側で明示的にメモリを確保する場合は、::criManaPlayer_CalculateHandleWorkSize 関数で必要なワークサイズを確認し、確保したワークメモリを引数に渡してください。
workにNULL、work_sizeに0を指定した場合は、 criMana_SetUserAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。
注意:
ムービーデコーダーのハンドルリソースとは別に ストリーミングを行うためのデータ読み込み用のローダーハンドル(CriFsLoader)、 ファイルオープン用のリソースを消費します。
動画・音声のストリーミング再生本数が多い場合(デフォルト:16本を超える場合)、 AtomEx/Manaライブラリとは別途、先にFile Systemの初期化コンフィグのパラメーター (ローダーハンドル数、ファイルオープン数の上限値)を設定し、初期化する必要があります。
参照
criManaPlayer_CalculateHandleWorkSize, criManaPlayer_Destroy

◆ criManaPlayer_CreateWithConfig()

CriManaPlayerHn criManaPlayer_CreateWithConfig ( const CriManaPlayerConfig config,
void *  work,
CriSint32  work_size 
)

Manaプレーヤーの作成(コンフィグ指定つき)

引数
[in]configManaプレーヤーハンドル作成用コンフィグ構造体へのポインタ
[in]workワーク領域のアドレス (内部でアライン調整)
[in]work_sizeワーク領域のサイズ
戻り値
CriManaPlayerHn Manaプレーヤーハンドル
呼び出し条件:
ライブラリが初期化済みであること。

スレッドセーフではありません。
説明:
ハンドル作成パラメーターを指定して、Manaプレーヤーを作成します。
作成されたプレーヤーは、パラメーターに応じて内部リソースを必要なだけ確保します。

プレーヤーを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
アプリケーション側で明示的にメモリを確保する場合は、::criManaPlayer_CalculateHandleWorkSizeWithConfig 関数で必要なワークサイズを確認し、確保したワークメモリを引数に渡してください。
workにNULL、work_sizeに0を指定した場合は、 criMana_SetUserAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。

注意
ハンドル作成パラメーターを調整してManaプレーヤーハンドルを作成した場合、そのハンドルを使用して 再生できるムービーは、ハンドル作成パラメーターの条件を満たすものに限定されます。
その代り、再生開始遅延を少なく再生できるなどのメリットを享受できます。
参照
criManaPlayer_CalculateHandleWorkSizeWithConfig, criManaPlayer_Destroy

◆ criManaPlayer_Destroy()

void criManaPlayer_Destroy ( CriManaPlayerHn  player)

Manaプレーヤーの破棄

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
プレーヤーステータスが、CRIMANAPLAYER_STSTUS_STOP もしくは CRIMANAPLAYER_STSTUS_PLAYENDの時。

スレッドセーフではありません。
説明:
Manaプレーヤーを破棄します。
本関数を実行した時点で、AtomExプレーヤー作成時に確保されたリソースが全て解放されます。
また、引数に指定したManaプレーヤーハンドルも無効になります。
criManaPlayer_Create 関数で設定したワークメモリは、本関数の実行後に解放してください。 アプリケーション側でワークメモリを渡さず、ライブラリ側でメモリ確保を行った場合は、本関数で 内部でメモリの解放を行ないます。
参照
criManaPlayer_Create

◆ criManaPlayer_SetMetaDataWorkAllocator()

void criManaPlayer_SetMetaDataWorkAllocator ( CriManaPlayerHn  player,
CriManaMetaMallocFunc  allocfunc,
CriManaMetaFreeFunc  freefunc,
void *  obj,
CriManaMetaFlag  meta_flag 
)

メタデータ用アロケーターの登録

引数
[in]playerManaプレーヤーハンドル
[in]allocfuncメタデータワーク確保コールバック関数
[in]freefuncメタデータワーク解放コールバック関数
[in]objユーザーオブジェクト(任意)
[in]meta_flag使用メタフラグ(未対応)
呼び出し条件:
ヘッダーの解析処理前に本関数を呼び出してください。

スレッドセーフではありません。
説明:
シークやキューポイントの機能に必要なメタデータを確保するためのメモリアロケーター (メモリの確保/解放関数)の設定を行います。
本関数でメモリアロケーターを登録した場合、ヘッダー解析時にライブラリ内部で 登録されたメタデータワーク用のアロケーターを使用してメタデータワークを確保します。

逆に、本関数を実行しない場合は自動的にメタデータは破棄されます。この場合はシークや キューポイントの機能が使用できないので注意してください。
備考:
現在、meta_flagによるメタデータの種別ごとに設定は利用できません。CRIMANA_META_FLAG_ALLを使用して下さい。

また、ハンドルを再利用してムービーを再生する場合には、アロケーターの再登録は必要ありません。
注意:
登録したメモリアロケーターは複数スレッドから呼び出される場合があります。 マルチスレッドセーフなアロケーターを登録してください。
参照
CriManaMetaMallocFunc, CriManaMetaFreeFunc

◆ criManaPlayer_GetPlaybackWorkParam()

CriBool criManaPlayer_GetPlaybackWorkParam ( CriManaPlayerHn  player,
CriManaPlaybackBasicWorkConfig config_basic,
CriManaPlaybackExWorkConfig config_ex 
)

再生ワークパラメーター構造体の取得

引数
[in]playerManaプレーヤーハンドル
[out]config_basic基本再生ワーク用パラメーターのポインタ(必須)
[out]config_ex拡張再生ワーク用パラメーターのポインタ(追加)NULL指定可
戻り値
CriBool ワークパラメーターが取得できたかどうか
ヘッダー解析前の状態だとCRI_FALSEを返します。
呼び出し条件:
ヘッダー解析が完了し、CRIMANAPLAYER_STATUS_WAIT_PREPの時に呼び出してください。

スレッドセーフではありません。
説明:
ムービーファイルのヘッダー情報を元にした、ムービー再生用のデフォルト再生パラメーターを取得します。

ヘッダー解析が完了していない状態で、本関数を呼び出した場合は、config_basic や config_ex の内容をクリアします。

サブオーディオ再生やアルファムービー再生を行わない場合は、config_ex をNULLで省略することが出来ます。
注意:
サブオーディオ再生を行う場合、本APIの呼び出しよりも前にオーディオトラックの設定を行ってください。
本APIの呼び出しよりも後にオーディオトラックの設定を行うと、オーディオの再生ワークサイズが正しく計算できず、 再生ワーク領域の設定に失敗する場合があります。

◆ criManaPlayer_CalculatePlaybackWorkSize()

CriSint32 criManaPlayer_CalculatePlaybackWorkSize ( CriManaPlayerHn  player,
const CriManaPlaybackBasicWorkConfig config_basic,
const CriManaPlaybackExWorkConfig config_ex 
)

再生用ワーク領域のサイズ計算

引数
[in]playerManaプレーヤーハンドル
[in]config_basic基本再生ワーク用パラメーターのポインタ(必須)
[in]config_ex拡張再生ワーク用パラメーターのポインタ(追加)NULL指定可
戻り値
CriSint32 再生ワークサイズ
呼び出し条件:
スレッドセーフです。
説明:
指定されたムービーファイルの再生に必要なワークメモリのサイズを計算します。
config_ex が NULLで渡された場合は、拡張再生用のワークメモリを除外したサイズを返します。

◆ criManaPlayer_SetPlaybackWork()

void criManaPlayer_SetPlaybackWork ( CriManaPlayerHn  player,
const CriManaPlaybackBasicWorkConfig config_basic,
const CriManaPlaybackExWorkConfig config_ex,
void *  work,
CriSint32  work_size 
)

再生ワーク領域の設定

引数
[in]playerManaプレーヤーハンドル
[in]config_basic基本再生ワーク用パラメーターのポインタ(必須)
[in]config_ex拡張再生ワーク用パラメーターのポインタ(追加)NULL指定可
[in]workアプリが確保したワーク領域(内部自動アライン調整)
[in]work_sizeワークサイズ
呼び出し条件:
CRIMANAPLAYER_STATUS_WAIT_PREP か、それよりも前の状態で呼び出してください。

スレッドセーフではありません。
説明:
指定されたムービーファイルの再生に必要なワークメモリ設定します。

アプリケーション側で明示的にメモリを確保する場合は、::criManaPlayer_CalculatePlaybackWorkSize 関数で必要なワークサイズを確認し、確保したワークメモリを引数に渡してください。
workにNULL、work_sizeに0を指定した場合は、::criMana_SetUserAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。
本関数を実行せずに再生を開始した場合、内部で自動的にデフォルトの再生パラメーターを使用して再生を 行います。この場合、::criMana_SetUserAllocator 関数でメモリアロケーターが登録されていることが条件になります。
設定したワーク領域の解放はプレーヤーハンドル破棄後に行ってください。再生終了後もしくは再生停止後 にワーク領域を解放する場合、 criManaPlayer_FreePlaybackWork 関数を呼び出してからメモリの解放を 行ってください。
参照
criManaPlayer_CalculatePlaybackWorkSize

◆ criManaPlayer_FreePlaybackWork()

void criManaPlayer_FreePlaybackWork ( CriManaPlayerHn  player)

再生用ワークの解放

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
MANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
再生中に本関数を呼び出すとエラーになります。
スレッドセーフではありません。
説明:
プレーヤーハンドル内部で確保/保持している再生用ワークメモリおよび内部リソースを解放します。

ユーザーアロケーターを登録して再生ワークを確保した場合、本関数内部でアロケーター経由で 再生ワークメモリを解放します。

本関数を実行するとプレーヤーハンドルからの再生ワークメモリへのアクセスを行わなくなります。 アプリケーションから再生ワークメモリを渡している場合、本関数を呼び出し後にメモリの解放が 可能です。

◆ criManaPlayer_GetStatus()

CriManaPlayerStatus criManaPlayer_GetStatus ( CriManaPlayerHn  player)

Manaプレーヤーの状態取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriManaPlayerStatus Manaプレーヤーのハンドル状態
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーのステータスを取得します。
参照
CriManaPlayerStatus

◆ criManaPlayer_ExecuteMain()

void criManaPlayer_ExecuteMain ( CriManaPlayerHn  player)

Manaプレーヤーのサーバー処理の実行

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーハンドルの内部状態を更新します。

アプリケーションで criMana_ExecuteMain 関数を呼び出している場合は、内部でこの関数が自動的に呼び出されるので、 本関数を実行する必要はありません。

◆ criManaPlayer_SyncMasterTimer()

void criManaPlayer_SyncMasterTimer ( CriManaPlayerHn  player)

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

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーハンドルの時刻を、マスタータイマーに同期させます。
この関数は、最低でもビデオのフレームレートよりも細かい周期で呼び出す必要が あります。
アプリケーションで criMana_SyncMasterTimer 関数を呼び出している場合は、内部でこの関数が自動的に呼び出されるので、 本関数を実行する必要はありません。

◆ criManaPlayer_SetMasterTimerType()

void criManaPlayer_SetMasterTimerType ( CriManaPlayerHn  player,
CriManaTimerType  type 
)

マスタータイマー種別の設定

引数
[in]playerManaプレーヤーハンドル
[in]typeマスタータイマー種別
呼び出し条件:
スレッドセーフです。
説明:
ビデオフレームの時刻管理に使用するタイマー種別を指定します。
デフォルトはハンドル作成時に指定するシステムタイマーです。
ビデオフレームの表示タイミングをオーディオの時刻と同期させたいときはオーディオタイマーを指定してください。
オーディオタイマーを指定した場合でも、再生するムービーにオーディオが含まれていない場合はシステムタイマー同期となります。
ビデオフレームの表示タイミングをムービーのオーディオトラック以外の任意のタイマーと同期させたい場合は、ユーザータイマーを指定してください。
ユーザータイマーを指定した場合はムービーのオーディオが含まれているか否かに関わらず、ユーザータイマーを基準に同期します。
備考:
オーディオタイマーまたはユーザータイマーを指定した場合、マスタータイマーはオーディオタイマーまたはユーザータイマーを基準に内部で時刻計算を行い、時刻を更新します。
すなわちオーディオタイマーまたはユーザータイマーが時刻を進めていない区間でも、ムービーがポーズ中である場合を除き、 criManaPlayer_GetTime では呼び出す度に更新された時刻を返します。
参照
criMana_SyncMasterTimer, criManaPlayer_SyncMasterTimer

◆ criManaPlayer_GetMasterTimerType()

CriManaTimerType criManaPlayer_GetMasterTimerType ( CriManaPlayerHn  player)

マスタータイマーの種別取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriManaTimerType カレントマスタータイマー種別
呼び出し条件:
スレッドセーフです。
説明:
現在設定されているマスタータイマーの種別を取得します。

◆ criManaPlayer_SetUserTime()

void criManaPlayer_SetUserTime ( CriManaPlayerHn  player,
CriUint64  user_count,
CriUint64  user_unit 
)

ユーザータイマーの時刻をマスタータイマーの時刻に設定

引数
[in]playerManaプレーヤーハンドル
[in]user_countユーザータイマーのカウント
[in]user_unitユーザータイマー1秒あたりのカウント数。 user_count / user_unit で秒単位の時刻になります。
呼び出し条件:
スレッドセーフではありません。
説明:
ユーザータイマーの時刻をマスタータイマーの時刻に設定します。
ユーザータイマーでムービー再生を進めるためには定期的に本関数を呼び出し、 その後 criMana_SyncMasterTimercriManaPlayer_SyncMasterTimer を呼び出してください。
ムービーをポーズする際は同時にユーザータイマーを一時停止するか、本関数を呼ばないようにしてください。
備考:
ユーザータイマーを早送り又はスローで進めるとマスタータイマーの精度が悪くなり、正しい時刻でフレームを取得しにくくなるため 通常は等倍速再生で本関数をご使用ください。
参照
criMana_SyncMasterTimer, criManaPlayer_SyncMasterTimer, criManaPlayer_SetMasterTimerType

◆ criManaPlayer_SetManualTimerUnit()

void criManaPlayer_SetManualTimerUnit ( CriManaPlayerHn  player,
CriUint64  timer_manual_unit_n,
CriUint64  timer_manual_unit_d 
)

マニュアルタイマーの時刻が進む単位の設定(有理数形式)

引数
[in]playerManaプレーヤーハンドル
[in]timer_manual_unit_n時刻が進む単位の分子。
[in]timer_manual_unit_d時刻が進む単位の分母。
呼び出し条件:
スレッドセーフではありません。
説明:
マニュアルタイマーの時刻が進む単位を有理数形式で設定します。 「分子(timer_manual_unit_n) / 分母(timer_manual_unit_d) = 時刻が進む単位(秒)」になります。 以下の設定例を参考にして下さい。
設定例
メインループ(アプリ更新頻度) 分子(timer_manual_unit_n) 分母(timer_manual_unit_d) 時刻が進む単位
60 fps 1 60 1 / 60 (≒ 16.6 msec)
59.94 fps 1001 60000 1001 / 60000 (≒ 16.7 msec)
30 fps 1 30 1 / 30 (≒ 33.3 msec)
29.97 fps 1001 30000 1001 / 30000 (≒ 33.4 msec)

本関数で設定した値とcriMana_AdvanceManualTimer関数、または criManaPlayer_AdvanceManualTimer関数で進めたカウント値から Manaプレーヤー内部の時刻を計算します。

参照
criMana_AdvanceManualTimer, criManaPlayer_AdvanceManualTimer

◆ criManaPlayer_AdvanceManualTimer()

void criManaPlayer_AdvanceManualTimer ( CriManaPlayerHn  player)

マニュアルタイマーの時刻(カウント値)を進める

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
マニュアルタイマーで個別のハンドルについて時刻(カウント値)を進めます。 マニュアルタイマーでムービー再生を進めるためにはアプリケーションで定期的に本関数を呼び出す必要があります。 ・プレーヤーステータスがPLAYING(再生中)の時に時刻が進みます。 ・ポーズ中は本関数を呼び出しても時刻は進みません。 ・再生開始、再生停止時に時刻(カウント値)は0にリセットされます。
参照
criManaPlayer_SetManualTimerUnit

◆ criManaPlayer_ExecuteVideoProcess()

CriBool criManaPlayer_ExecuteVideoProcess ( CriManaPlayerHn  player)

ビデオのデコード処理

引数
[in]playerManaプレーヤーハンドル
戻り値
CriBool ムービー再生中はCRI_TRUE、再生終了または停止後はCRI_FALSE
呼び出し条件:
スレッドセーフです。
説明:
Manaプレーヤーハンドルに対して、一ピクチャ分のデコードを行います。
ピクチャデコードは負荷の高い処理なので、アプリケーションのメインスレッドから呼び出すと処理落ちが発生する可能性があります。
その場合は、マルチスレッドフレームワークに設定するか、あるいは本関数を優先度の低い別スレッドから呼び出してください。

criMana_ExecuteVideoProcess 関数を呼び出している場合は、本関数は内部で自動的に呼び出されるため、 本関数を使用する必要はありません。また、マルチスレッドフレームワーク動作時の場合、本関数を呼び出しても何も 処理を行ないません。
本関数の返り値は、ムービー再生の実行中かどうかを表しています。
アプリケーション側で別スレッドでこの関数を呼び出す場合は、必ずCRI_FALSEになるまでこの関数呼びつづけて下さい。
返り値がCRI_TRUEの間にデコードスレッドを終了してしまうと、ハンドルの状態が CRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND に遷移できず、ハンドル破棄が出来なくなります。

◆ criManaPlayer_SetFile()

void criManaPlayer_SetFile ( CriManaPlayerHn  player,
CriFsBinderHn  bndrhn,
const CriChar8 *  path 
)

ムービーファイルの設定

引数
[in]playerManaプレーヤーハンドル
[in]bndrhnCPKファイルをバインド済みのバインダーハンドル
[in]pathCPKファイル内のコンテンツパス
呼び出し条件:
CRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
または、データ要求コールバックの内部で呼び出すことができます。
スレッドセーフではありません。
説明:
ストリーミング再生用のファイルパスを設定します。
第二引数の bndhn にCPKファイルをバインドしたバインダーハンドルを指定することにより、CPKファイルからのムービー再生が行なえます。 CPKからではなく直接ファイルからストリーミングする場合は、bndhn にNULLを指定ください。

本関数を繰り返し呼び出した場合は、ファイルパス情報は上書きされます。
criManaPlayer_SetData 関数を呼び出した場合は、本関数で指定したメモリ情報はハンドル内から消去されます。

同じハンドルで同じムービーデータを繰り返し再生する場合は、本関数の呼び出しは省略することができます。

◆ criManaPlayer_SetData()

void criManaPlayer_SetData ( CriManaPlayerHn  player,
const void *  dataptr,
CriSint64  datasize 
)

メモリ再生用のデータ指定

引数
[in]playerManaプレーヤーハンドル
[in]dataptr全ムービーデータをロード済みのバッファーアドレス
[in]datasizeバッファーサイズ
呼び出し条件:
CRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
または、データ要求コールバックの内部で呼び出すことができます。

スレッドセーフではありません。
説明:
メモリ再生用のデータアドレスを設定します。

本関数を繰り返し呼び出した場合は、メモリ情報は上書きされます。
criManaPlayer_SetFile 関数、 criManaPlayer_SetFileRange 、もしくは criManaPlayer_SetContentId 関数を呼び出した場合は、本関数で指定したメモリ情報はハンドル内から消去されます。

同じハンドルで同じムービーデータを繰り返し再生する場合は、本関数の呼び出しは省略することができます。

指定されたメモリ領域に実際にアクセスするのは、 criManaPlayer_DecodeHeader 関数, criManaPlayer_Prepare 関数, criManaPlayer_Start 関数のいずれかが呼び出された時以降です。
備考:
指定バッファーがムービーデータサイズよりも大きい場合、バッファー末尾の非ムービーデータ部分は読み飛ばします。 バッファーアドレスについては必ずムービーデータ先頭を指定してください。

◆ criManaPlayer_SetContentId()

void criManaPlayer_SetContentId ( CriManaPlayerHn  player,
CriFsBinderHn  bndrhn,
CriSint32  id 
)

再生ムービーファイルの設定 (CPKのコンテンツID指定)

引数
[in]playerManaプレーヤーハンドル
[in]bndrhnCPKをバインド済みのバインダーハンドル
[in]idCPKファイル内のコンテンツID
呼び出し条件:
CRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
または、データ要求コールバックの内部で呼び出すことができます。
スレッドセーフではありません。
説明:
ムービーファイルのコンテンツIDを設定します。
第二引数の bndhn にCPKファイルをバインドしたバインダーハンドルを指定することにより、CPKファイルからストリーミング再生が行なえます。 CPKからではなく単体のムービーファイルからストリーミング再生する場合は、bndhn にNULLを指定ください。

本関数を繰り返し呼び出した場合は、ファイルパス情報は上書きされます。
criManaPlayer_SetData 関数を呼び出した場合は、本関数で指定したコンテンツID情報はハンドル内から消去されます。

同じハンドルで同じムービーデータを繰り返し再生する場合は、本関数の呼び出しは省略することができます。

◆ criManaPlayer_SetFileRange()

void criManaPlayer_SetFileRange ( CriManaPlayerHn  player,
const CriChar8 *  fname,
CriUint64  offset,
CriSint64  range 
)

パックファイル内のムービーファイルの指定 (ファイル範囲指定)

引数
[in]playerManaプレーヤーハンドル
[in]fnameムービーファイルを含むパックファイルへのパス
[in]offsetパックファイル先頭からのムービーへのオフセット
[in]rangeムービーデータの範囲 (単位:バイト)
呼び出し条件:
CRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
または、データ要求コールバックの内部で呼び出すことができます。

スレッドセーフではありません。
説明:
ストリーミング再生を行いたいムービーファイルをパッキングしたファイルを指定します。引数にオフセット位置とデータ範囲を指定 することで、パックファイル内の任意のムービーデータを読み込み元にすることが出来ます。 ファイルパスとして指定できる文字列の最大長は CRIMANA_MAX_FILE_NAME バイトです。

本関数を繰り返し呼び出した場合は、ファイルパス情報は上書きされます。
criManaPlayer_SetData 関数を呼び出した場合は、本関数で指定したファイル情報はハンドル内から消去されます。

同じハンドルで同じムービーデータを繰り返し再生する場合は、本関数の呼び出しは省略することができます。
備考:
この関数の内部ではファイルのオープン要求はしません。ファイルのオープン処理は criManaPlayer_DecodeHeader 関数, criManaPlayer_Prepare 関数, criManaPlayer_Start 関数 のいずれかの呼出し後、::criManaPlayer_ExecuteMain 関数の中で行われます。

◆ criManaPlayer_SetPreviousDataAgain()

void criManaPlayer_SetPreviousDataAgain ( CriManaPlayerHn  player)

同一ムービーデータの再セット

引数
[in]playerManaプレーヤーハンドル
説明:
前回再生したデータを、再度再生するようManaプレーヤーに指示します。
例:
以下の処理により、同一音声データを無限にループ再生可能です。
// データ要求コールバック関数
void on_data_request(void *obj, CriManaPlayerHn player)
{
// 前回再生したデータを再セット
}
main()
{
:
// データ要求コールバック関数の登録
criManaPlayer_SetDataRequestCallback(player, on_data_request, NULL);
// まず最初のムービーデータをセット
criManaPlayer_SetData(player, buffer, buffer_size);
// [MEMO] ムービーソースは以下も同様に使用可能
// criManaPlayer_SetFile(player, NULL, movie_path);
// criManaPlayer_SetFileRange(player, movie_path, offset, range);
// セットされた音声データを再生
:
}
void criManaPlayer_SetPreviousDataAgain(CriManaPlayerHn player)
同一ムービーデータの再セット
void criManaPlayer_SetDataRequestCallback(CriManaPlayerHn player, CriManaPlayerDataRequestCbFunc func, void *obj)
データ要求コールバックの登録
void criManaPlayer_Start(CriManaPlayerHn player)
再生開始
void criManaPlayer_SetData(CriManaPlayerHn player, const void *dataptr, CriSint64 datasize)
メモリ再生用のデータ指定
CriManaPlayerObj * CriManaPlayerHn
プレーヤーハンドル
Definition: cri_mana.h:802
注意
本関数はデータ要求コールバック関数内でのみ使用します。
(データ要求コールバック関数外でも実行可能ですが、その場合何の効果もありません。)
備考:
単純にループ再生をする場合は、::criManaPlayer_Loop関数でも実現可能です。
参照
criManaPlayer_SetDataRequestCallback

◆ criManaPlayer_GetMovieInfo()

CriBool criManaPlayer_GetMovieInfo ( CriManaPlayerHn  player,
CriManaMovieInfo mvinf 
)

ムービーヘッダー情報の取得

引数
[in]playerManaプレーヤーハンドル
[out]mvinfムービー情報構造体へのアドレス
戻り値
CriBool ムービー情報が取得できたかどうか
呼び出し条件:
Manaプレーヤーの状態が CRIMANAPLAYER_STATUS_WAIT_PREP 以降の呼び出しで取得できます。

スレッドセーフではありません。
説明:
ムービー情報 CriManaMovieInfo を取得します。
ムービー情報からは主にビットレートや解像度、オーディオ数などがわかります。
再生開始前にムービー情報を知りたい場合は、 criManaPlayer_DecodeHeader 関数を呼び出してヘッダー解析を行ってください。

連結再生を行った場合、最後に取得したフレームを含むムービーファイルについての情報を返します。
参照
criManaPlayer_DecodeHeader

◆ criManaPlayer_DecodeHeader()

void criManaPlayer_DecodeHeader ( CriManaPlayerHn  player)

ヘッダーのデコード要求

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
Manaプレーヤーの状態がCRIMANAPLAYER_STATUS_STOP や CRIMANAPLAYER_STATUS_PLAYEND状態で本関数を実行してください。
また、本関数の実行の前に再生ファイルや再生データの指定を行ってください。

スレッドセーフではありません。
説明:
ムービーの再生は開始せず、ヘッダー解析のみ行って待機するための関数です。
この関数を使用してヘッダー解析を事前に済ませることにより、再生開始前にムービーの解像度やオーディオの情報を得ることができます。
本関数を呼び出すと、Manaプレーヤーのハンドル状態はCRIMANAPLAYER_STATUS_STOP → CRIMANAPLAYER_STATUS_DECHDR と遷移していき、 ヘッダー解析が完了するとCRIMANAPLAYER_STATUS_WAIT_PREPとなります。
ムービー情報を取得するには、ハンドル状態がCRIMANAPLAYER_STATUS_WAIT_PREPになったあとに criManaPlayer_GetMovieInfo 関数 を実行してください。

ハンドル状態がCRIMANAPLAYER_STATUS_WAIT_PREPの時に、 criManaPlayer_Prepare 関数 か criManaPlayer_Start 関数 を 呼ぶことで再生処理を続けることができます。
備考:
データ要求コールバック関数を登録している場合は事前のムービーデータ設定は省略可能です。
参照
criManaPlayer_GetStatus, criManaPlayer_Prepare, criManaPlayer_Start, criManaPlayer_SetDataRequestCallback

◆ criManaPlayer_Prepare()

void criManaPlayer_Prepare ( CriManaPlayerHn  player)

再生の準備要求

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
本関数の実行の前に再生ファイルや再生データの指定を行ってください。

スレッドセーフではありません。
説明:
ムービーの再生は開始せず、ヘッダー解析と再生準備のみを行って待機するための関数です。
この関数を使用して再生準備を事前に済ませることにより、ムービー再生開始のタイミングを細かく制御することができます。
(再生準備無しで再生開始関数を呼び出した場合は、実際に再生が始まるまでにタイムラグが発生します。)
本関数を呼び出すと、Manaプレーヤーのハンドル状態は CRIMANAPLAYER_STATUS_STOP → CRIMANAPLAYER_STATUS_DECHDR → CRIMANAPLAYER_STATUS_PREP と遷移していき、 再生準備が完了するとCRIMANAPLAYER_STATUS_READYとなります。

ハンドル状態がCRIMANAPLAYER_STATUS_READYの時に、 criManaPlayer_Start 関数 を呼ぶことで再生を開始することができます。

criManaPlayer_DecodeHeader 関数の呼び出し無しでこの関数を呼び出す場合は、Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_STOP か CRIMANAPLAYER_STATUS_PLAYEND でなければいけません。
備考:
データ要求コールバック関数を登録している場合は事前のムービーデータ設定は省略することだきます。
参照
criManaPlayer_GetStatus, criManaPlayer_DecodeHeader, criManaPlayer_Start, criManaPlayer_SetBufferingTime

◆ criManaPlayer_Start()

void criManaPlayer_Start ( CriManaPlayerHn  player)

再生開始

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
本関数の実行の前に再生ファイルや再生データの指定を行ってください。

スレッドセーフではありません。
説明:
ムービーの再生を開始します。
criManaPlayer_Prepare 関数を呼ばずに、本関数を呼び出した場合は、ムービーの解析と再生の準備を行うため、 実際にムービーの再生が始まるまでにタイムラグが発生します。
criManaPlayer_Prepare 関数を先に呼び出して、ハンドル状態がCRIMANAPLAYER_STATUS_READYになっていれば、 この関数を呼び出してすぐに再生が始まります。

criManaPlayer_DecodeHeader 関数または criManaPlayer_Prepare 関数の呼び出し無しでこの関数を呼び出す場合は、 Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_STOPかCRIMANAPLAYER_STATUS_PLAYEND でなければいけません。
備考:
データ要求コールバック関数を登録している場合は事前のムービーデータ設定は省略することだきます。
参照
criManaPlayer_GetStatus, criManaPlayer_DecodeHeader, criManaPlayer_Prepare

◆ criManaPlayer_Stop()

void criManaPlayer_Stop ( CriManaPlayerHn  player)

再生の停止要求

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
ムービー再生停止の要求を出します。本関数は即時復帰関数です。本関数内で全ての停止処理が実行されるわけではありません。
本関数呼出し後、再生状態が CRIMANAPLAYER_STATUS_STOP なるまでは通常のメインループ処理を動かしてください。
具体的には criMana_ExecuteMain 関数, criMana_ExecuteVideoProcess 関数等が通常通り呼び出される必要があります。

CriManaPlayerStatus のCRIMANAPLAYER_STATUS_STOP以外のどの状態からでも本関数を呼び出し、CRIMANAPLAYER_STATUS_STOPへ遷移することが可能です。

再生状態が CRIMANAPLAYER_STATUS_ERROR になった場合は、本関数を呼び出して CRIMANAPLAYER_STATUS_STOP を待ってください。
備考:
Ver.1.10よりcriManaPlayer_RequestStopからAPI名を変更しました。
参照
criManaPlayer_GetStatus

◆ criManaPlayer_StopAndWaitCompletion()

void criManaPlayer_StopAndWaitCompletion ( CriManaPlayerHn  player)

再生の停止 (完了復帰API)

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
ムービー再生を停止します。本関数は完了復帰関数です。本関数から処理が戻るとプレーヤーの状態は停止状態になります。
本関数内部では、ストリーミング処理の停止待ちなど行うため、数十ミリ秒ほど処理をブロックする場合があります。
シーンの切替タイミングなど、ゲーム処理が滞っても構わない場合でのみ本関数を実行してください。

CriManaPlayerStatus のCRIMANAPLAYER_STATUS_STOP以外のどの状態からでも本関数を呼び出し、CRIMANAPLAYER_STATUS_STOPへ遷移することが可能です。

メイン処理がブロックされると困る場合は、 criManaPlayer_Stop 関数を使用してください。
参照
criManaPlayer_GetStatus

◆ criManaPlayer_Pause()

void criManaPlayer_Pause ( CriManaPlayerHn  player,
CriBool  sw 
)

再生のポーズ切り替え

引数
[in]playerManaプレーヤーハンドル
[in]swポーズスイッチ(CRI_ON:ポーズ、CRI_OFF:ポーズ解除)
呼び出し条件:
スレッドセーフです。
説明:
本関数の動作は引数に依存します。
引数 sw がCRI_ON(1)なら、一時停止。引数 sw がCRI_OFF(0)なら再生再開です。

本関数を呼び出しても、ファイル読み込みやデコードの停止はすぐには行われません。
criManaPlayer_Stop を呼び出すと、ポーズ状態は解除されます。

◆ criManaPlayer_IsPaused()

CriBool criManaPlayer_IsPaused ( CriManaPlayerHn  player)

再生のポーズ状態の取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriBool ポーズ状態
呼び出し条件:
スレッドセーフです。
説明:
Manaプレーヤーの現在のポーズ状態を取得します。 返り値が CRI_ON(1)なら、ポーズ状態。引数 sw がCRI_OFF(0)ならポーズ解除状態です。

◆ criManaPlayer_Loop()

void criManaPlayer_Loop ( CriManaPlayerHn  player,
CriBool  sw 
)

再生のループ切り替え

引数
[in]playerManaプレーヤーハンドル
[in]swループスイッチ(CRI_FALSE:ループなし、CRI_TRUE:ループあり)
呼び出し条件:
スレッドセーフです。
説明:
ループ再生の有無を設定します。デフォルトはループOFFです。
ループ再生ONにした場合は、ムービーの終端まで再生してもハンドル状態はCRIMANAPLAYER_STATUS_PLAYENDにならず、 ムービーの先頭から再生を繰り返します。

ループ再生OFFに設定した場合は、そのとき読み込んでいたムービーの終端まで再生すると、 ハンドル状態がCRIMANAPLAYER_STATUS_PLAYENDに遷移します。
再生中にループOFFにした場合、タイミングによっては、再生中のムービー終端で終わらず、次の繰り返し 再生まで実行されます。

◆ criManaPlayer_IsLoopEnabled()

CriBool criManaPlayer_IsLoopEnabled ( CriManaPlayerHn  player)

ループ再生を行う設定がされているかどうかの取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriBool 現在のループ再生設定
呼び出し条件:
スレッドセーフです。
説明:
現在のループ設定を取得します。 ループ設定は criManaPlayer_Loop で変更することができます。 返り値が CRI_ON(1)なら、ループON。引数 sw がCRI_OFF(0)ならループOFFです。

◆ criManaPlayer_GetTime()

void criManaPlayer_GetTime ( CriManaPlayerHn  player,
CriUint64 *  count,
CriUint64 *  unit 
)

再生時刻の取得

引数
[in]playerManaプレーヤーハンドル
[out]countタイマーカウント
[out]unit1秒あたりのタイマーカウント数。 count / unit で秒単位の時刻になります。
呼び出し条件:
スレッドセーフではありません。
説明:
タイマー時刻を取得します。時刻はcountとunitの二つの変数で表現します。
count ÷ unit で秒単位の時刻となるような値を返します。
再生開始前および再生停止後は、時刻0(タイマーカウントが0)を返します。
本関数はマスタータイマーで指定されたタイマーの時刻を返すだけで、ビデオフレームの時刻を返すものではありません。
取得したビデオフレームの本来の表示時刻は、ビデオフレーム取得時の CriManaFrameInfo 構造体を参照してください。

◆ criManaPlayer_GetInputBufferSize()

CriSint32 criManaPlayer_GetInputBufferSize ( CriManaPlayerHn  player)

入力バッファーサイズの取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriSint32 入力バッファーサイズ [byte]
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーの入力バッファーサイズを取得します。
入力バッファーサイズは CRIMANAPLAYER_STATUS_PREP 以降で有効な値が取得できます。
備考:
本関数は情報取得用途のみ利用可能なデバッグ関数です。
参照
criManaPlayer_SetBufferingTime, criManaPlayer_GetInputBufferRemainSize

◆ criManaPlayer_GetInputBufferRemainSize()

CriSint32 criManaPlayer_GetInputBufferRemainSize ( CriManaPlayerHn  player)

入力バッファー内データ残量の取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriSint32 入力バッファー内のデータ残量 [byte]
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーの入力バッファー内のデータ残量を取得します。
CRIMANAPLAYER_STATUS_PREP 以降で有効な値が取得できます。
備考:
本関数は情報取得用途のみ利用可能なデバッグ関数です。

動画のコマ落ちやコマ飛ばしが発生した場合、本関数を使用して再生中のプレーヤーの 入力バッファーにデータが残っているかどうかを確認できます。
再生中にもかかわらずデータ残量が長時間0の場合、何らかの異常によりデータ供給 が滞っている可能性があります。
参照
criManaPlayer_SetBufferingTime, criManaPlayer_GetInputBufferRemainSize

◆ criManaPlayer_SetNumberOfFramePools()

void criManaPlayer_SetNumberOfFramePools ( CriManaPlayerHn  player,
CriUint32  npools 
)

内部ビデオバッファー(フレームプール)数の指定

引数
[in]playerManaプレーヤーハンドル
[in]npools内部ビデオバッファー数(最低でも1)
呼び出し条件:
Manaプレーヤーのハンドル状態が、CRIMANAPLAYER_STATUS_WAIT_PREP以前に呼び出してください。
また、この関数は再生ワークパラメーターに影響するため、::criManaPlayer_GetPlaybackWorkParam 関数よりも前に呼び出してください。

スレッドセーフではありません。
説明:
Manaプレーヤー内部のビデオバッファー数を指定します。
この内部ビデオバッファーはデコード結果を蓄えておくためのもので、フレームプールと呼びます。
フレームプールが多いほど先行してビデオデコードを進めることができるため、デコードの 負荷変動が大きい場合や、デコードに使用できるCPU時間の変動が大きい場合にもスムーズな再生を 行いやすくなります。

デフォルトのフレームプール数は1です。

◆ criManaPlayer_SetBufferingTime()

void criManaPlayer_SetBufferingTime ( CriManaPlayerHn  player,
CriFloat32  sec 
)

入力データのバッファリング時間の指定

引数
[in]playerManaプレーヤーハンドル
[in]secバッファリング時間。単位は秒。
呼び出し条件:
Manaプレーヤーのハンドル状態が、CRIMANAPLAYER_STATUS_WAIT_PREP以前に呼び出してください。
また、この関数は再生ワークパラメーターに影響するため、::criManaPlayer_GetPlaybackWorkParam 関数よりも前に呼び出してください。

スレッドセーフではありません。
説明:
ストリーミング再生でバッファリングする入力データの量を秒単位の時間で指定します。
Manaプレーヤーは、バッファリング時間とムービーのビットレート等から読み込みバッファーのサイズを決定します。

デフォルトのバッファリング時間は、1秒分です。

バッファリング時間に 0.0f を指定した場合、バッファリング時間はライブラリのデフォルト値となります。

◆ criManaPlayer_SetMinBufferSize()

void criManaPlayer_SetMinBufferSize ( CriManaPlayerHn  player,
CriUint32  min_buffer_size 
)

最小バッファーサイズの指定

引数
[in]playerManaプレーヤーハンドル
[in]min_buffer_size最小バッファーサイズ [byte]
呼び出し条件:
Manaプレーヤーのハンドル状態が、CRIMANAPLAYER_STATUS_WAIT_PREP以前に呼び出してください。
また、この関数は再生ワークパラメーターに影響するため、::criManaPlayer_GetPlaybackWorkParam 関数よりも前に呼び出してください。

スレッドセーフではありません。
説明:
ムービーデータの最小バッファーサイズを指定します。
最小バッファーサイズを指定した場合、指定サイズ分以上の入力バッファーがManaプレーヤー内部で確保することが保証されます。

単純再生においては本関数を使用する必要はありません。極端にビットレートが異なるようなムービーを連結再生する場合に使用します。

最小バッファーサイズに 0を指定した場合、最小バッファーサイズはムービーデータの持つ値となります。(デフォルト)
備考:
本関数で設定した最小バッファーサイズは criManaPlayer_GetMovieInfo 関数で取得するムービー情報には反映されません。
criManaPlayer_GetMovieInfo 関数できるのはムービーデータ本来の情報です。
参照
criManaPlayer_GetInputBufferSize

◆ criManaPlayer_SetFileStreamingFlag()

void criManaPlayer_SetFileStreamingFlag ( CriManaPlayerHn  player,
CriBool  streaming_flag 
)

ストリーミングフラグの設定

引数
[in]playerManaプレーヤーハンドル
[in]streaming_flagストリーミングフラグ
呼び出し条件:
Manaプレーヤーのハンドル状態が、再生停止または再生終了状態の時のみ呼び出し可能です。

スレッドセーフです。
説明:
ストリーミング再生を行うかどうかの指定をManaプレーヤーに行います。
デフォルトはCRI_TRUEです。CRI_FALSEを指定すると、Manaプレーヤーはオンメモリ再生専用となります。

備考:
ストリーミングフラグを無効にした状態で、ストリーミング再生を開始すると再生エラーになります。

◆ criManaPlayer_SetMaxMovieSize()

void criManaPlayer_SetMaxMovieSize ( CriManaPlayerHn  player,
CriSint32  max_width,
CriSint32  max_height 
)

最大解像度の設定

引数
[in]playerManaプレーヤーハンドル
[in]max_widthムービーの最大幅
[in]max_heightムービーの最大高さ
呼び出し条件:
Manaプレーヤーのハンドル状態が、再生停止または再生終了状態の時のみ呼び出し可能です。

スレッドセーフです。
説明:
プレーヤーで再生するムービーの最大解像度を指定します。

◆ criManaPlayer_SetMaxPictureDataSize()

void criManaPlayer_SetMaxPictureDataSize ( CriManaPlayerHn  player,
CriUint32  max_data_size 
)

最大ピクチャデータサイズの指定

引数
[in]playerManaプレーヤーハンドル
[in]max_data_size最大ピクチャデータサイズ[byte]
呼び出し条件:
再生開始 (criManaPlayer_Prepare 関数または criManaPlayer_Start 関数) 前に本関数を呼び出してください。

スレッドセーフです。
説明:
プレーヤーで再生するムービーデータの最大ピクチャデータサイズを指定します。
本APIは特定コーデックの連結再生を行う場合にのみ使用します。(Sofdec.Primeコーデックには不要)

最大ピクチャデータサイズに 0 を指定した場合、最大ピクチャデータサイズはムービーデータの持つ値となります。

参照
criManaPlayer_SetDataRequestCallback

◆ criManaPlayer_ExecuteAutoSkip()

void criManaPlayer_ExecuteAutoSkip ( CriManaPlayerHn  player,
CriManaFrameInfo frame_info 
)

デコードフレームの自動スキップ判定の実行

引数
[in]playerManaプレーヤーハンドル
[in]frame_infoフレーム情報構造体
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。
スレッドセーフではありません。
説明:
デコードフレームのスキップ判定をアプリ側で指定したManaプレーヤーハンドル単位で行います。 関数内で再生負荷による処理落ちが発生すると判定した場合、 内部で自動的にフレームをスキップします。 見た目はガタつきますが、音飛びの発生を防ぎやすくなります。

デコード済みのフレーム情報の参照、フレームの時刻判定がCRI_TRUEを返したタイミングで本関数を呼び出してください。

例:
CriManaFrameInfo frame_info;
if (criManaPlayer_ReferFrame(player, &frame_info) == CRI_TRUE) {
if (criManaPlayer_IsFrameOnTime(player, &frame_info) == CRI_TRUE) {
criManaPlayer_ExecuteAutoSkip(player, &frame_info);
}
}
CriBool criManaPlayer_IsFrameOnTime(CriManaPlayerHn player, const CriManaFrameInfo *frame_info)
フレームの時刻判定
void criManaPlayer_ExecuteAutoSkip(CriManaPlayerHn player, CriManaFrameInfo *frame_info)
デコードフレームの自動スキップ判定の実行
CriBool criManaPlayer_ReferFrame(CriManaPlayerHn player, CriManaFrameInfo *frame_info)
デコード済みのフレーム情報の参照
ビデオフレーム情報
Definition: cri_mana.h:1325
注意:
・criMana_SetDecodeSkipFlag関数とは同時に使用しないで下さい。 (criMana_SetDecodeSkipFlag関数は呼び出さない形かCRI_FALSEで設定して下さい)
・同じフレーム情報構造体に対して複数回呼び出すと、スキップ要求を 複数回実行してしまうので、各フレーム情報について呼び出しは1度だけに するよう注意してください。
・Sofdec.Primeのみ有効。H.264/VP9はデコードスキップには未対応です。

◆ criManaPlayer_SetAudioTrack()

void criManaPlayer_SetAudioTrack ( CriManaPlayerHn  player,
CriSint32  track 
)

メインオーディオトラック番号の設定

引数
[in]playerManaプレーヤーハンドル
[in]trackトラック番号
呼び出し条件:
再生開始 (criManaPlayer_Prepare 関数または criManaPlayer_Start 関数) 前に本関数を呼び出してください。

この関数はスレッドセーフではありません。
説明:
ムービーが複数のオーディオトラックを持っている場合に、再生するオーディオを指定します。
本関数を実行しなかった場合は、もっとも若い番号のオーディオトラックを再生します。
データが存在しないトラック番号を指定した場合は、オーディオは再生されません。

トラック番号としてCRIMANA_AUDIO_TRACK_OFFを指定すると、例えムービーにオーディオが 含まれていたとしてもオーディオは再生しません。

また、デフォルト設定(もっとも若いチャンネルのオーディオを再生する)にしたい場合は、 チャンネルとしてCRIMANA_AUDIO_TRACK_AUTOを指定してください。

オーディオのトラック情報は、再生開始前にヘッダー解析を行うことでランタイム時に取得できます。
備考:
再生中のトラック変更は未対応です。変更前のフレーム番号を記録しておいてシーク再生 してください。
参照
criManaPlayer_GetMovieInfo, criManaPlayer_DecodeHeader

◆ criManaPlayer_SetSubAudioTrack()

void criManaPlayer_SetSubAudioTrack ( CriManaPlayerHn  player,
CriSint32  track 
)

サブオーディオトラック番号の設定

引数
[in]playerManaプレーヤーハンドル
[in]trackサブオーティオのトラック番号
呼び出し条件:
再生開始 (criManaPlayer_Prepare 関数または criManaPlayer_Start 関数) 前に本関数を呼び出してください。

この関数はスレッドセーフではありません。
説明:
サブオーティオのトラック番号を設定します。
サブオーディオを再生するには、本関数でトラック番号を指定した後、::criManaPlayer_SetPlaybackWork 関数で指定する CriManaPlaybackExWorkConfig 構造体の sub_audio_params パラメーターを有効にする必要があります。

指定したトラック番号にオーディオが入っていない場合はOFFになります。

◆ criManaPlayer_SetExtraAudioTrack()

void criManaPlayer_SetExtraAudioTrack ( CriManaPlayerHn  player,
CriSint32  track 
)

エクストラオーディオトラック番号の設定

引数
[in]playerManaプレーヤーハンドル
[in]trackエクストラオーティオのトラック番号
呼び出し条件:
再生開始 (criManaPlayer_Prepare 関数または criManaPlayer_Start 関数) 前に本関数を呼び出してください。

この関数はスレッドセーフではありません。
説明:
エクストラオーティオのトラック番号を設定します。
エクストラオーディオを再生するには、本関数でトラック番号を指定した後、::criManaPlayer_SetPlaybackWork 関数で指定する CriManaPlaybackExWorkConfig 構造体の extra_audio_params パラメーターを有効にする必要があります。

指定したトラック番号にオーディオが入っていない場合はOFFになります。

◆ criManaPlayer_SetVolume()

void criManaPlayer_SetVolume ( CriManaPlayerHn  player,
CriFloat32  volume 
)

オーディオボリュームの設定 (メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]volumeボリューム
呼び出し条件:
本関数はスレッドセーフではありません。
説明:
ムービーのメインオーディオトラックの出力音声ボリュームを指定します。

ボリューム値には、0.0f以上1.0f以下の範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。

なお、0.0f以上1.0f以下の範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
参照
criManaPlayer_GetVolume

◆ criManaPlayer_GetVolume()

CriFloat32 criManaPlayer_GetVolume ( CriManaPlayerHn  player)

オーディオボリュームの取得 (メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
戻り値
CriFloat32 ボリューム
説明:
ムービーのメインオーディオトラックの出力音声ボリューム値を取得します。 ボリュームの値域は、0.0f以上1.0f以下です。
参照
criManaPlayer_SetVolume

◆ criManaPlayer_GetAtomExPlayerByTrackId()

CriAtomExPlayerHn criManaPlayer_GetAtomExPlayerByTrackId ( CriManaPlayerHn  player,
CriUint32  track_id 
)

AtomExPlayerHn の取得

引数
[in]playerManaプレーヤーハンドル
[in]track_idオーディオトラック番号 (0: メイン, 1: サブ, 2: エクストラ)
戻り値
CriAtomExPlayerHn CriAtomExPlayer ハンドル
説明:
CriManaPlayer が音声再生に使用している CRIATOMEXPLAYERHN を取得します。
各オーディオトラックトラックに異なる CriAtomExPlayerHn を取得することが可能です。
引数 track_id の値でオーディオトラックを指定します。
track_id が 0 ならメイン、1 ならサブ、2 ならエクストラオーディオトラックを指定することになります。
CriManaPlayerConfig 構造体の use_atomex_player メンバーに CRI_TRUE を指定し、 criManaPlayer_CreateWithConfig 関数で作成した CriManaPlayerHn 以外では 本関数は NULL を返します。
注意
本関数で取得した CriAtomExPlayerHn を破棄しないでください。

◆ criManaPlayer_SetSubAudioVolume()

void criManaPlayer_SetSubAudioVolume ( CriManaPlayerHn  player,
CriFloat32  volume 
)

オーディオボリュームの設定 (サブオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]volumeボリューム
呼び出し条件:
本関数はスレッドセーフではありません。
説明:
ムービーのサブオーディオトラックの出力音声ボリュームを指定します。

ボリューム値には、0.0f以上1.0f以下の範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。

なお、0.0f以上1.0f以下の範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
参照
criManaPlayer_GetSubAudioVolume

◆ criManaPlayer_GetSubAudioVolume()

CriFloat32 criManaPlayer_GetSubAudioVolume ( CriManaPlayerHn  player)

オーディオボリュームの取得 (サブオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
戻り値
CriFloat32 ボリューム
説明:
ムービーのサブオーディオトラックの出力音声ボリューム値を取得します。 ボリュームの値域は、0.0f以上1.0f以下です。
参照
criManaPlayer_SetSubAudioVolume

◆ criManaPlayer_SetExtraAudioVolume()

void criManaPlayer_SetExtraAudioVolume ( CriManaPlayerHn  player,
CriFloat32  volume 
)

オーディオボリュームの設定 (エクストラオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]volumeボリューム
呼び出し条件:
本関数はスレッドセーフではありません。
説明:
ムービーのエクストラオーディオトラックの出力音声ボリュームを指定します。

ボリューム値には、0.0f以上1.0f以下の範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。

なお、0.0f以上1.0f以下の範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
参照
criManaPlayer_GetExtraAudioVolume

◆ criManaPlayer_GetExtraAudioVolume()

CriFloat32 criManaPlayer_GetExtraAudioVolume ( CriManaPlayerHn  player)

オーディオボリュームの取得 (エクストラオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
戻り値
CriFloat32 ボリューム
説明:
ムービーのエクストラオーディオトラックの出力音声ボリューム値を取得します。 ボリュームの値域は、0.0f以上1.0f以下です。
参照
criManaPlayer_SetExtraAudioVolume

◆ criManaPlayer_SetPan()

void criManaPlayer_SetPan ( CriManaPlayerHn  player,
CriSint32  ch,
CriFloat32  pan 
)

2Dパンの設定(メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]chチャンネル番号
[in]panパン設定値(-1.0f以上1.0f以下)
呼び出し条件:
本関数はスレッドセーフではありません。
説明:
メインオーディオトラックの2Dパン(音源の左右定位位置)を指定します。
本関数を実行することで、モノラル音声やステレオ音声に対し、音源の定位位置を自由 にコントロールすることが可能です。

第2引数のチャンネル番号は"音声データのチャンネル番号"を指定します。
【モノラル音声を再生する場合】
  • チャンネル番号には0を指定します。
【ステレオ音声を再生する場合】
  • チャンネル番号0:左音声
  • チャンネル番号1:右音声

第3引数のパン設定値には、指定したチャンネル番号のデータの定位をどの位置にする かを指定します。
パン設定値は、-1.0f以上1.0f以下の範囲で実数値を指定します。
音源は、負の値を指定すると中央より左側(値が小さいほど左寄り)、0.0fを指定すると 中央、正の値を指定すると中央より右側(値が大きいほど右寄り)に定位します。
(キリのいい値では、-1.0fが左端、0.0fが中央、1.0fが右端になります。)
備考:
実際に適用される値が1.0fを超える値になった場合、値は1.0fにクリップされます。
同様に、実際に適用される値が-1.0f未満の値になった場合も、値は-1.0fにクリップされます。

再生中の音声データに存在しないチャンネル番号を指定した場合は設定が無視されます。
また、チャンネル2以降を指定した場合も同様に無効です。
参照
criManaPlayer_GetPan

◆ criManaPlayer_GetPan()

CriFloat32 criManaPlayer_GetPan ( CriManaPlayerHn  player,
CriSint32  ch 
)

2Dパンの取得(メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]chチャンネル番号
戻り値
CriFloat32 パン設定値
説明:
メインオーディオトラックの指定したチャンネル番号のパン設定値を取得します。
パン設定値の値域は、-1.0f以上1.0f以下です。
参照
criManaPlayer_SetPan

◆ criManaPlayer_ResetSendLevel()

void criManaPlayer_ResetSendLevel ( CriManaPlayerHn  player)

センドレベルのリセット(メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
説明:
メインオーディオトラックのセンドレベルの設定をリセットします。
本関数を実行することで、過去にセットされたセンドレベル設定が全てクリアされます。

本関数をムービー再生中に実行した場合、設定したセンドレベルがクリアされて全てのスピーカーから
音声出力がされなくなります。
備考:
センドレベルの設定には「自動設定」「手動設定」の2通りが存在します。
Manaプレーヤーを作成した直後や、本関数でセンドレベルをリセットした場合、 センドレベルの設定は「自動設定」となります。
(自動設定時のルーティングについては、 criManaPlayer_SetSendLevel 関数の説明を参照してください。)
参照
criManaPlayer_SetSendLevel

◆ criManaPlayer_SetSendLevel()

void criManaPlayer_SetSendLevel ( CriManaPlayerHn  player,
CriSint32  ch,
CriAtomSpeakerId  spk,
CriFloat32  level 
)

センドレベルの設定(メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]chチャンネル番号
[in]spkスピーカーID
[in]levelボリューム値(0.0f以上1.0f以下)
説明:
メインオーディオトラックのセンドレベルを指定します。
センドレベルは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。

第2引数のチャンネル番号は"音声データのチャンネル番号"を指定します。
第3引数のスピーカーIDには、指定したチャンネル番号のデータをどのスピーカーから 出力するかを指定し、第4引数の送信時のボリュームを指定します。
ボリューム値は、0.0f以上1.0f以下の範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
例えば、音声データのチャンネル0番のデータをライトスピーカーから フルボリューム(1.0f)で出力したい場合、指定は以下のようになります。
criManaPlayer_SetSendLevel(player, 0, CRIATOM_SPEAKER_FRONT_RIGHT, 1.0f);
void criManaPlayer_SetSendLevel(CriManaPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level)
センドレベルの設定(メインオーディオトラック)

本関数では1つのチャンネルのデータを複数のスピーカーから異なるボリュームで 出力することが可能です。
例えば、チャンネル1番の音声をレフトスピーカーから0.3f、ライトスピーカー から0.5f、センタースピーカーから0.7fで出力したい場合、指定は以下のようになります。
criManaPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_LEFT, 0.3f);
criManaPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_RIGHT, 0.5f);
criManaPlayer_SetSendLevel(player, 1, CRIATOM_SPEAKER_FRONT_CENTER, 0.7f);

尚、セットされたセンドレベルの値は criManaPlayer_ResetSendLevel 関数で リセットすることが可能です。
備考:
センドレベルの設定には「自動設定」「手動設定」の2通りが存在します。
Manaプレーヤーを作成した直後や、 criManaPlayer_ResetSendLevel 関数で センドレベルをクリアした場合、センドレベルの設定は「自動設定」となります。
本関数を実行した場合、センドレベルの設定は「手動設定」となります。

「自動設定」の場合、Manaプレーヤーは以下のように音声をルーティングします。

  • 【モノラル音声を再生する場合】
    チャンネル0の音声を左右のスピーカーから約0.7f(-3dB)のボリュームで出力します。

  • 【ステレオ音声を再生する場合】
    チャンネル0の音声をレフトスピーカーから、 チャンネル1の音声をライトスピーカーから出力します。

  • 【4ch音声を再生する場合】
    チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をレフトサラウンドスピーカーから、 チャンネル3の音声をライトサラウンドスピーカーからでそれぞれ出力します。

  • 【5.1ch音声を再生する場合】
    チャンネル0の音声をレフトスピーカーから、チャンネル1の音声をライトスピーカーから、 チャンネル2の音声をセンタースピーカーから、チャンネル3の音声をLFEから、 チャンネル4の音声をレフトサラウンドスピーカーから、 チャンネル5の音声をライトサラウンドスピーカーからそれぞれ出力します。
これに対し、本関数を用いて「手動設定」を行った場合、音声データのチャンネル数に 関係なく、指定されたルーティングで音声が出力されます。
(センドレベルを設定していないチャンネルの音声は出力されません。)
センドレベルの設定をクリアし、ルーティングを「自動設定」の状態に戻したい場合は、 criManaPlayer_ResetSendLevel 関数を実行してください。

本関数の設定値と、以下の関数のボリューム設定値は独立して制御されます。
  • criManaPlayer_SetVolume 例えば、本関数に0.5fを、 criManaPlayer_SetVolume 関数にも0.5fを設定した場合、 出力音声のボリュームは原音を0.25f倍したボリュームで出力されます。
    (0.5f×0.5f=0.25fの演算が行われます。)
注意
再生する音声データがマルチチャンネルのデータであっても、センドレベルが一部の チャンネルのみにしか設定されていない場合、センドレベルの設定されていない チャンネルの音声は出力されません。

本関数と criManaPlayer_SetPan 関数を併用しないでください。
criManaPlayer_SetPan 関数が、内部的に本関数を呼び出すため、 両者を併用した場合、後から実行した関数により設定が上書きされる可能性があります。
音源の定位をコントロールする際には、本関数かまたは criManaPlayer_SetPan 関数 のいずれか一方のみをご利用ください。
(3Dパンを利用する場合は本関数を、2Dパンのみを行う場合は criManaPlayer_SetPan 関数をご利用ください。)
本関数は一部の機種で対応していない場合があります。
(プラットフォームのサウンドライブラリの仕様によっては実装が困難な場合が あるため、全ての環境で利用できるワケではありません。)
本関数が利用可能かどうかは、別途マニュアルの機種依存情報のページをご参照ください。
参照
criManaPlayer_SetVolume, criManaPlayer_SetPan, criManaPlayer_ResetSendLevel

◆ criManaPlayer_ResetSubAudioSendLevel()

void criManaPlayer_ResetSubAudioSendLevel ( CriManaPlayerHn  player)

センドレベルのリセット(サブオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
説明:
サブオーディオトラックのセンドレベルの設定をリセットします。
本関数を実行することで、過去にセットされたセンドレベル設定が全てクリアされます。
備考:
本関数の動作仕様は criManaPlayer_ResetSendLevel と同じです。
本関数の設定対象はサブオーディオトラックのみとなります。
参照
criManaPlayer_ResetSendLevel

◆ criManaPlayer_SetSubAudioSendLevel()

void criManaPlayer_SetSubAudioSendLevel ( CriManaPlayerHn  player,
CriSint32  ch,
CriAtomSpeakerId  spk,
CriFloat32  level 
)

センドレベルの設定(サブオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]chチャンネル番号
[in]spkスピーカーID
[in]levelボリューム値(0.0f以上1.0f以下)
説明:
サブオーディオトラックのセンドレベルを指定します。
センドレベルは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。

備考:
本関数の動作仕様は criManaPlayer_SetSendLevel と同じです。
本関数の設定対象はサブオーディオトラックのみとなります。
参照
criManaPlayer_SetSubAudioSendLevel

◆ criManaPlayer_ResetExtraAudioSendLevel()

void criManaPlayer_ResetExtraAudioSendLevel ( CriManaPlayerHn  player)

センドレベルのリセット(エクストラオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
説明:
エクストラオーディオトラックのセンドレベルの設定をリセットします。
本関数を実行することで、過去にセットされたセンドレベル設定が全てクリアされます。
備考:
本関数の動作仕様は criManaPlayer_ResetSendLevel と同じです。
本関数の設定対象はエクストラオーディオトラックのみとなります。
参照
criManaPlayer_ResetSendLevel

◆ criManaPlayer_SetExtraAudioSendLevel()

void criManaPlayer_SetExtraAudioSendLevel ( CriManaPlayerHn  player,
CriSint32  ch,
CriAtomSpeakerId  spk,
CriFloat32  level 
)

センドレベルの設定(エクストラオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]chチャンネル番号
[in]spkスピーカーID
[in]levelボリューム値(0.0f以上1.0f以下)
説明:
エクストラオーディオトラックのセンドレベルを指定します。
センドレベルは、音声データの各チャンネルの音声を、どのスピーカーから どの程度の音量で出力するかを指定するための仕組みです。

備考:
本関数の動作仕様は criManaPlayer_SetSendLevel と同じです。
本関数の設定対象はエクストラオーディオトラックのみとなります。
参照
criManaPlayer_SetSendLevel

◆ criManaPlayer_SetBusSendLevelByName()

void criManaPlayer_SetBusSendLevelByName ( CriManaPlayerHn  player,
const CriChar8 *  bus_name,
CriFloat32  level 
)

バスセンドレベルの設定(メインオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]bus_nameバス名
[in]levelセンドレベル値(0.0f以上1.0f以下)
説明:
メインオーディオトラックのバスセンドレベルを指定します。
バスセンドレベルは、音声をどのバスにどれだけ流すかを指定するための仕組みです。
再生開始前にバスセンドレベルを設定した場合、設定値に応じて音声再生を開始します。
再生中にバスセンドレベルを設定した場合は即座にその設定値が反映されます。

第2引数のバス名はDSPバス設定内のバス名を指定します。
第3引数では送信時のレベル(ボリューム)を指定します。

センドレベル値の範囲や扱いは、ボリュームと同等です。::criManaPlayer_SetVolume 関数を参照してください。
備考:
本関数を複数回呼び出すことで、複数のバスに流すこともできます。
参照
criManaPlayer_SetVolume

◆ criManaPlayer_SetSubAudioBusSendLevelByName()

void criManaPlayer_SetSubAudioBusSendLevelByName ( CriManaPlayerHn  player,
const CriChar8 *  bus_name,
CriFloat32  level 
)

バスセンドレベルの設定(サブオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]bus_nameバス名
[in]levelセンドレベル値(0.0f以上1.0f以下)
説明:
サブオーディオトラックのバスセンドレベルを指定します。
バスセンドレベルは、音声をどのバスにどれだけ流すかを指定するための仕組みです。
再生開始前にバスセンドレベルを設定した場合、設定値に応じて音声再生を開始します。
再生中にバスセンドレベルを設定した場合は即座にその設定値が反映されます。

備考:
本関数の動作仕様は criManaPlayer_SetBusSendLevelByName と同じです。
本関数の設定対象はサブオーディオトラックのみとなります。
参照
criManaPlayer_SetBusSendLevelByName

◆ criManaPlayer_SetExtraAudioBusSendLevelByName()

void criManaPlayer_SetExtraAudioBusSendLevelByName ( CriManaPlayerHn  player,
const CriChar8 *  bus_name,
CriFloat32  level 
)

バスセンドレベルの設定(エクストラオーディオトラック)

引数
[in]playerManaプレーヤーハンドル
[in]bus_nameバス名
[in]levelセンドレベル値(0.0f以上1.0f以下)
説明:
エクストラオーディオトラックのバスセンドレベルを指定します。
バスセンドレベルは、音声をどのバスにどれだけ流すかを指定するための仕組みです。
再生開始前にバスセンドレベルを設定した場合、設定値に応じて音声再生を開始します。
再生中にバスセンドレベルを設定した場合は即座にその設定値が反映されます。

備考:
本関数の動作仕様は criManaPlayer_SetBusSendLevelByName と同じです。
本関数の設定対象はエクストラオーディオトラックのみとなります。
参照
criManaPlayer_SetExtraAudioBusSendLevelByName

◆ criManaPlayer_ResetBusSendLevelAll()

void criManaPlayer_ResetBusSendLevelAll ( CriManaPlayerHn  player)

バスセンドレベルのリセット(全トラック)

引数
[in]playerManaプレーヤーハンドル
説明:
メイン、サブオーディオ、エクストラオーディオの全トラックのバスセンドレベルをリセットします。
再生中にバスセンドレベルをリセットした場合は即座にその設定値が反映されます。

注意:
本関数は、CriManaPlayerConfig.use_atomex_player に CRI_TRUE をセットして作成したプレーヤーには効果がありません。

◆ criManaPlayer_SetSoundRendererType()

void criManaPlayer_SetSoundRendererType ( CriManaPlayerHn  player,
CriAtomSoundRendererType  sound_renderer_type 
)

サウンドレンダラタイプの設定

引数
[in]playerManaプレーヤーハンドル
[in]sound_renderer_typeサウンドレンダラタイプ
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーで再生する音声の出力サウンドレンダラを指定します。
出力サウンドレンダラタイプの設定は各オーディオトラック(メイン、サブ、エクストラ)に反映されます。

再生中のサウンドレンダラタイプの変更はできません。再生中にサウンドレンダラタイプを指定した場合、 次のムービー再生から設定が反映されます。

注意
CRI Mana Ver.1.68.02より前のバージョンの場合は以下の二つのみ指定できます。
  • CRIATOM_SOUND_RENDERER_NATIVE
  • CRIATOM_SOUND_RENDERER_ASR

◆ criManaPlayer_SetAsrRackId()

void criManaPlayer_SetAsrRackId ( CriManaPlayerHn  player,
CriSint32  asr_rack_id 
)

ASRラックIDの設定

引数
[in]playerManaプレーヤーハンドル
[in]asr_rack_idASRラックID
呼び出し条件:
スレッドセーフではありません。
説明:
Manaプレーヤーで再生する音声の出力ASRラックIDを指定します。
出力ASRラックIDの設定は各オーディオトラック(メイン、サブ、エクストラ)に反映されます。

出力サウンドレンダラタイプがCRIATOM_SOUND_RENDERER_ASRの場合のみ有効です。
再生中のASRラックIDの変更はできません。再生中にASRラックIDを指定した場合、 次のムービー再生から設定が反映されます。

◆ criManaPlayer_ReferFrame()

CriBool criManaPlayer_ReferFrame ( CriManaPlayerHn  player,
CriManaFrameInfo frame_info 
)

デコード済みのフレーム情報の参照

引数
[in]playerManaプレーヤーハンドル
[out]frame_infoフレーム情報構造体
戻り値
CriBool フレーム情報の参照結果 (CRI_TRUE:参照成功, CRI_FALSE:参照失敗)
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。 それ以外の状態では常にCRI_FALSEを返します。

スレッドセーフではありません。
説明:
デコード済みのビデオフレームのフレーム情報構造体を参照します。 Manaプレーヤーのフレームプールにデコード済みのフレームがあれば、次のフレームの情報を取得できます。

ビデオフレームの取得手順として、まずこの関数でデコード済みのフレームがあるかどうかを判断し、 次に criManaPlayer_IsFrameOnTime 関数でフレームが再生時刻に達しているかチェックしてください。

なお、::criManaPlayer_DiscardFrame を呼ばない限り、本関数は同じフレーム情報を取得します。
備考:
Manaプレーヤーがポーズ中でも内部でビデオデコード処理は進み、本関数によるデコード済みのフレーム情報は 参照可能です。
参照
criManaPlayer_IsFrameOnTime

◆ criManaPlayer_IsFrameOnTime()

CriBool criManaPlayer_IsFrameOnTime ( CriManaPlayerHn  player,
const CriManaFrameInfo frame_info 
)

フレームの時刻判定

引数
[in]playerManaプレーヤーハンドル
[in]frame_infoフレーム情報構造体
戻り値
CriBool 入力したフレーム情報がすでに表示時刻になっている場合はCRI_TRUE(1)を返します。
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。 それ以外の状態では常にCRI_FALSEを返します。

スレッドセーフではありません。
説明:
criManaPlayer_ReferFrame 関数で参照しているフレームの表示時刻判定を行ないます。 この表示時刻には、マスタータイマーの時刻を基準に判定を行ないます。
参照
criManaPlayer_ReferFrame

◆ criManaPlayer_KeepFrame()

CriBool criManaPlayer_KeepFrame ( CriManaPlayerHn  player,
CriManaFrameInfo frame_info 
)

フレームの保持

引数
[in]playerManaプレーヤーハンドル
[out]frame_infoフレーム情報構造体
戻り値
CriBool フレームが保持できたかどうか
呼び出し条件:
スレッドセーフではありません。
説明:
デコード済みのビデオフレームが存在する場合、アプリケーションがデコード結果のフレームを保持 できます。本関数を呼び出すと、フレームを破棄せずにフレームプール内の次のフレームが参照可能 になります。これにより複数枚のフレームをアプリケーションが管理できます。

保持されたフレームは、 criManaPlayer_DiscardFrame 関数や::criManaPlayer_DiscardOneKeepFrame 関数で フレームを破棄しない限り、Manaプレーヤーはそのデコード結果を維持しますので、保持中は描画 対象として使うことが可能です。

本関数は、フレームを複数取得して描画に使用する場合や、描画レイテンシがあるシステムにおいて フレームを一定期間保持したい場合に使用してください。
参照
criManaPlayer_ReferFrame, criManaPlayer_GetNumberOfKeepFrames, criManaPlayer_DiscardOneKeepFrame

◆ criManaPlayer_GetNumberOfKeepFrames()

CriSint32 criManaPlayer_GetNumberOfKeepFrames ( CriManaPlayerHn  player)

保持フレーム数の取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriSint32 保持フレーム数
呼び出し条件:
スレッドセーフではありません。
説明:
criManaPlayer_KeepFrame 関数で、現在アプリケーションが保持しているフレーム数を取得します。
参照
criManaPlayer_KeepFrame

◆ criManaPlayer_CopyFrameToBufferARGB32()

void criManaPlayer_CopyFrameToBufferARGB32 ( CriManaPlayerHn  player,
const CriManaFrameInfo frame_info,
CriManaTextureBuffer frame_buf 
)

デコード結果の取得 (32bit ARGB形式)

引数
[in]playerManaプレーヤーハンドル
[out]frame_infoフレーム情報構造体
[out]frame_bufコピー先のフレームバッファー(描画対象)
呼び出し条件:
事前に::criMana_InitializeFrameARGB32 関数の呼び出しを必ず行ってください。
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。
スレッドセーフではありません。
説明:
32bit ARGBフォーマットで、表示時刻になっているビデオフレームを取得(コピー)します。
この関数を呼び出す場合は、ARGBバッファーの実体を確保したうえで呼び出す必要があります。

32bit ARGB の実際のピクセルデータの並びについては、そのプラットフォームで最も標準的な フォーマットになります。
注意
PS3, Xbox360 でも本関数は使用できますが、とてもCPU負荷の高い関数となります。
解像度が 1280x720 のムービーを本関数をフレーム取得すると1vsyncに近い時間がかかります。
PS3, Xbox360 では criManaPlayer_CopyFrameToBuffersYUV 関数と ピクセルシェーダー の組み合わせによるフレーム変換をおすすめします。
本関数は、Wii U/XboxOne/VITAでH.264再生時には対応していません。
参照
criMana_InitializeFrameARGB32

◆ criManaPlayer_CopyFrameToBuffersYUV()

void criManaPlayer_CopyFrameToBuffersYUV ( CriManaPlayerHn  player,
const CriManaFrameInfo frame_info,
CriManaTextureBuffersYUV frame_buf 
)

デコード結果の取得 (YUV個別バッファー方式)

引数
[in]playerManaプレーヤーハンドル
[out]frame_infoフレーム情報構造体
[in]frame_bufコピー先のフレームバッファー(描画対象)
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。
スレッドセーフではありません。
説明:
YUV個別バッファー形式で表示時刻になっているビデオフレームを取得します。
YUV個別バッファー形式はピクセルシェーダーでフレームを描画するための出力フォーマットです。
この関数を呼び出す場合は、YUV個別バッファーの実体を確保したうえで呼び出す必要があります。
ビデオフレームは引数frame_bufで指定したYUV個別バッファーに書き出されます。

アルファムービー再生を行わない場合は、引数 frame_buf の a_plane パラメーターは使用しません。

◆ criManaPlayer_DiscardFrame()

void criManaPlayer_DiscardFrame ( CriManaPlayerHn  player,
const CriManaFrameInfo frame_info 
)

フレームの解放

引数
[in]playerManaプレーヤーハンドル
[in]frame_infoフレーム情報構造体
呼び出し条件:
スレッドセーフではありません。
説明:
criManaPlayer_ReferFrame 関数または::criManaPlayer_KeepFrame 関数で参照しているフレームを解放します。
参照したフレームは本関数または criManaPlayer_DiscardOneKeepFrame 関数を呼び出して解放してください。

フレームを解放すると、Manaプレーヤーは解放されたフレームのバッファーを空きとみなしてデコードに使用します。

◆ criManaPlayer_DiscardOneKeepFrame()

void criManaPlayer_DiscardOneKeepFrame ( CriManaPlayerHn  player)

フレームの解放

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
スレッドセーフではありません。
説明:
criManaPlayer_KeepFrame 関数でアプリケーションが保持している一番古いフレームを破棄します。
どのフレームを破棄するかをアプリケーションが明示的に指定したい場合は criManaPlayer_DiscardFrame 関数を 代わりに使用してください。
参照
criManaPlayer_KeepFrame, criManaPlayer_GetNumberOfKeepFrames, criManaPlayer_DiscardFrame

◆ criManaPlayer_SetDataRequestCallback()

void criManaPlayer_SetDataRequestCallback ( CriManaPlayerHn  player,
CriManaPlayerDataRequestCbFunc  func,
void *  obj 
)

データ要求コールバックの登録

引数
[in]playerManaプレーヤーハンドル
[in]funcデータ要求コールバック
[in]objデータ要求コールバックの引数として渡るユーザーデータ
呼び出し条件:
スレッドセーフではありません。
説明:
ムービーの連結再生を行うために、ムービーファイルを要求するコールバック関数を登録します。 このコールバック関数は以下のタイミングで発生します。
・ムービーファイルを読み込み終了した時。
・ファイルの指定無しで再生を開始した時。

データ要求コールバック関数内で criManaPlayer_SetFile 関数、::criManaPlayer_SetFileRange 関数、 または criManaPlayer_SetData 関数を呼び出すことで、連続して次のムービーファイルを指定することができます。
いずれも呼び出さなかった場合は、読み込み済みのムービーが終わると再生終了になります。

また、前回と指定したムービーソースをもう一度再生したい場合は、コールバック関数内で criManaPlayer_SetPreviousDataAgain 関数を呼んでください。

データ要求コールバック発生時、コールバック関数の第二引数usrobjには、登録時に指定 したユーザーオブジェクトが渡されます。登録ファイルリストなどの管理に利用してください。

連結再生できるムービーファイルには以下の条件があります。
  • ビデオ解像度が同じ
  • ビデオのフレームレートが同じ(マスタータイマーが無同期以外の場合)
  • ビデオのコーデックが同じ
  • オーディオおよび字幕のトラック構成が同じ
備考:
Ver.1.10より、::criManaPlayer_SetFileRequestCallback 関数からAPI名を変更しました。
参照
criManaPlayer_SetFile, criManaPlayer_SetData, criManaPlayer_SetFileRange, criManaPlayer_SetPreviousDataAgain, criManaPlayer_DeferCallback

◆ criManaPlayer_DeferCallback()

void criManaPlayer_DeferCallback ( CriManaPlayerHn  player)

データ要求コールバックの再実行要求

引数
[in]playerManaプレーヤーハンドル
呼び出し条件:
本関数はデータ要求コールバック関数内でのみ使用可能です。
ただし、ファイル未登録状態で再生開始した最初のデータ要求コールバックについては呼び出しできません。
説明:
criManaPlayer_SetDataRequestCallback 関数で登録したデータ要求コールバックが発生した際に、 コールバック関数内で呼び出すと、次回のサーバー処理でデータ要求コールバックを発生させます。
本関数を使用することで、データ要求コールバックが発生したタイミングで登録すべきムービーファイルが 決定できない場合に、ムービーファイルの設定を先延ばしにすることが出来ます。

備考:
データ要求コールバック関数内で何もしなかった場合、Manaプレーヤーのステータスは CRIMANAPLAYER_STATUS_PLAYEND に遷移します。
本関数を実行した場合、次のデータ要求コールバックが発行されるまではManaプレーヤーのステータスを CRIMANAPLAYER_STATUS_PLAYING で維持することが出来ます。
注意
ファイル未登録時に最初に呼び出されたデータ要求コールバックについては本関数を使用することは出来ません。
必ず2個目以降のムービーの連結対象の指定を先送りする場合に使用してください。

次のムービーの登録は遅くとも登録済みのムービーの最終フレームが表示される100ミリ秒前には行うように してください。それ以上先送りをした場合、次のムービーの読み込みが間に合わずにシームレスに連結されない場合があります。
参照
criManaPlayer_SetFile, criManaPlayer_SetData, criManaPlayer_SetFileRange, criManaPlayer_SetPreviousDataAgain, criManaPlayer_SetDataRequestCallback

◆ criManaPlayer_SetSeekPosition()

void criManaPlayer_SetSeekPosition ( CriManaPlayerHn  player,
CriSint32  seek_frame_no 
)

シーク位置の設定

引数
[in]playerManaプレーヤーハンドル
[in]seek_frame_noシーク先のフレーム番号 (seek_frame_noに変更)
呼び出し条件:
再生開始前( criManaPlayer_Prepare 関数または criManaPlayer_Start 関数呼び出し前)に本関数を実行してください。

スレッドセーフではありません。
説明:
シーク再生を開始するフレーム番号を指定します。

また、この関数はムービーの再生中に呼び出すことは出来ません。再生中にシークをする場合は、一度再生を停止してから 本関数を呼び出してください。

本関数を実行しなかった場合、またはフレーム番号0を指定した場合はムービーの先頭から再生を開始します。 指定したフレーム番号が、ムービーデータの総フレーム数より大きい、もしくは負の値だった場合はムービーの先頭から再生します。

また、本関数呼び出し後にプレーヤーの再生停止、再生開始を行った場合でもシーク位置の設定情報は残ったままになります。
注意:
シーク再生を行うには、あらかじめ criManaPlayer_SetMetaDataWorkAllocator 関数を使用してメタデータ用メモリアロケーター を登録しておく必要があります。
参照
criManaPlayer_SetMetaDataWorkAllocator

◆ criManaPlayer_SetMovieEventSyncMode()

void criManaPlayer_SetMovieEventSyncMode ( CriManaPlayerHn  player,
CriManaPlayerMovieEventSyncMode  mode 
)

ムービーイベント同期モードの指定

引数
[in]playerManaプレーヤーハンドル
[in]modeムービーイベントの同期モード
呼び出し条件:
再生開始前( criManaPlayer_Prepare 関数または criManaPlayer_Start 関数呼び出し前)に本関数を実行してください。

スレッドセーフではありません。
説明:
ムービーイベント(キューポイント、字幕)の同期モードの設定をします。
デフォルトはハンドル作成時にムービー再生時刻:CRIMANAPLAYER_EVENT_SYNC_PLAYBACK_TIMEに同期するよう設定します。 ビデオフレームの取得に同期させたいときはCRIMANAPLAYER_EVENT_SYNC_FRAME_TIMEを指定してください。
参照
CriManaPlayerMovieEventSyncMode

◆ criManaPlayer_SetSubtitleChannel()

void criManaPlayer_SetSubtitleChannel ( CriManaPlayerHn  player,
CriSint32  channel 
)

字幕チャンネルの取得

引数
[in]playerManaプレーヤーハンドル
[in]channel字幕チャンネル番号
呼び出し条件:
スレッドセーフではありません。
説明:
取得する字幕チャンネルを設定します。デフォルトは字幕取得無しです。
criManaPlayer_DecodeHeader 関数と criManaPlayer_GetMovieInfo 関数を使うことで、再生するムービーが いくつの字幕を含んでいるかを再生開始前に知ることができます。

データが存在しないチャンネル番号を指定した場合は、字幕は取得できません。
デフォルト設定(字幕取得無し)にしたい場合は、チャンネルとしてCRIMANA_SUBTITLE_CHANNEL_OFFを指定してください。

この関数で字幕チャンネルを指定した場合は、メインループから定期的に criManaPlayer_GetSubtitleOnTime 関数を 実行してください。字幕取得を定期的に行わない場合は、ムービー再生が途中で止まります。

ムービー再生中に字幕チャンネルを切り替えることも可能です。ただし、実際のチャンネルが切り替わるのは 設定した直後の次の字幕からとなります。
参照
criManaPlayer_GetSubtitleOnTime

◆ criManaPlayer_GetSubtitleOnTime()

CriUint32 criManaPlayer_GetSubtitleOnTime ( CriManaPlayerHn  player,
CriUint8 *  bufptr,
CriUint32  bufsize 
)

字幕の取得

引数
[in]playerManaプレーヤーハンドル
[out]bufptr書き込み先の字幕バッファーアドレス
[in]bufsize書き込み字幕バッファーのサイズ
戻り値
CriUint32 書き込んだ字幕データのサイズ(バイト)
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_PLAYING の時に本関数を呼び出してください。
スレッドセーフではありません。
説明:
表示時刻になっている字幕データを取得します。 この関数を呼び出す場合は、字幕用バッファーの実体を確保したうえで呼び出してください。
字幕データは引数 bufptr で指定したバッファーに書き出されます。
もし字幕データが bufsize よりも大きい場合は、bufsize に収まる量だけ書き出し、残りは破棄されます。

もしも表示時刻の字幕が無い場合は、バッファーの中身はクリアされます。

criManaPlayer_SetSubtitleChannel 関数で存在する字幕チャンネルを指定している場合は、 メインループから定期的に本関数を実行してください。
実行しない場合は、ムービー再生が途中で止まります。
参照
criManaPlayer_GetSubtitleOnTime

◆ criManaPlayer_GetCuePointInfo()

CriManaCuePointInfo* criManaPlayer_GetCuePointInfo ( CriManaPlayerHn  player)

キューポイント情報の一覧取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriManaCuePointInfo* キューポイント情報
呼び出し条件:
Manaプレーヤーのハンドル状態が CRIMANAPLAYER_STATUS_WAIT_PREP以降に本関数を呼び出してください。
スレッドセーフではありません。
説明:
キューポイント情報(イベントポイント一覧)を取得します。
この関数で取得するキューポイント情報は、再生ハンドルのワークバッファーを直接参照しています。
再生停止状態での参照は可能ですが、次の再生を開始した後は参照を禁止します。
このキューポイント情報を別のメモリにコピーした場合もこの条件は変わりません。
注意
キューポイント情報を取得するには、あらかじめ criManaPlayer_SetMetaDataWorkAllocator 関数を 使用してメタデータ用メモリアロケーターを登録しておく必要があります。

◆ criManaPlayer_SetCuePointCallback()

void criManaPlayer_SetCuePointCallback ( CriManaPlayerHn  player,
CriManaPlayerCuePointCbFunc  func,
void *  obj 
)

キューポイントコールバックの設定

引数
[in]playerManaプレーヤーハンドル
[in]funcキューポイント取得コールバック関数
[in]objユーザーオブジェクト(任意)
呼び出し条件:
ムービー再生開始前に本関数を呼び出してください。

スレッドセーフではありません。
説明:
キューポイントのコールバック関数を登録します。 このコールバック関数は、ムービーの再生時刻が各イベントポイントで指定された時刻を経過した時に発生します。 コールバック関数の呼び出し判定は criManaPlayer_ExecuteMain 関数から行われます。

キューポイントコールバック発生時、コールバック関数の第2引数 eventinfo にはエベントポイント情報が、 第3引数usrobjには、登録時に指定したユーザーオブジェクトが渡されます。

キューポイントコールバック関数内では、ムービー再生をコントロールする関数(例えば criManaPlayer_Stop 関数) を呼び出してはいけません。
注意
キューポイント情報を取得するには、あらかじめ criManaPlayer_SetMetaDataWorkAllocator 関数を 使用してメタデータ用メモリアロケーターを登録しておく必要があります。

◆ criManaPlayer_SetSubtitleCallback()

void criManaPlayer_SetSubtitleCallback ( CriManaPlayerHn  player,
CriManaPlayerSubtitleCbFunc  func,
void *  obj 
)

字幕コールバックの登録

引数
[in]playerManaプレーヤーハンドル
[in]func字幕コールバック関数
[in]objユーザーオブジェクト(任意)
呼び出し条件:
字幕チャンネルを設定したムービー再生開始前に本関数を呼び出してください。

スレッドセーフではありません。
説明:
字幕切り替わり時のコールバック関数を登録します。
このコールバック関数は、ムービーの再生時刻が字幕の切り替わり時刻を経過した時に発生します。字幕の切り替わり時刻とは字幕が無い区間からある区間、または字幕がある区間から無い区間、現在の字幕区間から違う字幕区間に切り替わる時刻のことを指します。
コールバックが発生したら必ず criManaPlayer_GetSubtitleOnTime 関数を呼び、現在の字幕情報を取得してください。
コールバック関数の呼び出し判定は criManaPlayer_ExecuteMain 関数から行われます。

字幕コールバック発生時、コールバック関数の第1引数 usrobj には、登録時に指定したユーザーオブジェクトが渡されます。

注意
criManaPlayer_GetSubtitleOnTime をメインループで定期的に呼んでいない状況においては、字幕コールバック内で criManaPlayer_GetSubtitleOnTime を呼ばないと再生が止まります。
備考:
再生中に字幕チャンネルを変更した場合は、そのチャンネルにおける次の字幕切り替わり時刻まで字幕コールバック関数は発生しません。

参照
criManaPlayer_SetSubtitleChannel, criManaPlayer_GetSubtitleOnTime, CriManaPlayerSubtitleCbFunc

◆ criManaPlayer_CalcFrameNoFromTime()

CriSint32 criManaPlayer_CalcFrameNoFromTime ( CriManaPlayerHn  player,
CriUint64  count,
CriUint64  unit 
)

再生時刻からフレーム番号の計算

引数
[in]playerManaプレーヤーハンドル
[in]countタイマーカウント
[in]unit1秒あたりのタイマーカウント値。count ÷ unit で秒単位の時刻となります。
戻り値
CriSint32 frame ID
呼び出し条件:
この関数は、Manaプレーヤーハンドルの状態が CRIMANAPLAYER_STATUS_WAIT_PREP 以降になったあとに使用できます。
スレッドセーフではありません。
説明:
再生時刻からフレーム番号を計算します。
シーク再生開始位置を、時刻から計算したいときに使用してください。 (例えばキューポイント情報からシーク位置を決定する場合など。)
参照
criManaPlayer_CalcTimeFromFrameNo

◆ criManaPlayer_CalcTimeFromFrameNo()

CriUint64 criManaPlayer_CalcTimeFromFrameNo ( CriManaPlayerHn  player,
CriSint32  frame_no,
CriUint64  unit 
)

フレーム番号から再生時刻の計算

引数
[in]playerManaプレーヤーハンドル
[in]frame_noフレーム番号
[in]unit1秒あたりのタイマーカウント値。count ÷ unit で秒単位の時刻となります。
戻り値
タイマーカウント
呼び出し条件:
この関数は、Manaプレーヤーハンドルの状態が CRIMANAPLAYER_STATUS_WAIT_PREP 以降になったあとに使用できます。
スレッドセーフではありません。
説明:
フレーム番号から再生時刻を計算します。
実際にフレーム取得した場合は、計算の必要はありません。フレーム情報構造体の時刻を参照してください。
参照
criManaPlayer_CalcFrameNoFromTime

◆ criManaPlayer_SearchNextEventPointByTime()

CriSint32 criManaPlayer_SearchNextEventPointByTime ( CriManaPlayerHn  player,
CriUint64  count,
CriUint64  unit,
CriSint32  type,
CriManaEventPoint eventinfo 
)

指定時刻直後のイベントポイントの検索

引数
[in]playerManaプレーヤーハンドル
[in]countタイマーカウント
[in]unit1秒あたりのタイマーカウント値。count ÷ unit で秒単位の時刻となります。
[in]type検索対象とするイベントポイントのtype値
[in]eventinfo発見したイベントポイントの情報
戻り値
CriSint32 フレーム番号
呼び出し条件:
この関数は、Manaプレーヤーハンドルの状態が CRIMANAPLAYER_STATUS_WAIT_PREP 以降になったあとに使用できます。
スレッドセーフではありません。
説明:
指定時刻の次にあるイベントポイントを検索し、イベントポイント情報とフレーム番号を取得します。
検索の対象となるのは type で指定した値が一致するイベントポイントです。 type に -1を指定した場合は、全てのイベントポイントが検索対象となります。
検索対象となるイベントポイントが発見できなかった場合は、フレーム番号は-1を返します。
参照
criManaPlayer_SearchPrevEventPointByTime

◆ criManaPlayer_SearchPrevEventPointByTime()

CriSint32 criManaPlayer_SearchPrevEventPointByTime ( CriManaPlayerHn  player,
CriUint64  count,
CriUint64  unit,
CriSint32  type,
CriManaEventPoint eventinfo 
)

指定時刻直前のイベントポイントの検索

引数
[in]playerManaプレーヤーハンドル
[in]countタイマーカウント
[in]unit1秒あたりのタイマーカウント値。count ÷ unit で秒単位の時刻となります。
[in]type検索対象とするイベントポイントのtype値
[in]eventinfo発見したイベントポイントの情報
戻り値
CriSint32 フレーム番号
呼び出し条件:
この関数は、Manaプレーヤーハンドルの状態が CRIMANAPLAYER_STATUS_WAIT_PREP 以降になったあとに使用できます。
スレッドセーフではありません。
説明:
指定時刻の手前にあるイベントポイントを検索し、イベントポイント情報とフレーム番号を取得します。

検索の対象となるのは type で指定した値が一致するイベントポイントです。 type に -1を指定した場合は、全てのイベントポイントが検索対象となります。

検索対象となるイベントポイントが発見できなかった場合は、フレーム番号は-1を返します。
参照
criManaPlayer_SearchNextEventPointByTime

◆ criManaPlayer_SetSpeed()

void criManaPlayer_SetSpeed ( CriManaPlayerHn  player,
CriSint32  speed_numerator,
CriSint32  speed_denominator 
)

再生速度の設定

引数
[in]playerManaプレーヤーハンドル
[in]speed_numerator再生速度指定の分子。
[in]speed_denominator再生速度指定の分母。
呼び出し条件:
Manaプレーヤーのハンドル状態が、CRIMANAPLAYER_STATUS_WAIT_PREP以前に呼び出してください。
ただし、音声なしのムービーを再生する場合に限り、再生中のムービーに対しても再生速度を変更することが可能です。

スレッドセーフではありません。
説明:
ムービーの再生速度を有理数で指定します。早回し(再生速度を上げる)がどこまで可能かは、デコード 負荷やデータの読み込みレートに依存します。
再生性能を超える速度を設定した場合、動画のがたつきや音途切れが発生する可能性があります。

使用例
分子(numerator) 分母(denominator) 意 味
1 1 等倍速再生(デフォルト)
2 1 2倍速再生
1 2 2分の1スロー再生
1000 1001 30fpsの動画を29.97fpsで再生、60fpsの動画を59.94fpsで再生

criAtomExPlayer を使用する Mana プレーヤーに対し再生速度を設定した場合は 本関数を呼ぶとサウンド再生時にタイムストレッチ機能を使用できるようになり、音声のピッチを変えずに 倍速再生できます。タイムストレッチで再生できる音声は0.5倍〜2.0倍の再生速度に対応しています。

注意:
  • 音声つきムービーの再生中の速度設定はできません。再生途中からの再生速度変更を実現したい場合、一度再生停止 してから、再生速度を変更し、目的のフレーム番号からシーク再生をしてください。
  • criAtomExPlayer を使用する Mana プレーヤーで音声つきムービーを再生する際は、基本的に速度を 0.5倍〜2.0倍 の範囲内で指定してください。
    0.5倍未満の速度を指定した場合は0.5倍、2.0倍を超える速度を指定した場合は2.0倍が適用されますが、 正常に再生が進まなくなる可能性があります。
備考:
プラットフォームによっては、オーディオ付きムービーには再生速度設定ができません。

無同期モード(CRIMANAPLAYER_TIMER_NONE)を指定している場合、速度は変化しません。

◆ criManaPlayer_SetDecodeMode()

void criManaPlayer_SetDecodeMode ( CriManaPlayerHn  player,
CriManaDecodeMode  mode 
)

デコード動作モードの設定

引数
[in]playerManaプレーヤーハンドル
[in]modeデコード動作モード
呼び出し条件:
Manaプレーヤーのハンドル状態が、CRIMANAPLAYER_STATUS_WAIT_PREP以前に呼び出してください。

スレッドセーフです。
説明:
Manaプレーヤーのデコード動作モードを指定します。
注意:
再生中のデコード動作モードの変更はできません。再生中に動作モードを設定した場合、次の 再生から設定が反映されます。
備考:
プラットフォームやコーデックによって指定可能なモードに制限があります。

◆ criManaPlayer_ShouldDropFrame()

CriBool criManaPlayer_ShouldDropFrame ( CriManaPlayerHn  player,
CriManaFrameInfo frame_info,
CriSint32  threshold,
CriManaShouldDropFrameReason drop_frame_reason 
)

フレームをドロップすべきかどうか判定

引数
[in]playerManaプレーヤーハンドル
[in]frame_infoフレーム情報構造体
[in]threshold現在の再生時刻に対してフレームをドロップすべきと判定する遅延量、閾値(フレーム数単位)
[out]drop_frame_reasonフレームをドロップすべきかどうか判定した理由
戻り値
CriBool フレームをドロップすべきかどうか判定(CRI_TRUE:ドロップすべき, CRI_FALSE:ドロップ不要)
呼び出し条件:
スレッドセーフではありません。
説明:
criManaPlayer_ReferFrame で取得したフレームをドロップすべきかどうか
判定を返します。 返り値がCRI_FALSEの場合、対象のフレームはドロップ不要なため
::criManaPlayer_IsFrameOnTimeの判定に進めるなどして表示を行って下さい。
返り値がCRI_TRUEの場合、対象のフレームはドロップすべきという判定となります。
drop_frame_reason には判定した理由について格納します。 内容に応じて必要であればドロップ(フレームの破棄 ::criManaPlayer_DiscardFrame)を
行ってください。
threshold には現在の再生時刻に対してフレームをドロップすべきと判定する
遅延量、閾値(フレーム数単位)を設定します。
この閾値を超えてフレーム時刻が遅延している場合、
drop_frame_reason に ::CRIMANA_DROP_FRAME_REASON_NO_NEED_TO_SKIP が
格納されます。
threshold に CRIMANA_DROP_FRAME_DELAY_OFF
指定した場合は閾値のチェックは行わず、
::CRIMANA_DROP_FRAME_REASON_DELAY は格納されません。

criManaPlayer_SetAudioBaseConcatenation でループ再生や連結再生時に オーディオ基準の連結調整フラグを有効にした場合、 オーディオの尺が短く、ビデオの尺が長いケースでは終端のフレームについてドロップすべきと判定し、 drop_frame_reason に CRIMANA_DROP_FRAME_REASON_DROP_CONCATENATION を格納します。 詳細は ::criManaPlayer_SetAudioBaseConcatenationのリファレンスマニュアルをご確認下さい。
注意:
  • フレームをドロップした後、次のフレームについてデコードが完了して準備できているとは限らず、 ::criManaPlayer_ReferFrameでは取得に失敗する事があります。
  • 根本的にデコード負荷が高く、再生時刻に対してフレーム時刻が常に閾値より遅れてしまうようなケースでは ::CRIMANA_DROP_FRAME_REASON_DELAY が格納され、ドロップすべきと判定し続けます。
  • thresholdで値を指定する場合、フレームプール数の指定について criManaPlayer_SetNumberOfFramePools で threshold 分の値以上を 増やすようケアして下さい。 値を増やさずにフレームのドロップでフレーム破棄を繰り返す制御を行った場合、 フレームプールのデコード結果の蓄えが減って枯渇しやすくなります。 この場合、デコード負荷変動に耐えれず、スムーズな再生が行えなくなる可能性があります。
参照
criManaShouldSkipFrameToDisplayReason, criManaPlayer_ReferFrame, criManaPlayer_DiscardFrame, criManaPlayer_SetNumberOfFramePools, criManaPlayer_SetAudioBaseConcatenation

◆ criManaPlayer_SetAudioBaseConcatenation()

void criManaPlayer_SetAudioBaseConcatenation ( CriManaPlayerHn  player,
CriBool  flag 
)

ループ再生や連結再生時にオーディオ基準の連結調整フラグを設定します

引数
[in]playerManaプレーヤーハンドル
[in]flagオーディオ基準の連結調整フラグ(CRI_TRUE:調整有効、CRI_FALSE:調整無効)
呼び出し条件:
スレッドセーフではありません。
説明:
ループ再生と連結再生にオーディオ基準の連結調整を行うかどうかの設定を行います。
再生開始前( criManaPlayer_Prepare 関数または criManaPlayer_Start 関数呼び出し前)に
本関数を実行してください。
引数 flag がCRI_TRUE(1)なら有効。引数 flag がCRI_FALSE(0)なら無効です。
デフォルトの設定は無効です。

usmのAV尺に差がある状態でループ再生や連結再生を繰り返していると、
ズレが蓄積していき、AV同期ズレが発生したり、再生が途中で止まってしまう事があります。
本関数で設定を有効にすると、ライブラリ内部で自動的にオーディオ時刻を基準とした
連結後のフレーム時刻の調整を行います。
また、 criManaPlayer_ShouldDropFrame でドロップすべきフレームの情報
CriManaShouldDropFrameReasonCRIMANA_DROP_FRAME_REASON_DROP_CONCATENATION を格納) を
返すようになります。
ドロップすべきフレームについてはアプリ側で明示的にフレームを破棄してください。
AV尺に差がある状態でも調整をしながら長時間ループ再生、連結再生ができるように動作します。

オーディオよりビデオの尺が長い場合、連結調整でAV尺の差をカバーできる上限は
3フレーム以内となります。
差が4フレーム以上の場合、再生中にエラーが発生し、その後のループ再生、連結再生は
行わずに再生終了となります。
この場合はループ再生、連結再生に適したAV尺の構成になっていないため、
元素材のAV尺が極力同じになるようデータ調整、再エンコードして下さい。

A尺を超えたフレームにシーク再生を行った場合は0フレーム目から再生します。
A尺を超えたフレームについてシーク対象にしたい場合は元素材のA尺がV尺以上になるよう データ調整、再エンコードして下さい。

本関数で連結調整を有効にした場合、ライブラリ内部のフレームープールは
初期設定や criManaPlayer_SetNumberOfFramePools で設定した値に対し
3枚分増やした値で確保されます。(メモリ使用量が増えます)
criManaPlayer_ShouldDropFrameCRIMANA_DROP_FRAME_REASON_DROP_CONCATENATION にて
フレームのドロップでフレーム破棄を繰り返す制御を行った場合、
フレームプールのデコード結果の蓄えが減って枯渇しやすくなるのを抑制するようにします。

criManaPlayer_CalculatePlaybackWorkSize と本関数を同時に使用する場合は
先に本関数による連結調整の設定を先に行って下さい。
criManaPlayer_CalculatePlaybackWorkSize で計算されるメモリ使用量に影響します。

AV尺の差が3フレーム以内でも再生途中でエラーになって再生終了するような場合は
criManaPlayer_SetNumberOfFramePools によるフレームープール数調整、
criManaPlayer_SetBufferingTime で入力バッファリングサイズを
増やすことで安定しないか、またはA尺がV尺以上の長さになるようデータ調整、再エンコードを
行って下さい。

注意
一部機種の一部コーデックにおいては、CPUバッファではなく1つまたは複数の描画用テクスチャを フレームプールとして扱うデコード方式がありますが、本フラグを有効にしている場合 初期設定や criManaPlayer_SetNumberOfFramePools で設定したフレームプール数より 3枚多いテクスチャを用意する必要があるためご注意ください。

参照
criManaPlayer_ShouldDropFrame, criManaPlayer_GetAudioBaseConcatenation, criManaPlayer_CalculatePlaybackWorkSize

◆ criManaPlayer_GetAudioBaseConcatenation()

CriBool criManaPlayer_GetAudioBaseConcatenation ( CriManaPlayerHn  player)

ループ再生や連結再生時にオーディオ基準の連結調整フラグを取得

引数
[in]playerManaプレーヤーハンドル
戻り値
CriBool オーディオ基準の連結調整フラグ(CRI_TRUE:連結調整有効、CRI_FALSE:連結調整無効)
呼び出し条件:
スレッドセーフです。
説明:
ループ再生と連結再生の連結調整フラグを取得します。
参照
criManaPlayer_SetAudioBaseConcatenation

◆ criManaPlayer_CalculateExtDecoderWorkSize()

CriSint32 criManaPlayer_CalculateExtDecoderWorkSize ( CriManaPlayerHn  player,
const CriManaPlaybackBasicWorkConfig config_basic,
const CriManaPlaybackExWorkConfig config_ex 
)

拡張デコーダーワーク領域のサイズ計算

引数
[in]playerManaプレーヤーハンドル
[in]config_basic基本再生ワーク用パラメーターのポインタ(必須)
[in]config_ex拡張再生ワーク用パラメーターのポインタ(追加)NULL指定可
戻り値
CriSint32 拡張デコーダーワークサイズ
呼び出し条件:
スレッドセーフです。
説明:
指定されたムービーファイルの再生に必要な拡張デコーダーワーク領域のサイズを計算します。
拡張デコーダーワークが不要な場合は0を返します。

◆ criManaPlayer_SetExtDecoderWork()

void criManaPlayer_SetExtDecoderWork ( CriManaPlayerHn  player,
const CriManaPlaybackBasicWorkConfig config_basic,
const CriManaPlaybackExWorkConfig config_ex,
void *  work,
CriSint32  work_size 
)

拡張デコーダーワーク領域の設定

引数
[in]playerManaプレーヤーハンドル
[in]config_basic基本再生ワーク用パラメーターのポインタ(必須)
[in]config_ex拡張再生ワーク用パラメーターのポインタ(追加)NULL指定可
[in]workアプリが確保したワーク領域(内部自動アライン調整)
[in]work_sizeワークサイズ
呼び出し条件:
CRIMANAPLAYER_STATUS_WAIT_PREP か、それよりも前の状態で呼び出してください。

スレッドセーフではありません。
説明:
指定されたムービーファイルの再生に必要な拡張デコーダーワークメモリを設定します。

アプリケーション側で明示的にメモリを確保する場合は、::criManaPlayer_CalculateExtDecoderWorkSize 関数で必要なワークサイズを確認し、確保したワークメモリを引数に渡してください。
workにNULL、work_sizeに0を指定した場合は、::criManaPlayer_SetExtDecoderWorkAllocator 関数で登録された メモリ確保関数を使用して内部でメモリ確保を行います。
本関数を実行せずに再生を開始した場合、内部で自動的にデフォルトの再生パラメーターを使用して再生を 行います。この場合、::criManaPlayer_SetExtDecoderWorkAllocator 関数でメモリアロケーターが登録されていることが条件になります。

◆ criManaPlayer_SetNumberOfFramesForPrep()

void criManaPlayer_SetNumberOfFramesForPrep ( CriManaPlayerHn  player,
CriUint32  num_frames 
)

再生準備時の貯蓄フレーム数の設定

引数
[in]playerManaプレーヤーハンドル
[in]num_frames再生準備完了と判断するフレーム数(フレームプール数以下であること)
説明:
再生準備時に内部に貯めておくデコードフレームの数を設定します。
これはフレームプール数とは異なり、CRIMANAPLAYER_STATUS_PREP時に何枚フレームをデコードしたら CRIMANAPLAYER_STATUS_READY状態にして良いかを決定するための設定値です。

何も設定しない場合はフレームプール数が適用されます。フレームプール数は大きくしたいが 再生レイテンシは極力少なくしたい場合に、この関数を使用します。