高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1411
Sequence Grabber preallocates large file when recording

Q:ビデオをムービーとして記録するために、シーケンスグラバを使用しています。ディスク上のムービーファイルに書き込む録画ビデオを指定するために、seqGrabToDisk フラグを指定して SGSetDataOutput を呼び出します。しかし、SGPrepare または SGStartRecord を呼び出して録画を開始すると、QuickTime がディスク領域を大量に使用する大きなファイルを事前割り当てします。どうすれば、これを防げるでしょうか。

A:SGSetOutputMaximumOffset 関数を使用すれば、任意のシーケンスグラバ出力に書き込むデータの最大オフセットを指定できます。最大オフセットを超えてデータを書き込もうとすると、シーケンスグラバが、SGSetOutputNextOutput で指定された次の出力に切り替わります。それ以上の出力が利用できない場合は、ファイル終了(EOF)エラーが返され、録画が終了します。

録画中にシーケンスグラバが使用するスペースを監視するには、SGGetStorageSpaceRemaining または SGGetStorageSpaceRemaining64 を使用します。これらは、現在の録画操作に対して残されている空き容量を示す値を返します。メモリに録画する場合、この値にはメモリの残量に関する情報が含まれます。ムービーファイルに録画する場合、この値にはファイルを保持するデバイスで利用可能な空き容量に関する情報が含まれます。

複数のシーケンスグラバ出力を使用する場合は、SGGetDataOutputStorageSpaceRemaining または SGGetDataOutputStorageSpaceRemaining64 を使用して、録画中に利用可能なスペースを監視します。

参考資料

先頭に戻る

ドキュメントの改訂履歴

日付 メモ
2005-02-22 初版

掲載日: 2005-02-22