初期化シーケンス(図をクリックして拡大)
<シーケンス説明>
1. GVDライブラリに与えるパラメータを設定。「GVD_InitInitializeParam」
2. ワークメモリサイズを算出。「GVD_GetRequiredMemorySize」
3. ワークメモリを設定。「GVD_SetWorkMemory」
4. GVDライブラリの初期化。「GVD_Initialize」
コンテキスト生成シーケンス(図をクリックして拡大)
<シーケンス説明>
1. コンテキストを生成。「GVD_CreateContext」
2. デコード用ヒープ領域を設定。「GVD_SetOutputHeap」
3. 位置情報バッファを設定。「GVD_SetPositionBuffer」 ※シークや早戻し動作を行わない場合は省略可能。
4. コールバック設定パラメータを初期化。「GVD_InitCallbackInfo」
5. コールバック関数を設定。「GVD_SetCallbackFunctions」
6. コールバック関数の引数を設定。「GVD_SetCallbackParams」
※複数コンテンツを再生する場合は、各コンテンツに対して上記処理を行ってください。
内蔵ストリーマを使用した再生シーケンス(図をクリックして拡大)
<シーケンス説明>
1. 専用スレッドで GVD_Execute を定期的に呼び出します。
2. 動画ファイルオープン&ドライバ接続を行います。「GVD_OpenFile」
3. 接続完了でコールバック(connect_done)が呼ばれます。
4. 予め出力バッファを供給しておきます。「GVD_PutOutputBuffer」
5. 出力バッファの供給が受け付けられるとコールバック(put_output_buffer_done)が呼ばれます。
6. 動画再生を開始します。「GVD_Play」
7. 再生開始が受け付けられるとコールバック(play_accepted)が呼ばれます。
8. 出力バッファにフレームデータが格納されるとコールバック(commit_output_buffer)が呼ばれます。
9. 出力バッファを供給します。「GVD_PutOutputBuffer」
10. 出力バッファの供給が受け付けられるとコールバック(put_output_buffer_done)が呼ばれます。
11. 出力バッファにフレームデータが格納されるとコールバック(commit_output_buffer)が呼ばれます。
12. ストリームの終端まで出力するとコールバック(decode_stream_end)が呼ばれます。
※GVDライブラリ内蔵ストリーマを使用せず、 GVD_PutInputBuffer による入力バッファ供給を行う場合は GVD_OpenFile の代わりに GVD_Connect を使用してください。
GVDを使用した動画再生の一例(図をクリックして拡大)
動画再生を行うアプリケーションの全体的なシーケンス例です。