CRIミドルウェアリファレンスマニュアル : MWSFD

定数

[メニュー]

MwsfdStat
ハンドルの状態

解説

Sofdec再生ハンドルの状態を表します。

定数 | 説明
--- | ---
MWSFD_STAT_STOP | 停止中
MWSFD_STAT_PREP | 準備中
MWSFD_STAT_PLAYING | 再生中
MWSFD_STAT_PLAYEND | 再生終了
MWSFD_STAT_ERROR | エラー状態

備考

互換性のために旧定義も宣言は残してあります。

MWE_PLY_STAT_STOP

MWE_PLY_STAT_PREP

MWE_PLY_STAT_PLAYING

MWE_PLY_STAT_PLAYEND

MWE_PLY_STAT_ERROR

[メニュー]

MWSFD_VHZ_~
垂直同期周波数

解説

デコーダへ設定する垂直同期周波数（Vsync周波数）です。

定数 | 説明
--- | ---
MWSFD_VHZ_59_94 | 59.94Hz（NTSC）
MWSFD_VHZ_50_00 | 50.00Hz（PAL）
MWSFD_VHZ_60_00 | 60.00Hz

[メニュー]

MwsfdDecSvr
デコードサーバ

解説

ムービのデコード方法を示します。

定数 | 定数値 | 説明
--- | --- | ---
MWSFD_DEC_SVR_IDLE | アイドルデコード | メイン処理の余り時間でデコードする
MWSFD_DEC_SVR_MAIN | メインデコード | メイン処理内でデコードする

[メニュー]

MWSFD_COMPO_~
合成モード

解説

表示するフレームの合成モードです。

定数 | 説明
--- | ---
MWSFD_COMPO_AUTO | 自動。合成モードをライブラリが自動的に判定します。
MWSFD_COMPO_OPAQ | 不透明
MWSFD_COMPO_ALPHFULL | フルアルファ合成
MWSFD_COMPO_ALPHLUMI | ルミナンスキー合成
MWSFD_COMPO_ALPH3 | 3値アルファ合成
MWSFD_COMPO_Z | Ｚムービ

[メニュー]

MWSFD_FTYPE_~
再生するファイルの種別

解説

本ライブラリで再生するファイルの種別です。

定数 | 説明
--- | ---
MWSFD_FTYPE_SFD | Sofdecデータ（オーディオ＋ビデオ）
MWSFD_FTYPE_MPV | Sofdecビデオ（ビデオのみ）
MWSFD_FTYPE_VONLYSFD | Sofdecデータ（ビデオのみ）
MWSFD_FTYPE_M2TS | MPEG-2 Transport Stream

備考

互換性のために旧定義も宣言は残してあります。

MWE_PLY_FTYPE_SFD

MWE_PLY_FTYPE_MPV

[メニュー]

MwsfdBufFmt
デコード出力バッファフォーマット

解説

デコード済データを格納するバッファのデータ形式です。

定数 | 説明
--- | ---
MWSFD_BUFFMT_DEFAULT | 各機種のデフォルトフォーマット
MWSFD_BUFFMT_MB_YCC420 | YCC 4:2:0 / マクロブロック並び
MWSFD_BUFFMT_MB_ARGB8888 | RGB 32bit / マクロブロック並び
MWSFD_BUFFMT_PLN_YCC420 | YCC 4:2:0 / プレーン並び

備考

互換性のために旧定義も宣言は残してあります。

MWE_PLY_BUFFMT_MB_YCC420

MWE_PLY_BUFFMT_MB_ARGB8888

MWE_PLY_BUFFMT_PLN_YCC420

[メニュー]

MWSFD_OUTVOL_~
オーディオのボリューム

解説

オーディオのボリューム値です。

定数 | 説明
--- | ---
MWSFD_OUTVOL_MAX | 最大
MWSFD_OUTVOL_MIN | 最小（無音）

[メニュー]

MWSFD_CH_~
オーディオのLRチャンネル

解説

オーディオのLRチャンネルです。

定数 | 説明
--- | ---
MWSFD_CH_L | 左チャンネル
MWSFD_CH_R | 右チャンネル

備考

互換性のために旧定義も宣言は残してあります。

MWD_CH_L

MWD_CH_R

[メニュー]

MWSFD_PAN_~
オーディオのパンポット

解説

オーディオのパンポットです。

MWSFD_PAN_AUTOの場合は、音声データがモノラルかステレオによって自動的に設定されます。

定数 | 説明
--- | ---
MWSFD_PAN_LEFT | 左
MWSFD_PAN_CENTER | 中央
MWSFD_PAN_RIGHT | 右
MWSFD_PAN_AUTO | 自動

備考

互換性のために旧定義も宣言は残してあります。

MWD_PAN_LEFT

MWD_PAN_CENTER

MWD_PAN_RIGHT

MWD_PAN_AUTO

[メニュー]

MWSFD_DFL_OUTBUFSIZE
出力バッファ幅のデフォルト値

解説

出力バッファ幅のデフォルト値です。

定数 | 説明
--- | ---
MWSFD_DFL_OUTBUFSIZE | バッファサイズが未設定。出力バッファサイズは動画のサイズと同じとみなして変換処理を行います。

[メニュー]

MwsfdLumiKey
ルミナンスキー合成の透過キー

解説

ルミナンスキー合成の透過キーです。

定数 | 説明
--- | ---
MWSFD_LUMIKEY_BLACK | 黒抜き。輝度の低い部分を透過します。
MWSFD_LUMIKEY_WHITE | 白抜き。輝度の高い部分を透過します。

[メニュー]

MwsfdFrmType
フレームタイプ

解説

ソース映像の操作方式の違いを表します。

定数 | 説明
--- | ---
MWSFD_FRMTYPE_UNKNOWN | 不明。プログレッシブかインタレースかが、ライブラリで特定できない場合の値。
MWSFD_FRMTYPE_PROGRESSIVE | プログレッシブ映像
MWSFD_FRMTYPE_INTERLACE | インタレース映像

[メニュー]

MwsfdPtype
ピクチャタイプ

解説

Sofdecデータのビデオストリームを攻勢する基本画像のタイプです。

定数 | 定数値 | 説明
--- | --- | ---
MWSFD_PTYPE_I | Iピクチャ | フレーム内符号化画像
MWSFD_PTYPE_P | Pピクチャ | フレーム間順方向予測符号化画像
MWSFD_PTYPE_B | Bピクチャ | フレーム間双方向予測符号化画像
MWSFD_PTYPE_D | Dピクチャ | DC成分のみで構成されるフレーム内符号化画像

備考

互換性のために旧定義も宣言は残してあります。

MWE_PLY_PTYPE_I

MWE_PLY_PTYPE_P

MWE_PLY_PTYPE_B

MWE_PLY_PTYPE_D

[メニュー]

MwsfdYuvMode
YUV変換モード

解説

フレームのYUV変換モードを表します。

アプリケーションが自前でフレーム変換処理を行うときに参照してください。

定数 | 説明
--- | ---
MWSFD_YUVMODE_UNKNOWN | 不明
MWSFD_YUVMODE_ITU_R_BT_601 | ITU-R BT.601 でYUV-RGB変換したフレーム。標準的なフレームです。CCIR601と呼ばれるモードと同一です。
MWSFD_YUVMODE_CSC | 色空間補正をかけたフレーム
MWSFD_YUVMODE_BASIC_YCBCR | Basic YCbCr（非対応）
MWSFD_YUVMODE_HIGH_CONTRAST | High contrast（非対応）
MWSFD_YUVMODE_RAW_YUV | Raw YUV data（非対応）

[メニュー]

MWSFD_SYNCMODE_~
同期モード

解説

再生するビデオの同期モードです。

定数 | 説明
--- | ---
MWSFD_SYNCMODE_AUDIO | オーディオ同期
MWSFD_SYNCMODE_VSYNC | Vsync同期
MWSFD_SYNCMODE_NONE | 無同期
MWSFD_SYNCMODE_EXTCLOCK | 外部クロック同期

備考

互換性のために旧定義も宣言は残してあります。

MWD_PLY_SYNC_AUDIO

MWD_PLY_SYNC_VSYNC

MWD_PLY_SYNC_NONE

[メニュー]

MwsfdFrmSync
フレーム取得同期モード

解説

フレーム取得の同期モードです。

定数 | 説明
--- | ---
MWSFD_FRMSYNC_TIME | 時刻同期
MWSFD_FRMSYNC_NONE | 無同期

[メニュー]

MWSFD_ZVAL_~
ＺムービのＺ値範囲

解説

ＺムービのＺ値範囲と最小値、最大値です。

アプリケーションが自前でＺ値変換処理を行うときに参照してください。

定数 | 説明
--- | ---
MWSFD_ZVAL_MIN | Ｚ値の最小値
MWSFD_ZVAL_MAX | Ｚ値の最大値
MWSFD_ZVAL_RANGE | Ｚ値の範囲

[メニュー]

MwsfdVideoCodec
ビデオコーデック

解説

ビデオコーデックの種別です。

定数 | 説明
--- | ---
MWSFD_VIDEOCODEC_UNKNOWN | 未知
MWSFD_VIDEOCODEC_M1V | Sofdec Video, MPEG-1 Video
MWSFD_VIDEOCODEC_M2V | MPEG-2 Video
MWSFD_VIDEOCODEC_M4V | MPEG-4 Video
MWSFD_VIDEOCODEC_H264 | H.264

処理マクロ

[メニュー]

MWSFD_TIME2SEC
時刻単位の変換（秒）

書式
MWSFD_TIME2SEC(ncount, tscale)
入力

ncount：再生サンプル数（時刻）

tscale：サンプリング周波数（時刻の単位）（単位:ヘルツ）

出力

なし

戻り値

実時間（秒）

解説

mwPlyGetTime関数で取得した値を、実時間（秒）に変換する。

備考

互換性のために旧定義も宣言は残してあります。

MWD_PLY_TIME2SEC(ncount, tscale)

[メニュー]

MWSFD_TIME2MSEC
時刻単位の変換（ミリ秒）

書式
MWSFD_TIME2MSEC(ncount, tscale)
入力

ncount：再生サンプル数（時刻）

tscale：サンプリング周波数（時刻の単位）（単位:ヘルツ）

出力

なし

戻り値

実時間（ミリ秒）

解説

mwPlyGetTime関数で取得した値を、実時間（秒）に変換する。

備考

互換性のために旧定義も宣言は残してあります。

MWD_PLY_TIME2MSEC(ncount, tscale)

[メニュー]

MWSFD_SIZE_PICUSRBUF
ピクチャユーザデータ用バッファサイズの計算

書式
MWSFD_SIZE_PICUSRBUF(npool, size1pic)
入力

npool：ハンドル生成パラメータのフレームプール数 nfrm_pool_wk

size1pic：１ピクチャあたりの最大ユーザデータサイズ

出力

なし

戻り値

ピクチャユーザデータ用バッファサイズ（byte）

解説

mwPlyAttachPicUsrBuf関数で設定するバッファのサイズを計算します。

[メニュー]

MWSFD_CALC_WORK_VPTS
ビデオPTS処理用ワークサイズ計算（MPEG-2 Transport Stream用）

書式
MWSFD_CALC_WORK_VPTS(picnum)
入力

picnum：時刻情報を保持するピクチャ数

出力

なし

戻り値

ビデオPTS処理用作業領域サイズ（byte）

解説

mwPlySetVideoPts関数で設定するバッファのサイズを計算します。

備考

引数指定するピクチャ数は、通常は90枚（3秒分）指定すれば充分です。

データ型

[メニュー]

MWPLY
Sofdec再生ハンドル

解説 データの再生を制御するためのハンドルです。 mwPlyCreateSofdec関数でSofdec再生ハンドルを生成します。

[メニュー]

MwsfdInitPrm
初期化パラメータの構造体

解説

本ライブラリの初期化関数に設定するパラメータ構造体です。

メンバー | 型名 | 説明
--- | --- | ---
vhz | Float32 | 垂直同期周波数[Hz]
disp_cycle | Sint32 | この変数は無視されます(MWSFD Ver.3.86以降)。値を設定する必要はありません。
disp_latency | Sint32 | この変数は無視されます(MWSFD Ver.3.86以降)。値を設定する必要はありません。
dec_svr | MwsfdDecSvr | デコードサーバ
rsv | Sint32 | 予約（全て 0 に設定すること）

備考

互換性のために旧定義も宣言は残してあります。

MWS_PLY_INIT_SFD型

[メニュー]

MwsfdCrePrm
ハンドル生成パラメータの構造体

解説

Sofdec再生ハンドルを生成する時に、設定するパラメータの構造体です。

メンバー | 型名 | 説明
--- | --- | ---
ftype | Sint32 | 再生するファイルのタイプ（MWSFD_FTYPE_~）
max_bps | Sint32 | 再生するデータの最大ビットレート（単位:bit/sec）
max_width | Sint32 | 再生画像サイズの最大幅（単位:ピクセル）
max_height | Sint32 | 再生画像サイズの最大高さ（単位:ピクセル）
nfrm_pool_wk | Sint32 | システム領域のフレームプール数（通常２／最低１）。処理負荷の変動によりフレーム落ちが発生した場合は、この値を増やしてください。
max_stm | Sint32 | 同時読み込み最大ストリーム数
work | Sint8* | ライブラリ作業領域へのポインタ
wksize | Sint32 | ライブラリ作業領域のサイズ（単位:バイト）
compo_mode | Sint32 | 合成モード（MWSFD_COMPO_~）
buffmt | MwsfdBufFmt | デコード出力バッファフォーマット
rsv | Sint32 | 予約（全て 0 に設定すること）

備考

同時読み込みストリーム数 max_stm は、同時に読み込むSofdecファイル／ADXファイル／データファイルの合計値です。

フレームプール数の最大値は14です。

互換性のために旧定義も宣言は残してあります。

MWS_PLY_CPRM_SFD型

[メニュー]

MwsfdFrmObj
フレーム情報構造体

解説

デコード結果として取得できるフレームの情報です。

メンバー | 型名 | 説明
--- | --- | ---
*bufadr | Uint8 | デコード結果バッファのポインタ
frmid | Sint32 | フレーム識別ID
buffmt | MwsfdBufFmt | デコード結果バッファデータ形式
width | Sint32 | 横ピクセル数
height | Sint32 | 縦ピクセル数
x_mb | Sint32 | 横マクロブロック数
y_mb | Sint32 | 縦マクロブロック数
ptype | MwsfdPtype | ピクチャタイプ
fps | Sint32 | 1000秒あたりのフレーム数
fno | Sint32 | フレーム番号
time | Sint32 | 表示時刻
tunit | Sint32 | 表示時刻単位
concat_cnt | Sint32 | 連結処理回数
fno_per_file | Sint32 | ファイル毎のフレーム番号
time_per_file | Sint32 | ファイル毎の再生時刻
errcnt | Sint32 | データエラー発生回数
rcvcnt | Sint32 | データエラー回復回数
usrdatptr | void * | ピクチャユーザデータへのポインタ
usrdatsize | Sint32 | ピクチャユーザデータのサイズ
frmtype | MwsfdFrmType | フレームタイプ
frmcodec | MwsfdFrmCodec | コーデック固有のフレーム情報
yuvmode | MwsfdYuvMode | YUV変換モード
zmin | Uint32 | このフレームのＺ値ダイナミックレンジの最小値
zmax | Uint32 | このフレームのＺ値ダイナミックレンジの最大値
*sud_ptr | void | Sofdec固有データへのポインタ
sud_size | Sint32 | Sofdec固有データサイズ

備考

互換性のために旧定義も宣言は残してあります。

MWS_PLY_FRM型

[メニュー]

MwsfdSbtPrm
字幕データパラメータ

解説

mwPlyGetSubtitle関数で取得できる字幕データパラメータの情報構造体です。

メンバー | 型名 | 説明
--- | --- | ---
update | Bool | 字幕データ内容が変化したかどうかのフラグ
datasize | Sint32 | 字幕データサイズ[byte]
tunit | Sint32 | 時刻単位
intime | Sint32 | 表示開始時間。intime / tunit は秒を表す。
durtime | Sint32 | 表示持続時間。durtime / tunit は秒を表す。

[メニュー]

MwsfdPlyInf
再生情報構造体

解説

再生情報取得関数で使用する再生情報の構造体です。

メンバー | 型名 | 説明
--- | --- | ---
drop_frm_cnt | Sint32 | コマ落ち
skip_dec_cnt | Sint32 | デコードスキップ
skip_disp_cnt | Sint32 | 表示スキップ
skip_emptyb_cnt | Sint32 | エンプティBスキップ
no_supply_cnt | Sint32 | データ供給滞り回数
average_fps | Float32 | 平均フレームレート測定値

[メニュー]

MwsfdHdrInf
ファイルヘッダ情報

解説

mwPlyGetHdrInf関数で取得できるファイルヘッダの情報構造体です。

メンバー | 型名 | 説明
--- | --- | ---
playable | Bool | 再生可能判定結果（TRUE: 再生可能、FALSE: 再生不可）
ftype | Sint32 | ファイルの種別（MWSFD_FTYPE_~）
width | Sint32 | ビデオの横ピクセル数
height | Sint32 | ビデオの縦ピクセル数
fps | Sint32 | 1000秒あたりのフレーム数
frmnum | Sint32 | ビデオの総フレーム数
fxtype | Sint32 | F/X種別
num_video_ch | Sint32 | ビデオストリームのチャネル数
num_audio_ch | Sint32 | オーディオストリームのチャネル数
a_sfreq | Sint32 | デフォルトオーディオチャネルのサンプリング周波数
a_nch | Sint32 | デフォルトオーディオチャネルのLRチャネル（モノラル／ステレオ）

[メニュー]

MwsfdMallocFn
メモリ割当関数

解説

ライブラリに登録するメモリ割当関数の型です。

書式
void *(*MwsfdMallocFn)(void *obj, Uint32 size)
入力

obj：登録オブジェクト

size：確保するメモリサイズ

出力

確保したメモリのポインタ

戻り値

なし

[メニュー]

MwsfdFreeFn
メモリ解放関数

解説

ライブラリに登録するメモリ解放関数の型です。

書式
void (*MwsfdFreeFn)(void *obj, void *ptr)
入力

obj：登録オブジェクト

ptr：解放するメモリのポインタ

出力

なし

戻り値

なし

[メニュー]

MwsfdYccPlane
YCbCrプレーン情報構造体

解説

デコード出力バッファフォーマットがMWSFD_BUFFMT_PLN_YCC420の場合の、詳細情報です。

メンバー | 型名 | 説明
--- | --- | ---
*y_ptr | Uint8 | Y成分バッファのポインタ
*cb_ptr | Uint8 | Cb成分バッファのポインタ
*cr_ptr | Uint8 | Cr成分バッファのポインタ
y_width | Sint32 | Y成分バッファの幅
cb_width | Sint32 | Cb成分バッファの幅
cr_width | Sint32 | Cr成分バッファの幅

備考

互換性のために旧定義も宣言は残してあります。

MWS_PLY_YCC_PLANE型

[メニュー]

MwsfdMakeZTblCbFn
Ｚ変換用コールバック関数

解説

ライブラリに登録するＺ変換用コールバック関数の型です。

書式
void (*MwsfdMakeZTblCbFn)(Uint32 *orgtbl, Float32 znear, Float32 zfar, void *ztbl)
入力

orgtbl ：デコード結果からＺ値(0x00000000〜0x7FFFFFFF)への変換テーブルポインタ。テーブルの実体はMWPLYハンドルの作業領域内にあります。

znear ：Zのnear値

zfar ：Zのfar 値

出力

ztbl ：Ｚ値(0x00000000〜0x7FFFFFFF)からＺバッファ内容への変換テーブルポインタ。テーブルの型はアプリケーションの呼び出した関数（mwPlyFxCnvZ16関数またはmwPlyFxCnvZ32関数）に応じて、Sint16かSint32にキャストして使用します。テーブルの実体はMWPLYハンドルの作業領域内にあります。

戻り値

なし

[メニュー]

MwsfdFlowCnt
流量カウンタ

解説

供給されたデータサイズと消費したデータサイズを表します。

メンバー | 型名 | 説明
--- | --- | ---
supplied | Sint64 | 供給サイズ[byte]
consumed | Sint64 | 消費サイズ[byte] (破棄サイズを含む)
discarded | Sint64 | 破棄サイズ[byte]

[メニュー]

MwsfdFlowInf
流量情報構造体

解説

デコーダの各モジュールに供給された流量カウンタを表します。

メンバー | 型名 | 説明
--- | --- | ---
system | MwsfdFlowCnt | システムデコーダの流量カウンタ
video | MwsfdFlowCnt | ビデオデコーダの流量カウンタ（破棄サイズは未実装)
audio | MwsfdFlowCnt | オーディオデコーダの流量カウンタ（破棄サイズは未実装)
adxtin | MwsfdFlowCnt | ADXT入力SJの流量カウンタ（破棄サイズは未実装)

[メニュー]

MwsfdExtClockFn
外部クロック関数

解説

ライブラリに登録する外部クロック関数の型です。

書式
void (*MwsfdExtClockFn)(void *usrobj, Sint32 *time, Sint32 *tunit)
入力

usrobj ：登録オブジェクト

出力

time ：再生時刻

tunit ：時刻単位

戻り値

なし

[メニュー]

MwsfdFrmCodec
コーデック固有のフレーム情報

解説

ビデオコーデック固有のフレーム情報構造体です。

メンバー | 型名 | 説明
--- | --- | ---
videocodec | MwsfdVideoCodec | ビデオコーデック
frmm2v | MwsfdFrmM2v | MPEG-2フレーム情報（MPEG-1, SofdecVideoでも有効）

[メニュー]

MwsfdFrmM2v
MPEG-2フレーム情報

解説

MPEG-2のビットストリーム内の情報をそのまま記録する構造体です。

MPEG-1, SofdecVideoの場合もこの値は有効です。

メンバー | 型名 | 説明
--- | --- | ---
pts | Sint64 | PTS 33bit (-1:PTS情報なし)
picture_structure | Sint32 | ピクチャ構成 0:予約 1:top-field, 2:bottom-f. 3:frame
chroma_format | Sint32 | 色差フォーマット 0:予約 1:420 2:422 3:444
bit_rate | Sint32 | ビットレート 18+12=30bit
vbv_buffer_size | Sint32 | VBVバッファサイズ 10+8=18bit
display_horizontal_size | Sint16 | 表示幅 14bit
display_vertical_size | Sint16 | 表示高さ 14bit
progressive_frame | Sint8 | 0:インタレース 1:プログレッシブ
top_field_first | Sint8 | トップフィールド優先フラグ
repeat_first_field | Sint8 | フィールド反復表示フラグ
aspect_ratio_information | Sint8 | アスペクト比情報 4bit
constrained_parameters_flag | Sint8 | 制約パラメータフラグ
frame_rate_extension_n | Sint8 | フレームレート拡張n 2bit
frame_rate_extension_d | Sint8 | フレームレート拡張d 5bit
profile_and_level_indication | Uint8 | プロファイル、レベル 8bit
progressive_sequence | Sint8 | プログレッシブシーケンスフラグ
low_delay | Sint8 | 低遅延フラグ
video_format | Sint8 | ビデオフォーマット 3bit
colour_description | Sint8 | 色情報記録フラグ 1bit
colour_primaries | Uint8 | 情報源原色の色度座標 8bit
transfer_characteristics | Uint8 | 変換特性 8bit
matrix_coefficients | Uint8 | マトリクス係数 8bit

関数

[メニュー]

mwPlyInitSfdFx
ライブラリの初期化処理

書式
void mwPlyInitSofdecFx(MwsfdInitPrm *iprm)
入力

iprm：初期化パラメータ

出力

なし

戻り値

なし

解説

ライブラリを初期化します。

備考

初期化パラメータを変更したい場合は、mwPlyFinishSfdFx関数を実行し、一旦ライブラリを終了した後に、再度初期化を行ってください。

多重に初期化を行っても、初期化パラメータの変更は反映されません。

例

    memset(&iprm, 0, sizeof(MwsfdInitPrm));         // 予約メンバのゼロ設定
    iprm.vhz            = MWSFD_VHZ_59_94;          // NTSC(59.94Hz)
    iprm.dec_svr        = MWSFD_DEC_SVR_IDLE;       // アイドルスレッドデコード
    mwPlyInitSfdFx(&iprm);

[メニュー]

mwPlyFinishSfdFx
ライブラリの終了処理

書式
void mwPlyFinishSfdFx(void)
入力

なし

出力

なし

戻り値

なし

解説

ライブラリを終了します。

[メニュー]

mwPlyCalcWorkCprmSfd
ライブラリ作業領域サイズの計算

書式
Sint32 mwPlyCalcWorkCprmSfd(MwsfdCrePrm *cprm)
入力

cprm：ハンドルの生成パラメータ

出力

なし

戻り値

ライブラリ作業領域サイズ（単位:バイト）

解説

ライブラリ作業領域サイズを計算します。

例

    使用例はmwPlyCreateSofdec関数の説明を参照してください。

[メニュー]

mwPlyCreateSofdec
ハンドルの生成

書式
MWPLY mwPlyCreateSofdec(MwsfdCrePrm *cprm)
入力

cprm：ハンドルの生成パラメータ

出力

なし

戻り値

Sofdec再生ハンドル

解説

ハンドルを生成します。同時に生成できるハンドルの最大数は８です。

mwPlyCalcWorkCprmSfd関数でライブラリ作業領域サイズを計算し、ハンドル生成パラメータのwksizeメンバで指定します。

例

    memset(&cprm, 0, sizeof(MwsfdCrePrm));      // 予約メンバのゼロ設定
    cprm.compo_mode     = MWSFD_COMPO_AUTO;     // 合成モード（自動）
    cprm.ftype          = MWSFD_FTYPE_SFD;      // 再生ファイルタイプ（Sofdecデータ：オーディオ＋ビデオ）
    cprm.max_bps        = 6 * 1000 * 1000;      // 最大ビットレート：6Mbit/sec
    cprm.max_width      = 640;                  // 画像サイズ：640x480
    cprm.max_height     = 480;
    cprm.nfrm_pool_wk   = 2;                    // フレームプール数
    cprm.max_stm        = 1;                    // 最大1ストリーム
    cprm.buffmt         = MWSFD_BUFFMT_DEFAULT; // デコード出力フォーマット
    cprm.wksize = mwPlyCalcWorkCprmSfd(&cprm);  // ライブラリ作業領域サイズの計算
    cprm.work           = malloc(cprm.wksize);  // ライブラリ作業領域の確保
    ply = mwPlyCreateSofdec(&cprm);

[メニュー]

mwPlyDestroy
ハンドルの消去

書式
void mwPlyDestroy(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

ハンドルを消去します。

[メニュー]

mwPlyStartFname
再生開始(ファイルからの再生)

書式
void mwPlyStartFname(MWPLY mwply, Char8 *fname)
入力

mwply：Sofdec再生ハンドル

fname：再生するSofdecデータのファイル名

出力

なし

戻り値

なし

解説

ファイル指定によるSofdecデータの再生を開始します。

[メニュー]

mwPlyStop
再生停止

書式
void mwPlyStop(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

ムービ再生を停止します。

完了復帰の関数で、この関数から戻るとハンドル状態はSTOPになります。

再生途中に呼び出した場合は処理に時間がかかる場合があります。

[メニュー]

mwPlyRequestStop
再生停止リクエスト

書式
void mwPlyRequestStop(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

ムービ再生の停止リクエストを発行します。

即時復帰の関数で、この関数から戻ってもハンドル状態はすぐには遷移しません。

停止リクエストを発行したあとはアプリケーションのメインループをムービ再生中と同じように(Vsync待ち含む)動かす必要があります。

デコード中止とファイル読み込み中止が終わると、ADXM_ExecMain関数内で停止処理を行い、ハンドル状態をSTOPに遷移させます。

再生が停止したかどうかはハンドル状態がSTOPになったかどうかで判定してください。

mwPlyRequestStop関数を使ってムービを停止する場合は、特定の関数の処理が重くなることはありません。

代わりに停止するまでに不定の時間がかかります。

[メニュー]

mwPlyGetStat
ハンドル状態の取得

書式
MwsfdStat mwPlyGetStat(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ハンドルの状態

解説

Sofdec再生ハンドルの状態を取得します。

定数 | 説明
--- | ---
MWSFD_STAT_STOP | 再生が停止している
MWSFD_STAT_PREP | 再生の準備をしている
MWSFD_STAT_PLAYING | 再生中
MWSFD_STAT_PLAYEND | 再生が終了した
MWSFD_STAT_ERROR | エラーが発生した

[メニュー]

mwPlyGetCurFrm
カレントフレームの取得

書式
void mwPlyGetCurFrm(MWPLY mwply, MwsfdFrmObj *frm)
入力

mwply：Sofdec再生ハンドル

出力

frm：フレーム情報

戻り値

なし

解説

デコード済データを、表示タイミングに合わせて取得します。

(a) フレームが取得できなかった場合、frm.bufadrがNULLになります。

(b) 不要になったフレームは、mwPlyRelCurFrm関数で速やかに解放してください。

備考

mwPlyGetFrm関数/mwPlyRelFrm関数との併用は出来ません。

例

    for (;;) {
        MwsfdFrmObj frm;
        /* Main Loop */
        ADXM_ExecMain();
        mwPlyGetCurFrm(mwply, &frm);
        if (frm.bufadr != NULL) {
            /* Conversion of frame */
            /* Transfer texture to VRAM */
            UsrLoadMvFrmFx(mwply, &frm);
            mwPlyRelCurFrm(mwply);
        }
        UsrDrawMv();
    }

[メニュー]

mwPlyRelCurFrm
カレントフレームの解放

書式
void mwPlyRelCurFrm(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

mwPlyGetCurFrm関数で取得したフレームを解放します。

備考

mwPlyGetFrm関数/mwPlyRelFrm関数との併用は出来ません。

例

    使用例はmwPlyGetCurFrm関数の説明を参照してください。

[メニュー]

mwPlyGetTime
再生時間の取得

書式
void mwPlyGetTime(MWPLY mwply, Sint32 *ncount, Sint32 *tscale)
入力

mwply：Sofdec再生ハンドル

出力

ncount：再生サンプル数（時刻）

tscale：サンプリング周波数（時刻の単位）（単位:ヘルツ）

戻り値

なし

解説

再生時間を計算するためのパラメータを取得します。

備考

Sofdec内部の再生時間は、ある周波数を「単位」として表現されています。

通常はオーディオチャネルをマスタークロックとして時間管理を行うため、再生時間はオーディオのサンプリング周波数を単位とした、オーディオサンプル数で表現されます。

オーディオチャネルのないムービの場合はVsyncがマスタークロックとして使用され、再生時間はVsync周波数を単位とした、Vsyncカウント数で表現されます。

実際の時間は、時間値÷時間単位で計算します。以下のマクロが使用できます。

sec = MWSFD_TIME2SEC(ncount , tscale); // 秒単位

msec = MWSFD_TIME2MSEC(ncount , tscale); // ミリ秒単位

[メニュー]

mwPlyPause
ポーズ／ポーズ解除

書式
void mwPlyPause(MWPLY mwply, Sint32 sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：ポーズする、OFF：ポーズ解除する）

出力

なし

戻り値

なし

解説

動画再生のポーズおよびポーズ解除を行います。

備考

(a) mwPlyPause関数で設定したポーズ状態はSofdec再生ハンドルの状態とは独立に管理されます。

(b) 現在のポーズ状態を問い合わせるには、mwPlyIsPause関数を使用します。

(c) ビデオのみ再生の場合はポーズ中にポーズを実行するとコマ送りになります。

[メニュー]

mwPlyIsPause
ポーズ状態の取得

書式
Bool mwPlyIsPause(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

TRUE：ポーズ状態である。

FALSE：ポーズ状態でない。

解説

ポーズ状態か否かを問い合わせます。

Sofdec再生ハンドルの状態とは独立に、mwPlyPause関数で設定した結果を返します。

[メニュー]

mwPlyGetFrm
フレームの取得

書式
Bool mwPlyGetFrm(MWPLY mwply, Sint32 *frmid, MwsfdFrmObj *frm)
入力

mwply：Sofdec再生ハンドル

出力

frmid：取得できたフレームのフレームID（変数実体はユーザが定義）

frm：取得できたフレームのフレーム情報構造体（変数実体はユーザが定義）

戻り値

TRUE：フレームが取得できた

FALSE：フレームが取得できなかった

解説

・表示時刻になっているフレームを取得する。

・古いフレームを解放しなくても、新しいフレームを取得できる。

・同一フレームは一度だけ取得できる。

・フレーム内容はmwPlyRelFrm関数で解放するか、mwPlyStop関数実行まで保持。

・mwPlyGetFrm関数とmwPlyRelFrm関数は同一スレッド内で実行すること。

・mwPlyGetCurFrm関数/mwPlyRelCurFrm関数との併用は禁止。

[メニュー]

mwPlyRelFrm
フレームの解放

書式
void mwPlyRelFrm(MWPLY mwply, Sint32 frmid)
入力

mwply：Sofdec再生ハンドル

frmid：フレームID

出力

なし

戻り値

なし

解説

・引数frmidで指定したフレームを解放する。

・同じフレームIDに対しての解放は１度のみ。２度目以降はエラーコールバック。

・フレームを取得した順番と解放する順番は一致しなくてよい。

・mwPlyGetFrm関数とmwPlyRelFrm関数は同一スレッド内で実行すること。

・mwPlyGetCurFrm関数/mwPlyRelCurFrm関数との併用は禁止。

[メニュー]

mwPlyStartAfs
FID指定による再生の開始

書式
void mwPlyStartAfs(MWPLY mwply, Sint32 patid, Sint32 fid)
入力

mwply：Sofdec再生ハンドル

patid：パーティションID

fid：ファイルID

出力

なし

戻り値

なし

解説

AFSファイル内のSofdecファイルをFID指定により再生開始します。

例

    static char ptinfo[ADXF_CALC_PTINFO_FMGL_SIZE(MAX_INSIDE)];
    /* パーティション情報を読み込む */
    ADXF_LoadPartitionFmgLongNw(ptid, "movie.afs", NULL, ptinfo);
    for(;;) {
        if (ADXF_GetPtStat(ptid) == ADXF_STAT_READEND) {
        break;
        }
        ADXM_ExecMain();
    }
    /* FID 0番を再生する */
    mwPlyStartAfs(mwply, ptid, 0);

[メニュー]

mwPlyStartFnameRange
ファイル内範囲指定による再生の開始

書式
void mwPlyStartFnameRange(MWPLY mwply, Char8 *fname, Sint32 offset_sct, Sint32 range_sct)
入力

mwply ：Sofdec再生ハンドル

fname ：Sofdecデータを含むファイル名

offset_sct ：ファイル先頭からSofdecデータ先頭までのオフセット[セクタ単位]

range_sct ：Sofdecデータのサイズ[セクタ単位]

出力

なし

戻り値

なし

解説

ファイルの途中にSofdecデータがある場合に、ファイル内の範囲指定によってSofdecデータを再生開始します。

ユーザ独自形式のパックファイルなどにSofdecデータを入れる場合に使用してください。

[メニュー]

mwPlyStartSj
SJメモリによる再生の開始

書式
void mwPlyStartSj(MWPLY mwply, SJ sji)
入力

mwply：Sofdec再生ハンドル

sji：SJハンドル

出力

なし

戻り値

なし

解説

SJハンドルで指定したメモリ内のSofdecファイルを再生開始します。

[メニュー]

mwPlyTermSupply
データ供給終了の通知(SJ再生用)

書式
void mwPlyTermSupply(MWPLY mwply)
入力

mwply ：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

mwPlyStartSj関数で再生を開始したハンドルに対して、データ供給終了を通知します。ムービデータをSJに入力し終えた時点でmwPlyTermSupply関数を実行してください。mwPlyTermSupply関数の実行後、全ての入力データをデコードし終わるとSofdec再生ハンドルはPLAYEND状態に遷移します。

[メニュー]

mwPlyStartMem
アドレス指定メモリによる再生の開始

書式
void mwPlyStartMem(MWPLY mwply, void *addr, Sint32 len)
入力

mwply：Sofdec再生ハンドル

addr：メモリアドレス

len：データサイズ

出力

なし

戻り値

なし

解説

アドレス指定によりメモリ内のSofdecファイルを再生開始します。

・ループ再生／連続再生はできません。

・SFD形式のファイルのみ再生可能です。MWSFD_FTYPE_MPVのファイルは再生できません。

備考

オンメモリのムービを再生する方法としてADXのメモリファイルシステム(MFS)を使用する方法があります。

MFSはオンメモリのデータに対して、通常のファイル再生APIを利用できるようにするものです。

MFSを使うことによって、オンメモリデータのループ再生や連続再生も可能になります。

MFSについてはADXサンプルプログラムadxmfsを参照してください。

[メニュー]

mwPlyStartFnameLp
シームレスループ再生の開始

書式
void mwPlyStartFnameLp(MWPLY mwply, Char8 *fname)
入力

mwply：Sofdec再生ハンドル

fname：ファイル名

出力

なし

戻り値

なし

解説

Sofdecファイルのループ再生を開始します。

備考

(a) 取得できる時刻はループ後も連続になり、ストリーム先頭に戻っても０になりません。

(b) 再生時間が再生時間上限に達すると、ストリームの途中であっても再生を終了し、Sofdec再生ハンドルはMWSFD_STAT_PLAYEND状態になります。再生時間上限についてはmwPlySetLimitTime関数、mwPlyGetLimitTime関数の説明を参照してください。

(c) ストリームの区切りで再生終了したい場合はmwPlyReleaseLp関数を利用してください。

(d) 再生時間が極端に短い（2秒未満程度）場合はファイルの読み込みが間に合わず、スムーズに連続再生できない可能性があります。

(e) mwPlySetInfiniteSingleLoop関数を使うことで、無限ループ再生を行うことが可能です。

[メニュー]

mwPlyReleaseLp
シームレスループ再生の解除

書式
void mwPlyReleaseLp(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

ループ再生を解除します。

備考

この設定の後、ストリームの終端になると再生が終了します。

ストリーム終端近くを再生中に解除支持が行われると、さらにもう一度再生したあとに終了することがあります。

[メニュー]

mwPlyStartAfsLp
FID指定によるシームレスループ再生の開始

書式
void mwPlyStartAfsLp(MWPLY mwply, Sint32 patid, Sint32 fid)
入力

mwply：Sofdec再生ハンドル

patid：パーティションID

fid：ファイルID

出力

なし

戻り値

なし

解説

AFSファイル内のSofdecファイルをFID指定によりループ再生を開始します。

備考

ファイルの指定方法が異なる以外は、mwPlyStartFnameLp関数と同機能です。

[メニュー]

mwPlyStartFnameRangeLp
ファイル内範囲指定によるによるシームレスループ再生の開始

書式
void mwPlyStartFnameRangeLp(MWPLY mwply, Char8 *fname, Sint32 offset_sct, Sint32 range_sct)
入力

mwply ：Sofdec再生ハンドル

fname ：Sofdecデータを含むファイル名

offset_sct ：ファイル先頭からSofdecデータ先頭までのオフセット[セクタ単位]

range_sct ：Sofdecデータのサイズ[セクタ単位]

出力

なし

戻り値

なし

解説

ファイルの途中にSofdecデータがある場合に、ファイル内の範囲指定によってSofdecデータをループ再生します。

ユーザ独自形式のパックファイルなどにSofdecデータを入れる場合に使用してください。

[メニュー]

mwPlySetInfiniteSingleLoop
無限ループ再生の設定

書式
void mwPlySetInfiniteSingleLoop(MWPLY mwply, Bool sw)
入力

mwply ：Sofdec再生ハンドル

sw ：切り替えスイッチ（ON：無限ループ再生する、OFF：無限ループ再生しない）

出力

なし

戻り値

なし

解説

無限ループ再生機能の有効無効設定を行います。デフォルトは無効(OFF)です。

Sofdecの再生時間には上限があり、ループ再生や連続再生をしていても再生時間上限になると再生を終了します。

「無限ループ再生」機能とは、単一ファイルのループ再生に限定されますが、再生時間上限になる前に自動的に再スタートをかけることで見かけ上、無限にループ再生するようにする機能です。

再スタート処理はADXM_ExecMain関数内で実行します。

再スタートをかける時には一時的にムービ再生が途切れますが、アプリケーションから見たハンドル状態はPLAYINGのままです。

再スタートがかかると、再生時刻やフレームIDなどの情報は全てリセットされます。

再スタートをかけるタイミングは、ループ再生しているムービの尺に合わせて再生時間上限よりも前にムービの終端にあわせて実行します。そのためムービの途中で再スタートがかかるようなことはありません。

無限ループ再生機能が使用できるのは以下の再生開始関数を使用した場合のみです。

- mwPlyStartFnameLp

- mwPlyStartAfsLp

- mwPlyStartFnameRangeLp

- mwPlyStartLsnLp

これら以外の再生開始関数を使った場合は、たとえ本関数で無限ループ再生機能を有効にしていても再生時間上限になると再生終了します。

例えば「単一ファイルのループ再生」という処理は同じでも、次の場合は無限ループ再生機能は動作しません。

＜無限ループ再生できない例＞

mwPlyEntryFname(ply, loopmovie.sfd);

mwPlyStartSeamless(ply);

mwPlySetSeamlessLp(ply, ON);

備考

自動的に再スタートした回数はmwPlyGetInfiniteLoopCount関数で取得できます。

[メニュー]

mwPlyGetInfiniteLoopCount
無限ループ再スタート回数の取得

書式
Uint32 mwPlyGetInfiniteLoopCount(MWPLY mwply)
入力

mwply ：Sofdec再生ハンドル

出力

なし

戻り値

再スタート回数。

解説

無限ループ再生機能により、自動的に再スタートがかかった場合、再生時刻やフレームIDはリセットされます。

本関数により、再スタートした回数を取得することができます。

取得できる値は「再スタートした回数」であって、ループ再生した回数ではないのでご注意ください。

[メニュー]

mwPlyEntryFname
シームレス連続再生ファイルの登録

書式
void mwPlyEntryFname(MWPLY mwply, Char8 *fname)
入力

mwply：Sofdec再生ハンドル

fname：ファイル名

出力

なし

戻り値

なし

解説

シームレス連続再生するファイルを再生リストに登録します。

備考

(a) 登録したファイルは、そのファイルの再生終了後に再生リストから消去されます。

(b) 再生開始前に複数のファイルを登録することも、再生中に追加登録することもできます。

(c) 再生中の登録の場合は、登録タイミングによってはファイル読み込みが間に合わずスムーズに連続再生できない可能性があります。

(d) 再生リストにはファイル名文字列へのポインタが登録されます。したがって、ファイル名文字列は再生期間中は保持される必要があります。AUTO変数などでファイル名を指定すると、ファイル名領域が保持されず、途中で再生ができなくなります。

例

    /* ４つのムービを連続再生して終了状態にする */
    mwPlyEntryFname(mwply, "movie1.sfd");
    mwPlyEntryFname(mwply, "movie2.sfd");
    mwPlyEntryFname(mwply, "movie3.sfd");
    mwPlyEntryFname(mwply, "movie4.sfd");
    mwPlyStartSeamless(mwply);              /* 連続再生の開始 */
    mwPlyReleaseSeamless(mwply);            /* 連続再生エントリ終了の通知 */

[メニュー]

mwPlyStartSeamless
シームレス連続再生の開始

書式
void mwPlyStartSeamless(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

シームレス連続再生を開始します。

備考

(a) 取得できる時刻はループ後も連続になり、ストリーム先頭に戻っても０になりません。

(b) 再生時間が再生時間上限に達すると、ストリームの途中であっても再生を終了し、Sofdec再生ハンドルはMWSFD_STAT_PLAYEND状態になります。再生時間上限につ(c) ストリームの区切りで再生終了したい場合はmwPlyReleaseSeamless関数を利用してください。

(d) 再生時間が極端に短い（2秒未満程度）ファイルが登録されている場合はファイルの読み込みが間に合わず、スムーズに連続再生できない可能性があります。

(e) 無限ループ再生機能（mwPlySetInfiniteSingleLoop関数参照）を使うことはできません。

例

    使用例はmwPlyEntryFname関数の説明を参照してください。

[メニュー]

mwPlyReleaseSeamless
シームレス連続再生の解除

書式
void mwPlyReleaseSeamless(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

シームレス連続再生のファイルエントリを終了します。

備考

再生リストに登録したすべてのファイルを再生したあとに再生終了します。

例

    使用例はmwPlyEntryFname関数の説明を参照してください。

[メニュー]

mwPlySetSeamlessLp
シームレスループ再生の設定

書式
void mwPlySetSeamlessLp(MWPLY mwply, Sint32 flg)
入力

mwply：Sofdec再生ハンドル

flg：ループ設定フラグ（1：ループON, 0：ループOFF）

出力

なし

戻り値

なし

解説

連続再生に登録済みのファイルをループ再生する設定をします。

例

    例えば３つのファイルをループ再生する場合、次のように呼び出してください。
    　mwPlyEntryFname(mwply, "file01.sfd");	// １番目のファイル登録
    　mwPlyEntryFname(mwply, "file02.sfd");	// ２番目のファイル登録
    　mwPlyEntryFname(mwply, "file03.sfd");	// ３番目のファイル登録
    　mwPlySetSeamlessLp(mwply, ON);		// ループ再生設定
    　mwPlyStartSeamless(mwply);				// 再生開始

[メニュー]

mwPlyGetNumSlFiles
現在登録されているファイル数の取得

書式
Sint32 mwPlyGetNumSlFiles(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ファイル数

解説

現在登録されているファイル数を取得します。

例

    /* エントリ済みのファイル数およびファイル名を取得する */
    num_entry = mwPlyGetNumSlFiles(mwply);
    for (i = 0; i < num_entry; i++) {
        printf("%s\n", mwPlyGetSlFname(mwply, i));
    }

[メニュー]

mwPlyGetSlFname
シームレス連続再生の登録ファイル名の取得

書式
Char8 *mwPlyGetSlFname(MWPLY mwply, Sint32 stm_no)
入力

mwply：Sofdec再生ハンドル

stm_no：読み込み中ファイルからの相対ファイル序数（0〜）

出力

なし

戻り値

ファイル名

解説

シームレス連続再生に登録してあるファイル名を取得します。

例

    使用例はmwPlyGetNumSlFiles関数の説明を参照してください。

[メニュー]

mwPlyEntryAfs
FID指定によるシームレス連続再生ファイルの登録

書式
void mwPlyEntryAfs(MWPLY mwply, Sint32 patid, Sint32 fid)
入力

mwply：Sofdec再生ハンドル

patid：パーティションID

fid：ファイルID

出力

なし

戻り値

なし

解説

AFSファイル内のSofdecファイルをシームレス連続再生ファイルとして登録します。

登録ファイルの指定方法が異なる以外はmwPlyEntryFname関数と同機能です。

[メニュー]

mwPlyEntryFnameRange
ファイル内範囲指定によるシームレス連続再生ファイルの登録

書式
void mwPlyEntryFnameRange(MWPLY mwply, Char8 *fname, Sint32 offset_sct, Sint32 range_sct)
入力

mwply ：Sofdec再生ハンドル

fname ：Sofdecデータを含むファイル名

offset_sct ：ファイル先頭からSofdecデータ先頭までのオフセット[セクタ単位]

range_sct ：Sofdecデータのサイズ[セクタ単位]

出力

なし

戻り値

なし

解説

ファイルの途中にSofdecデータがある場合に、ファイル内の範囲指定によってSofdecデータをシームレス連続再生に登録します。

ユーザ独自形式のパックファイルなどにSofdecデータを入れる場合に使用してください。

[メニュー]

mwPlySetOutVol
出力ボリュームの設定

書式
void mwPlySetOutVol(MWPLY mwply, Sint32 vol)
入力

mwply：Sofdec再生ハンドル

vol：ボリューム値（最小：-960 〜 最大：0）

出力

なし

戻り値

なし

解説

音声出力のボリューム値を設定します。

[メニュー]

mwPlyGetOutVol
出力ボリュームの取得

書式
Sint32 mwPlyGetOutVol(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ボリューム値（最小：-960 〜 最大：0）

解説

現在、設定されている音声出力のボリューム値を取得します。

[メニュー]

mwPlySetOutPan
出力パンポットの設定

書式
void mwPlySetOutPan(MWPLY mwply, Sint32 chno, Sint32 pan)
入力

mwply：Sofdec再生ハンドル

chno：チャンネル番号（MWSFD_CH_L / MWSFD_CH_R）

pan：パンポット設定値（-15 〜 15）

出力

なし

戻り値

なし

解説

音声出力のパンポットを設定します。マクロMWSFD_PAN_~を利用できます。

[メニュー]

mwPlyGetOutPan
出力パンポットの取得

書式
Sint32 mwPlyGetOutPan(MWPLY mwply, Sint32 chno)
入力

mwply：Sofdec再生ハンドル

chno：チャンネル番号（MWSFD_CH_L / MWSFD_CH_R）

出力

なし

戻り値

パンポット設定値

解説

現在、設定されている音声出力のパンポット設定値を取得します。

[メニュー]

mwPlyGetNumAudioCh
オーディオストリーム数の取得

書式
Sint32 mwPlyGetNumAudioCh(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

オーディオストリーム数

解説

Sofdecファイル内のオーディオストリーム数を取得します。

備考

Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

[メニュー]

mwPlySetAudioCh
オーディオストリームチャネルの設定

書式
void mwPlySetAudioCh(MWPLY mwply, Sint32 ch)
入力

mwply：Sofdec再生ハンドル

ch：チャネル番号（初期値：0）

出力

なし

戻り値

なし

解説

Sofdecファイルに複数音声チャネルが含まれる場合、再生するチャネルを設定します。

チャネル番号はSofdecマルチプレクサで指定した番号から選択してください。

[メニュー]

mwPlyGetAudioCh
再生中のオーディオストリームチャネルの取得

書式
Sint32 mwPlyGetAudioCh(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

0〜31 : 再生中のオーディオストリームチャネル番号

-1 : オーディオ再生無しの場合、または再生開始前でチャネル番号が不明。

解説

再生中のオーディオストリームチャネル番号を取得します。

[メニュー]

mwPlyGetAhxWorkSize
AHX再生用作業領域サイズの取得

書式
Sint32 mwPlyGetAhxWorkSize(void)
入力

なし

出力

なし

戻り値

AHX再生用作業領域サイズ

解説

AHX再生用作業領域サイズを取得します。

備考

mwPlyAttachAhx関数に引数で渡す作業領域サイズ決定に利用します。

[メニュー]

mwPlyAttachAhx
AHX再生機能の追加

書式
void mwPlyAttachAhx(MWPLY mwply, void *wkptr, Sint32 wksize, Sint32 ch)
入力

mwply：Sofdec再生ハンドル

wkptr：作業領域へのポインタ

wksize：作業領域のサイズ

ch: AHXオーディオのチャネル番号

出力

なし

戻り値

なし

解説

AHX再生機能をSofdec再生ハンドルに追加します。

マルチプレクス時に指定したAHXデータのチャネル番号をこの関数で指定します。

備考

引数で指定する作業領域のサイズはmwPlyGetAhxWorkSize関数で取得してください。

[メニュー]

mwPlyDetachAhx
AHX再生機能の分離

書式
void mwPlyDetachAhx(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

AHX再生機能をSofdec再生ハンドルから分離します。

備考

本関数実行後は、mwPlyAttachAhx関数で引数指定した作業領域を解放することができます。

[メニュー]

mwPlySetAhxCh
AHXチャネル番号の設定

書式
void mwPlySetAhxCh(MWPLY mwply, Sint32 ch)
入力

mwply：Sofdec再生ハンドル

ch：AHXオーディオのチャネル番号

出力

なし

戻り値

なし

解説

Sofdec再生ハンドルにAHXがマルチプレクスされているオーディオチャネル番号を指定します。

備考

mwPlyAttachAhx関数(AHX再生機能追加)の第４引数と同じパラメータです。再生開始の前に実行してください。

[メニュー]

mwPlyGetSubtitle
字幕データの取得

書式
Sint32 mwPlyGetSubtitle(MWPLY mwply, Uint8 *bufptr, Sint32 bufsize, MwsfdSbtPrm *sbtprm)
入力

mwply：Sofdec再生ハンドル

bufptr：ユーザバッファのポインタ

bufsize：ユーザバッファのサイズ[Byte単位]

出力

sbtprm：字幕パラメータ

戻り値

1：現在時刻に一致する字幕データを取得した

1以外の値：字幕データは取得しなかった

解説

ユーザバッファにムービの再生時刻に同期した字幕データをコピーして、関連情報を取得します。

データの表示持続時間中は何度本関数を呼び出しても同じ内容のデータを取得します。

合成モードをMWSFD_COMPO_AUTOにして利用してください。

[メニュー]

mwPlySetSubtitleCh
字幕データのチャネル設定

書式
void mwPlySetSubtitleCh(MWPLY mwply, Sint32 chno)
入力

mwply：Sofdec再生ハンドル

chno：字幕データのチャネル番号(0〜7)

出力

なし

戻り値

なし

解説

字幕データのチャネル番号を設定します。

備考

一つのムービに入れることのできる字幕は最大８種類です。字幕データごとにチャネル番号を割り当てます。

[メニュー]

mwPlyGetNumSubtitleCh
字幕データチャネル数の取得

書式
Sint32 mwPlyGetNumSubtitleCh(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

再生中のSofdecファイルに含まれる字幕チャネル数

解説

再生中のSofdecファイルに含まれる字幕チャネル数を取得します。

備考

Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

[メニュー]

mwPlySetSubtitleScount
字幕データのシフトタイム設定

書式
void mwPlySetSubtitleScount(MWPLY mwply, Sint32 scount)
入力

mwply：Sofdec再生ハンドル

scount：字幕データ取得時間のシフト量

出力

なし

戻り値

なし

解説

字幕データに定義されている表示時間を指定カウントだけずらします。

[メニュー]

mwPlyFxSetOutBufPitchHeight
出力バッファサイズの設定

書式
void mwPlyFxSetOutBufPitchHeight(MWPLY mwply, Sint32 pitch, Sint32 height)
入力

mwply：Sofdec再生ハンドル

pitch：出力バッファ幅[Byte単位]

height：出力バッファ高さ[Line単位]

出力

なし

戻り値

なし

解説

出力バッファのサイズを指定します。

MWSFD_DFL_OUTBUFSIZE(デフォルト値=0)の場合は変換時の入力動画サイズと同サイズで変換処理されます。

[メニュー]

mwPlyFxGetOutBufPitchHeight
出力バッファサイズの取得

書式
void mwPlyFxGetOutBufPitchHeight(MWPLY mwply, Sint32 *pitch, Sint32 *height)
入力

mwply：Sofdec再生ハンドル

出力

pitch：出力バッファ幅[Byte単位]（未設定時はMWSFD_DFL_OUTBUFSIZE）

height：出力バッファ高さ[Line単位] （未設定時はMWSFD_DFL_OUTBUFSIZE）

戻り値

なし

解説

出力バッファのサイズを取得します。

[メニュー]

mwPlyFxSetCompoMode
合成モードの設定

書式
void mwPlyFxSetCompoMode(MWPLY mwply, Sint32 mode)
入力

mwply：Sofdec再生ハンドル

mode：合成モード MWSFD_ COMPO_~

出力

なし

戻り値

なし

解説

Sofdec再生ハンドルに合成モードを設定します。

[メニュー]

mwPlyFxGetCompoMode
合成モードの取得

書式
Sint32 mwPlyFxGetCompoMode(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

合成モードMWSFD_ COMPO_~

解説

Sofdec再生ハンドルに設定されている合成モードを取得します。

[メニュー]

mwPlyFxSetLumiPrm
ルミナンスキーパラメータの設定

書式
void mwPlyFxSetLumiPrm(MWPLY mwply, Sint32 in_th, Sint32 out_th, MwsfdLumiKey key)
入力

mwply：Sofdec再生ハンドル

in_th：透過度変化の開始しきい値(0〜255)

out_th：透過度変化の終了しきい値(0〜255)

key：透過キー（MWSFD_LUMIKEY_BLACK, MWSFD_LUMIKEY_WHITE）

出力

なし

戻り値

なし

解説

ルミナンスキー合成のパラメータを設定します。

[メニュー]

mwPlyFxGetLumiPrm
ルミナンスキーパラメータの取得

書式
void mwPlyFxGetLumiPrm(MWPLY mwply, Sint32 *in_th, Sint32 *out_th, MwsfdLumiKey *key)
入力

mwply：Sofdec再生ハンドル

出力

in_th：透過度変化の開始しきい値(0〜255)

out_th：透過度変化の終了しきい値(0〜255)

key：透過キー

戻り値

なし

解説

ルミナンスキー合成のパラメータを取得します。

[メニュー]

mwPlyFxSetAlp3Prm
３値アルファのパラメータ設定

書式
mwPlyFxSetAlp3Prm(MWPLY mwply, Uint8 zero, Uint8 half, Uint8 full)
入力

mwply：Sofdec再生ハンドル

zero：透明部分のアルファ値(0〜255)

half：半透明部分のアルファ値(0〜255)

full：不透明部分のアルファ値(0〜255)

出力

なし

戻り値

なし

解説

３値アルファ合成のパラメータを設定します。

備考

３値アルファ合成用ムービは透明／半透明／不透明という区別に基づいてエンコードされていますので、値を大きく変更するとノイズが目立つ場合があります。主に半透明部分のアルファ値の調整に本関数を使用してください。

[メニュー]

mwPlyFxGetAlp3Prm
３値アルファのパラメータ取得

書式
void mwPlyFxGetAlp3Prm(MWPLY mwply, Uint8 *zero, Uint8 *half, Uint8 *full)
入力

mwply：Sofdec再生ハンドル

出力

zero：透明部分のアルファ値(0〜255)

half：半透明部分のアルファ値(0〜255)

full：不透明部分のアルファ値(0〜255)

戻り値

なし

解説

３値アルファ合成に使用する透明／半透明／不透明のアルファ値を取得します。

[メニュー]

mwPlyFxCnvFrmZ16
16bitＺバッファへの変換

書式
void mwPlyFxCnvFrmZ16(MWPLY mwply, MwsfdFrmObj *frm, Uint8 *zout)
入力

mwply：Sofdec再生ハンドル

frm：デコード結果フレーム情報

出力

zout：出力先バッファポインタ

戻り値

なし

解説

デコード結果フレームから16bit/pixelのバッファにZ情報を変換します。

[メニュー]

mwPlyFxCnvFrmZ32
32bitＺバッファへの変換

書式
void mwPlyFxCnvFrmZ32(MWPLY mwply, MwsfdFrmObj *frm, Uint8 *zout)
入力

mwply：Sofdec再生ハンドル

frm：デコード結果フレーム情報

出力

zout：出力先バッファポインタ

戻り値

なし

解説

デコード結果フレームから32bit/pixelのバッファにZ情報を変換します。

[メニュー]

mwPlyFxSetZclip
Ｚクリップの設定

書式
void mwPlyFxSetZclip(MWPLY mwply, Float32 znear, Float32 zfar)
入力

mwply：Sofdec再生ハンドル

znear：奥行きのnear値

zfar：奥行きのfar値

出力

なし

戻り値

なし

解説

Z値変換に使用するＺクリップの値を設定します。

[メニュー]

mwPlyFxGetZclip
Ｚクリップの取得

書式
void mwPlyFxGetZclip(MWPLY mwply, Float32 *znear, Float32 *zfar)
入力

mwply：Sofdec再生ハンドル

出力

znear：奥行きのnear値

zfar：奥行きのfar値

戻り値

なし

解説

Z値変換に使用するＺクリップの値を取得します。

[メニュー]

mwPlyFxSetCbFnMakeZTbl
Ｚ変換テーブル作成コールバック関数の登録

書式
void mwPlyFxSetCbFnMakeZTbl(MWPLY mwply, MwsfdMakeZTblCbFn func)
入力

mwply ：Sofdec再生ハンドル

func ：Ｚ変換テーブル作成コールバック関数

出力

なし

戻り値

なし

解説

通常は使う必要のない関数です。

Ｚ変換テーブルの作成をライブラリ内ではなく、登録したコールバック関数で処理するようにできます。

[メニュー]

mwPlyGetFxType
F/X種別の取得

書式
Sint32 mwPlyGetFxType(mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

合成モード（MWSFD_COMPO_~）

解説

Sofdecファイルに埋め込まれた合成モード情報を取得します。

取得できる合成モードは以下の３種類です。

- MWSFD_COMPO_OPAQ : 不透明

- MWSFD_COMPO_ALPHFULL : フルアルファ合成

- MWSFD_COMPO_ALPH3 : ３値アルファ合成

備考

Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

[メニュー]

mwPlyGetHdrInf
ファイル情報の取得

書式
void mwPlyGetHdrInf(Sint8 *buf, Sint32 bsize, MwsfdHdrInf *hdrinf)
入力

buf：解析するデータのアドレス

bsize：解析するデータのサイズ

出力

hdrinf：ファイル情報構造体

戻り値

なし

解説

Sofdecファイルの内容を解析します。

Sofdecファイルの先頭20kbyteをメモリに読み込んで、引数で指定してください。

[メニュー]

mwPlyGetTotalFrmNum
総フレーム数の取得

書式
Sint32 mwPlyGetTotalFrmNum(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ビデオの総フレーム数

解説

ビデオストリームの総フレーム数を取得します。

備考

(a) Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

(b) Sofdecファイルでないと総フレーム数を取得できません。

例

    for (;;) {
        MwsfdFrmObj frm;
        /* Main Loop */
        ADXM_ExecMain();
        if (mwPlyGetStat(mwply) == MWSFD_STAT_PLAYING) {
            numfrm = mwPlyGetTotalFrmNum(mwply);
        }
        mwPlyGetCurFrm(mwply, &frm);
        if (frm.bufadr != NULL) {
            /* Conversion of frame */
            /* Transfer texture to VRAM */
            UsrLoadMvFrmFx(mwply, &frm);
            mwPlyRelCurFrm(mwply);
        }
        UsrDrawMv();
    }

[メニュー]

mwPlyGetPlayingHdrInf
再生中ファイルの情報の取得

書式
void mwPlyGetPlayingHdrInf(MWPLY mwply, MwsfdHdrInf *hdrinf)
入力

mwply：Sofdec再生ハンドル

出力

hdrinf：ファイル情報構造体

戻り値

なし

解説

現在再生中のムービファイルについて、情報を取得します。

mwPlyGetHdrInf関数の、リアルタイム版という位置づけになります。

備考

(a) Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

(b) ムービ情報を取得できるのは SFD ファイルのみです。SFVファイルからは取得できません。

[メニュー]

mwPlySetMallocFn
メモリ割当／メモリ解放関数の登録

書式
void mwPlySetMallocFn(MwsfdMallocFn mallocfn, MwsfdFreeFn freefn, void *obj)
入力

mallocfn：メモリ割当関数

freefn：メモリ解放関数

obj：メモリ割当／メモリ解放関数の引数に渡すオブジェクト

出力

なし

戻り値

なし

解説

登録したメモリ割当／メモリ解放関数を使用して、Sofdec再生ハンドルの作業領域を確保することができます。メモリ割当は作業領域一括ではなく、複数回に分けて行います。
ハンドル生成時に確保したメモリは、ハンドル破棄時に解放します。
登録したメモリ割当／メモリ解放関数を使用する場合は、ハンドル生成時の生成パラメータで、作業領域アドレスをNULLにしてください。

備考

登録したメモリ割当／メモリ解放関数は、ハンドル生成／消去の関数内でのみ使用します。
再生中や各種設定関数からメモリ割当／メモリ解放関数が呼び出されることはありません。

[メニュー]

mwPlySetSpeed
再生速度の設定

書式
void mwPlySetSpeed(MWPLY mwply, Sint32 speed)
入力

mwply：Sofdec再生ハンドル

speed：再生速度（1000で等速）

出力

なし

戻り値

なし

解説

ムービの再生速度を設定します。
早回し（再生速度を上げる）がどこまで可能かは、デコード負荷やデータの読み込みレートに依存します。
そのため設定した速度よりも再生がゆっくりになることがあります。

備考

オーディオ付きムービには再生速度設定ができない機種があります。

[メニュー]

mwPlySetSyncMode
同期モードの設定

書式
void mwPlySetSyncMode(MWPLY mwply, Sint32 mode)
入力

mwply：Sofdec再生ハンドル

mode：同期モード MWSFD_SYNCMODE_~

出力

なし

戻り値

なし

解説

ムービ再生の同期モードを切り替えます。

本関数は再生開始前に呼び出した場合のみ有効です。

定数 | 説明
--- | ---
MWSFD_SYNCMODE_AUDIO | オーディオ同期モード。 絵と音の同期をとりながら再生します。オーディオを含むムービは本モードで動作します。
MWSFD_SYNCMODE_VSYNC | Vsync同期モード。 絵と音の同期はとりません。ムービの時刻管理はVsyncをベースに行います。
MWSFD_SYNCMODE_NONE | 無同期モード。 時刻管理は行いません。mwPlyGetCurFrm関数は、デコード済みのフレームがあればフレーム取得できます。オーディオを含むムービの場合は音声が乱れる可能性があります。
MWSFD_SYNCMODE_EXTCLOCK | 外部クロック同期。外部クロック関数で時刻管理を行います。

備考

デフォルト値は入力ファイルの種別により次のように決まります。

ただし音付きSofdecファイルであっても、Sofdec再生ハンドルの生成時にファイルタイプで MWSFD_FTYPE_VONLYSFD を指定した場合はVsync同期になります。

再生ファイル | 同期モードデフォルト値
--- | ---
音付きSofdecファイル | オーディオ同期
音無しSofdecファイル | Vsync同期
M1Vファイル | Vsync同期

[メニュー]

mwPlyGetSyncMode
同期モードの取得

書式
Sint32 mwPlyGetSyncMode(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

MWSFD_SYNCMODE_AUDIO：オーディオ同期

MWSFD_SYNCMODE_VSYNC：Vsync同期

MWSFD_SYNCMODE_NONE：無同期

MWSFD_SYNCMODE_EXTCLOCK：外部クロック同期

解説

ムービ再生のビデオ同期モードを取得します。

[メニュー]

mwPlySetTimerCh
タイマチャネルの設定

書式
void mwPlySetTimerCh(Sint32 chno)
入力

chno ：チャネル番号

出力

なし

戻り値

なし

解説

Sofdecライブラリが指定するタイマチャネル番号を設定します。

タイマを使用しない設定にするには−1を指定します。

[メニュー]

mwPlyGetTimerCh
タイマチャネルの取得

書式
Sint32 mwPlyGetTimerCh(void)
入力

なし

出力

なし

戻り値

タイマチャネル番号

−１の場合はタイマ不使用。

解説

Sofdecライブラリの使用するタイマのチャネル番号を取得します。

[メニュー]

mwPlyAttachPicUsrBuf
ピクチャユーザデータ取得用バッファの設定

書式
void mwPlyAttachPicUsrBuf(MWPLY mwply, void *bufptr, Sint32 bufsize, Sint32 size1pic)
入力

mwply：Sofdec再生ハンドル

bufptr：ユーザデータ格納用のバッファポインタ

bufsize：ユーザデータ格納用のバッファサイズ

size1pic：１ピクチャの最大ユーザデータサイズ

出力

なし

戻り値

なし

解説

各フレームのユーザデータを取得するための設定関数です。

本関数でユーザデータ格納用バッファを設定すると、mwPlyGetCurFrm関数で取得するMwsfdFrmObj構造体のメンバusrdatptr, usrdatsizeにユーザデータのポインタとサイズが入るようになります。

もしユーザデータサイズがsize1picを越える場合は、size1picを越える部分は参照できません。

備考

SofdecCRAFT は各フレームにユーザデータを埋め込む機能は未実装です。

[メニュー]

mwPlySetFrmSync
フレーム取得同期モードの設定

書式
void mwPlySetFrmSync(MWPLY mwply, MwsfdFrmSync frmsync)
入力

mwply：Sofdec再生ハンドル

mode：同期モード MwsfdFrmSync

出力

なし

戻り値

なし

解説

フレーム取得同期モードを切り替えます。mwPlyGetCurFrm関数の動作に影響します。

定数 | 説明
--- | ---

MWSFD_FRMSYNC_TIME

時刻同期モード。
フレーム取得関数（mwPlyGetCurFrm関数）は、ビデオの再生時刻にできるだけあわせたフレームを取得します。
フレーム取得関数は内部で次の処理を行います。
(1) フレームの取得。
(2) 次フレーム取得可能の確認。
(3) 次フレームが取得できる（＝すでに表示時間になっている）ならば、現在フレームを解放。
(4) 次フレームを取得。

MWSFD_FRMSYNC_NONE | 同期無しモード。 デコードしたフレームは全てアプリケーションに渡します。

備考

デフォルト値は同期無しモードです。

[メニュー]

mwPlyGetFrmSync
フレーム取得同期モードの取得

書式
MwsfdFrmSync mwPlyGetFrmSync(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

MWSFD_FRMSYNC_TIME：時刻同期。表示フレームの自動スキップあり。

MWSFD_FRMSYNC_NONE：同期無し。表示フレームの自動スキップ無し。

解説

フレーム取得同期モードを取得します。

[メニュー]

mwPlySetCbExtClock
外部クロック関数の登録

書式
void mwPlySetCbExtClock(MWPLY mwply, MwsfdExtClockFn extclock_fn, Sint32 extclock_max, void *extclock_usrobj)
入力

mwply ：Sofdec再生ハンドル

extclock_fn ：外部クロック関数

extclock_max ：クロック値の最大値。(8ビットの場合0x000000FF, 32ビットの場合0xFFFFFFFF)

extclock_usrobj ：ユーザオブジェクト(外部クロック関数の第1引数としてユーザに渡す)

出力

なし

戻り値

なし

解説

ムービ再生の時刻管理を外部クロックを用いるようにするコールバック関数を登録します。

外部クロック関数には以下の要求条件があります。

- 常に同じペースで単調増加する値を返すこと。

- クロック値のオーバフローが発生する周期は時刻更新を行う周期より十分に大きいこと。（時刻更新周期は通常はVsync周期です。）

登録した外部クロック関数は次のタイミングで呼び出されます。

- ADXスレッド使用あり＋Sofdec時刻自動更新ONなら、Vsyncスレッドから。

- ADXスレッド使用なし＋Sofdec時刻自動更新ONなら、ADXM_ExecMain関数から。

- Sofdec時刻自動更新OFFなら、mwPlyUpdateTime関数から。

備考

Sofdecライブラリは前回クロック値との差分が負値となることでオーバフロー発生を検出します。

オーバフロー検出時は、クロック値差分に clock_max + 1 を加算してオーバフローを補償します。

[メニュー]

mwPlySetUpdateTimeAuto
Sofdec時刻の自動更新設定

書式
void mwPlySetUpdateTimeAuto(MWPLY mwply, Bool sw)
入力

mwply ：Sofdec再生ハンドル

sw ：切り替えスイッチ（ON：時刻を自動更新する、OFF：時刻を自動更新しない）

出力

なし

戻り値

なし

解説

Sofdecの時刻更新処理を自動で行うかどうかを設定します。

デフォルト値は「自動更新する」です。

設定を変更する場合は、再生開始前に呼び出してください。

「自動更新しない」に設定した場合は、アプリケーションでmwPlyUpdateTime関数を呼び出して明示的に時刻更新を行います。

本関数は、ADXのVsyncスレッドが正しくVsync周期で動作できないような環境で使用します。

備考

Sofdecの時刻更新を自動で行う場合、時刻更新のタイミングは以下のように決まります。

- ADXスレッドを使用する場合は、Vsyncスレッド内。

- ADXスレッドを使用しない場合は、ADXM_ExecMain関数。

ADXスレッドを使用するには、ADX/Sofdecの初期化前に ADXM_SetupThrd関数またはADXM_SetupFramework関数を呼び出してください。

[メニュー]

mwPlyUpdateTime
Sofdec時刻の更新

書式
void mwPlyUpdateTime(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル。NULL指定の場合は全ハンドル指定となる。

出力

なし

戻り値

なし

解説

Sofdec時刻の更新処理を行います。

mwPlySetUpdateTimeAuto関数で「自動更新しない」設定にした場合に、毎メインループに１度呼び出してください。

呼び出し位置はなるべくいつもVsync区間の同じタイミング（Vsync待ち直後など）にしてください。

アプリケーションが処理落ちした場合でも複数回呼び出す必要はありません。

Sofdec時刻の自動更新がONの場合は、本関数を呼び出しても時刻更新は行いません。

[メニュー]

mwPlyGetVersionStr
Sofdecライブラリバージョン文字列の取得

書式
const Char8 *mwPlyGetVersionStr(void)
入力

なし

出力

なし

戻り値

バージョン番号文字列のポインタ

解説

Sofdecライブラリバージョン番号の文字列へのポインタを取得します。

[メニュー]

mwPlySetLimitTime
再生時間上限の設定

書式
void mwPlySetLimitTime(MWPLY mwply, Sint32 sec)
入力

mwply：Sofdec再生ハンドル

sec：再生時間上限（秒単位）

出力

なし

戻り値

なし

解説

ムービの再生時間上限を設定します。

再生時間が上限に達するとムービ再生中であっても再生を終了し、停止状態になります。

再生時間上限は以下の情報に依存して決まります。

- Vsync周波数（Sofdecライブラリ初期化時のパラメータ）

- オーディオ再生の有無

- ムービのフレームレート

これらによって決まる再生時間上限よりも大きな値を設定することはできません。

一般的なVsync周波数における再生時間上限は次のようになります。

■音再生なし＋フレームレートが29.97fps

59.94Hz：99時間31分11秒

50.00Hz：119時間18分15秒

60.00Hz：99時間25分12秒

■音再生あり

59.94Hz：9時間57分06秒

50.00Hz：11時間55分48秒

60.00Hz：9時間56分30秒

音無しの場合は音あり再生と比べて再生時間上限は約10倍になります。

ただしムービのフレームレートが23.976の場合のみ4倍になります。

備考

再生時間上限はハンドル状態がPLAYINGになった後に、mwPlyGetLimitTime関数を使うことで取得することができます。

[メニュー]

mwPlyGetLimitTime
再生時間上限の取得

書式
Sint32 mwPlyGetLimitTime(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

再生時間上限（秒単位）

解説

ムービの再生時間上限を取得します。

ハンドル状態がPLAYINGになった後に呼び出してください。

備考

再生時間上限についてはmwPlySetLimitTime関数の説明を参照してください。

[メニュー]

mwPlyGetPlyInf
再生情報の取得

書式
void mwPlyGetPlyInf(MWPLY mwply, MwsfdPlyInf *plyinf)
入力

mwply：Sofdec再生ハンドル

出力

plyinf：再生情報構造体

戻り値

なし

解説

再生時の統計情報を一括で取得します。

以下の情報は個々に別関数で取得可能です。

(a) コマ落ち ：mwPlyGetNumDropFrm

(b) デコードスキップ ：mwPlyGetNumSkipDec

(c) 表示スキップ ：mwPlyGetNumSkipDisp

(d) エンプティBスキップ ：mwPlyGetNumSkipEmptyB

各関数の返す情報の違いを以下に示します。

関数名 | デコードスキップ | 表示スキップ | エンプティBスキップ
--- | --- | --- | ---
mwPlyGetNumDropFrm | ○ | ○ | ×
mwPlyGetNumSkipDec | ○ | × | ×
mwPlyGetNumSkipDisp | × | ○ | ×
mwPlyGetNumSkipEmptyB | × | × | ○

[メニュー]

mwPlyGetNumTotalDec
デコードした全ピクチャ数の取得

書式
Sint32 mwPlyGetNumTotalDec(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

デコードした全ピクチャ数

解説

再生開始後のデコードした全ピクチャ数を取得します。

[メニュー]

mwPlyGetNumDecPool
デコード済み保持フレーム数の取得

書式
Sint32 mwPlyGetNumDecPool(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

デコード済み保持フレーム数を返します。

アプリケーションが最終フレームの取得および解放を行ったあとは-1を返します。

解説

デコード済み保持フレーム数とは、MWSFDライブラリが内部で保持しているフレーム数のことです。ハンドル生成時のフレームプール数が上限になります。

[メニュー]

mwPlyGetNumDropFrm
コマ落ちしたフレーム数の取得

書式
Sint32 mwPlyGetNumDropFrm(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

コマ落ちしたフレーム数。エンプティBピクチャのスキップは含まない。

解説

デコードスキップしたフレーム数を取得します。

備考

エンプティBピクチャのスキップが有効な場合でも、取得できるスキップ数にはエンプティBピクチャのスキップは含みません。

[メニュー]

mwPlyGetNumSkipDec
デコードできなかったフレーム数の取得

書式
Sint32 mwPlyGetNumSkipDec(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

デコードできなかったフレーム数

解説

デコード処理中にコマ落ちしたフレーム数を取得します。

備考

表示時刻までにデコードできないフレームがあった場合に、このカウントが増加します。

[メニュー]

mwPlyGetNumSkipDisp
表示段のスキップ回数の取得

書式
Sint32 mwPlyGetNumSkipDisp(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

表示落ちしたフレーム数

解説

表示処理中にコマ落ちしたフレーム数を取得します。

備考

表示時刻までにフレームの取得が行われなかった場合に、このカウントが増加します。

[メニュー]

mwPlyGetNumSkipEmptyB
スキップしたエンプティBピクチャ枚数の取得

書式
Sint32 mwPlyGetNumSkipEmptyB(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

スキップしたエンプティBピクチャの枚数

解説

デコード処理中にスキップしたエンプティBピクチャの枚数を返します。

備考

エンプティBピクチャのデコードを行う場合はこの値はカウントされません。

[メニュー]

mwPlyGetFlowInf
流量情報の取得

書式
void mwPlyGetFlowInf(MWPLY mwply, MwsfdFlowInf *flowinf)
入力

mwply ：Sofdec再生ハンドル

出力

flowinf ：流量情報

戻り値

なし

解説

システムストリームのデータ流量を取得します。

[メニュー]

mwPlySetBpicSkip
Bピクチャのデコードスキップ設定

書式
void mwPlySetBpicSkip(MWPLY mwply, Bool sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：スキップする、OFF：スキップしない）

出力

なし

戻り値

なし

解説

Bピクチャのデコードを省略するか否かの設定を切り替えます。

備考

デフォルト値はスキップ無しです。

[メニュー]

mwPlySetEmptyBpicSkip
Empty Bピクチャのデコードスキップ設定

書式
void mwPlySetEmptyBpicSkip(MWPLY mwply, Bool sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：スキップする、OFF：しない）

出力

なし

戻り値

なし

解説

エンプティBピクチャのデコードを省略するか否かの設定を切り替えます。

備考

デフォルト値はスキップ無しです。

[メニュー]

mwPlySetPpicSkip
Pピクチャのデコードスキップ設定

書式
void mwPlySetPpicSkip(MWPLY mwply, Bool sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：スキップする、OFF：しない）

出力

なし

戻り値

なし

解説

Pピクチャのデコードを省略するか否かの設定を切り替えます。

備考

デフォルト値はスキップ無しです。

[メニュー]

mwPlyGetAdxtHn
ADXTハンドルの取得

書式
ADXT mwPlyGetAdxtHn(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ADXTハンドル

解説

Sofdec再生ハンドル内のADXTハンドルを取得します。

[メニュー]

mwPlyGetInputSj
入力ストリームジョイントの取得

書式
SJ mwPlyGetInputSj(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

SJハンドル

解説

デコーダへの入力SJハンドルを取得します。

[メニュー]

mwPlyGetSfdHn
ビデオデコーダハンドルの取得

書式
void *mwPlyGetSfdHn(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ビデオデコーダハンドル

解説

Sofdec再生ハンドル内のビデオデコーダハンドルを取得します。

[メニュー]

mwPlyGetNumRemainFrm
取得可能フレーム数の取得

書式
Sint32 mwPlyGetNumRemainFrm(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

取得可能フレーム数

解説

新しく取得可能なフレーム数を取得します。取得済みのフレームは数に含みません。

この関数が0を返す時は、新しいフレームを取得することはできません。

[メニュー]

mwPlySwitchToIdle
アイドルスレッドへの切替

書式
void mwPlySwitchToIdle(void)
入力

なし

出力

なし

戻り値

なし

解説

アイドルスレッドへ切り替え、次のVsync割り込みまでメインスレッドをスリープします。

MWSFD Ver.3.30以降では、ADXM_WaitVsync関数と同じ機能になりました。

アプリケーションのVsync待ち関数の代わりに、ADXM_WaitVsync関数を呼び出すようにしてください。

[メニュー]

mwPlyIsSvrBdr
サーバ区切り問い合わせ

書式
Bool mwPlyIsSvrBdr(void)
入力

なし

出力

なし

戻り値

TRUE：サーバ区切り状態にある場合。

FALSE：サーバ区切り状態にない場合。

解説

サーバ関数の区切り状態を問い合わせます。

備考

サーバ区切り状態にある場合は再生停止やハンドル消去の処理時間が短くなります。サーバ区切り状態にない場合は同様の処理に不定の時間がかかります。

[メニュー]

mwPlyCalcYccPlane
YCbCrプレーンの計算

書式
void mwPlyCalcYccPlane(Uint8 *bufptr, Sint32 width, Sint32 height,MwsfdYccPlane *ycc)
入力

bufptr：デコード結果バッファアドレス

width：横ピクセル数

height：縦ピクセル数

出力

YCbCrプレーン情報

戻り値

なし

解説

デコード結果バッファアドレスからY, Cb, Cr各成分のポインタと幅を求めます。

[メニュー]

mwPlySetAudioSw
音声出力スイッチの設定

書式
void mwPlySetAudioSw(MWPLY mwply, Sint32 sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：デコードする、OFF：デコードしない）

出力

なし

戻り値

なし

解説

オーディオストリームのデコードON/OFFを設定します。

本関数は再生開始前に呼び出した場合のみ有効です。

備考

(a) デコードスイッチをOFFにすると、オーディオチャネルのデコードが行われなくなるため、AV同期はVsyncによって行われます。

(b) 音声出力を抑制する（ミュートする）時は、出力ボリュームの設定により行ってください。

[メニュー]

mwPlyGetNumVideoCh
ビデオチャネル数の取得

書式
Sint32 mwPlyGetNumVideoCh(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

ビデオチャネル数

解説

Sofdecファイル内のビデオチャネル数を取得します。

備考

Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

[メニュー]

mwPlySetVideoCh
再生するビデオチャネルの設定

書式
void mwPlySetVideoCh(MWPLY mwply, Sint32 ch)
入力

mwply：Sofdec再生ハンドル

ch：ビデオチャネル番号（0〜15, 0:初期値）

出力

なし

戻り値

なし

解説

複数ビデオストリームを含むSofdecファイルで、再生するビデオストリームを設定します。

[メニュー]

mwPlyGetVideoCh
再生中のビデオストリームチャネルの取得

書式
Sint32 mwPlyGetVideoCh(MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

0〜15 : 再生中のビデオストリームチャネル番号

-1 : ビデオ再生無しの場合、または再生開始前でチャネル番号が不明。

解説

再生中のビデオストリームチャネル番号を取得します。

備考

Sofdec再生ハンドルの状態がMWSFD_STAT_PLAYING（再生中）になった後に使用してください。

[メニュー]

mwPlySetVideoSw
ビデオ出力スイッチの設定

書式
void mwPlySetVideoSw(MWPLY mwply, Sint32 sw)
入力

mwply：Sofdec再生ハンドル

sw：切り替えスイッチ（ON：デコードする、OFF：デコードしない）

出力

なし

戻り値

なし

解説

ビデオストリームのデコードON/OFFを設定します。

[メニュー]

mwPlyVsyncHndl
ハンドル毎のVsync関数

書式
void mwPlyVsyncHndl (MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

なし

解説

ハンドル毎のVsync処理を実行します。

[メニュー]

mwPlyExecSvrHndl
ハンドル毎のサーバ関数の実行

書式
Bool mwPlyExecSvrHndl (MWPLY mwply)
入力

mwply：Sofdec再生ハンドル

出力

なし

戻り値

TRUE：サーバの作業が残っている。

FALSE：サーバの作業は残っていない。

解説

ハンドル毎のサーバ処理を実行します。通常アプリケーションは呼び出してはいけません。

[メニュー]

mwPlyExecVsyncServer
スレッド外部管理時の時刻更新サーバの実行

書式
Bool mwPlyExecVsyncServer(void)
入力

なし

出力

なし

戻り値

TRUE：サーバの作業が残っている。

FALSE：サーバの作業は残っていない。

解説

ADXのスレッド機能を使わない場合に呼び出す時刻更新サーバ関数です。

通常アプリケーションは呼び出してはいけません。

[メニュー]

mwPlyExecDecServer
スレッド外部管理時のデコードサーバの実行

書式
Bool mwPlyExecDecServer(void)
入力

なし

出力

なし

戻り値

TRUE：サーバの作業が残っている。

FALSE：サーバの作業は残っていない。

解説

ADXのスレッド機能を使わない場合に呼び出すデコードサーバ関数です。

通常アプリケーションは呼び出してはいけません。

Copyright (c) 2001-2006 CRI Middleware Co.,LTD.