The Media Kit Table of Contents | The Media Kit Index |
Derived from: none
Declared in: be/media/MediaTrack.h
Library: libmedia.so
Allocation: BMediaFile::TrackAt()
BMediaTrackクラスは、メディアファイル内の特定のトラックにアクセスする手段を提供します。このクラスのインスタンスは、は常にBMediaFile::TrackAt()またはBMediaFile::CreateTrack()関数を使用して生成されます。
BMediaTrackのコンストラクタは、トラック内のエンコードされたデータを扱うことのできるcodecを探します。一旦それが終わったら、トラックが使用される準備はできています。
もし書き込みのためにファイルを開けば、データをトラックに書込むことができます。BMediaFileをコンストラクトする際にB_MEDIA_FILE_REPLACE_MODEフラグが指定されていれば、ファイルの読み込みと書き込みの両方が可能になります。もしそのトラックに対して使用できるデコーダがなくても、エンコードされたデータに直接アクセスするためにReadChunk()を使用することができます。
BMediaFile関数を用いてBMediaTrackのインスタンスを生成した後、トラックが有効であることを確かめるためにInitCheck()を呼び出して下さい。その後、ファイルのデータを読み書きするためにReadFrames()及びWriteFrames()を適切に呼び出します。ビデオデータに関しては、一時に一つのフレームを処理して下さい。
SeekToTime()またはSeekToFrame()を使用して、特定の時間やフレームをseekすることもできます。
メディアファイルのトラックをBMediaTrackを使用して読み書きする方法の例としては、"Reading and Writing Media Files"をご覧下さい。
|
|
デストラクタです。BMediaTrackを直接削除してはいけません。その代わりに、BMediaFile::ReleaseTrack()またはBMediaFile::ReleaseAllTracks()を使用するか、あるいはBMediaFileが削除された時にトラックを破棄させるかして下さい。
|
トラックの著作権情報(copyright notice)をdataによって指定される文字列を設定します。既存の著作権情報があれば置き換えられます。
|
RETURN CODES
B_OK. 著作権が設定された。
|
トラックに、指定されたtypeの内部的なレコードを追加します。レコードはdataポインタによって指定され、sizeバイトの長さです。flagsは、処理を変更するフラグを示します(現在はなにも定義されていません)。
|
RETURN CODES
B_OK. フォーマットが問題なく返された。
|
トラック中のフレーム総数を返します。
|
トラック中にある現在の(GetNextFrames()によって次回読み込まれる)フレームを返します。
|
トラック中の現在の位置を返します。位置は、トラックの先頭からのマイクロ秒で表現されます。
|
トラックのデータをデコードする時にcodecが出力するフォーマットを取り決めます。ioFormatに、あなたの望むフォーマットを(適切なワイルドカードで)渡して下さい。codecは、もっとも適合するフォーマットを探し、ioFormatに返します。このフォーマットは、その後ReadFrames()経由で、デコードされたデータを出力する際に使用されます。
フォーマットは、典型的にはB_MEDIA_RAW_AUDIOまたはB_MEDIA_RAW_VIDEOのフレーバーとなります。
RETURN CODES
B_OK. フォーマットは問題なく取り決められ、返された。
|
トラック全体の長さを、マイクロ秒単位で返します。
|
トラックのデータの「ネイティブな」エンコードされたフォーマットを返します。これは、ReadChunk()によって返されたデータのフォーマットです。
RETURN CODES
B_OK. フォーマットは問題なく返された。
|
FindKeyFrameForTime()は、inOutTimeで時間を受け取り、最もその時間に近いキーフレームの開始される時間をinOutTimeに返します。同様に、FindKeyFrameForFrame()は、指定されたフレームに最も近いキーフレームの番号を返します。
引数flagsは、キーフレームを前方に探すか、それとも後方に探すかを示します。
もし示されたフレームまたは時間より以前の最も近いキーフレームを探したいなら、flagsにB_MEDIA_SEEK_CLOSEST_BACKWARDを指定して下さい。もし示されたフレームまたは時間より後の最も近いキーフレームを探したいなら、B_MEDIA_SEEK_CLOSEST_FORWARDを指定して下さい。
|
バッファにある全てのエンコードされたデータをディスクに流し込みます。トラックの最後のフレームを書き込み終わった後、この関数を呼び出して下さい。これは、全てがファイルの適切なオフセットに書込まれることを保証します。
RETURN CODES
B_OK. バッファは書込まれた。
|
トラックのデータを読み書きするのに使用されているcodecについての情報を返します。
RETURN CODES
B_OK. codecの情報が返された。
|
GetEncodeParameters()は、トラックのデータをエンコードする際に使用されるencode_parametersを返します。
SetEncodeParameters()は、データをエンコードする際に使用されるencode_parametersを変更します。
|
codecとトラックのparameterを合わせるためのcontrolを内包するBViewを返します。もし使用できるviewがなければ、NULLが返されます。
|
トラックが問題なく完全にインスタンスを生成されたか否かを示す状態(status)コードを返します。
RETURN CODES
B_OK. トラックは適切にコンストラクトされた。
|
メディアトラックの次のioSizeバイトへのポインタを、outBufferに返します。返される実際のバイト数は、ioSizeに渡されます。もしトラックの終端に到達していれば、そうはならないでしょう。返されたバッファを記述するために、headerが設定されます。
この関数によって返されたデータは、デコードされていません。典型的には、メディアデータのデコードに使用できるcodecがない場合のみ、この関数を使用して下さい。
RETURN CODES
B_OK. フォーマットは問題なく取り決められ、返された。
|
outBufferのポインタによって示されるバッファに、トラックの現在の位置から開始される次のフレームまたはサンプルで満たされます。ビデオトラックの場合、ビデオの次のフレームは、デコードされて出力バッファに保存されます。オーディオトラックの場合、バッファはDecodedFormat()を使用して取り決められたフレームの数(値)で満たされます。もしバッファが満たされる前にトラックの終端に到達したら、部分的なバッファが返されます。
関数が返る際には、outFrameCountは返されたフレームの数を示し、もしNULLでない値が指定されれば、outHeaderは単独または複数のフレームを含むバッファのヘッダを内包します。このヘッダからは、(バッファに対するメディアの開始時間などの)便利な情報を得ることができます。
この関数の2つ目の形式では、デコーダに付加的な情報を提供するためにmedia_decode_info構造体を提供することができます。付加的な情報とは、データをデコードするのにかかる時間や、フォーマットとcodecに特異的な情報などです。
RETURN CODES
B_OK. フレームは返された。
|
トラックのioFrameCountによって指定されるフレームの番号を入れ替えます。inBufferは、新しいフレームのためのソースバッファへのポインタを示します。
|
トラック中の特定の位置をseekします。SeekToFrame()は、フレームの番号で目的地の位置を解釈し、SeekToTime()はマイクロ秒単位の時間で目的地の位置を解釈します。これらの関数はそれぞれ(ioFrameまたはioTimeに)それらが実際に動かされた位置を返します。
例えば、もしビデオのcodecがキーフレームによるseekしか受け付けない場合、返されるioFrameは入力時に指定されたものとは異っているでしょう。
もし現在のフレームより前の最も近いキーフレームを明示的にseekしたいなら、flagsにB_MEDIA_SEEK_CLOSEST_BACKWARDを指定して下さい。もし現在の時間より後の最も近いキーフレームを探したいなら、B_MEDIA_SEEK_CLOSEST_FORWARDを指定して下さい。
RETURN CODES
B_OK. フォーマットは問題なく返された。
|
SetParameterValue()は、idで指定されるparameterの値を、valueポインタによって示されるデータに設定します。このデータは、sizeバイトの長さです。
GetParameterValue()
RETURN CODES
B_OK. エラーなし。
|
これらの関数は、(1.0は最高の品質を意味する)codecの品質設定をセットしたり、返したりします。
RETURN CODES
B_OK. エラーなし。
|
トラックとcodecを設定するために使用できるBParameterWebを返します。もしcodecがユーザの設定をサポートしていなければ、NULLが返されます。
|
sizeバイトのデータを含み、dataポインタによって指定されるデータを、トラックに書込みます。もしフレームがキーフレームであれば、flagsにB_MEDIA_KEY_FRAMEを指定して下さい。この関数は、データがすでにエンコードされていると見なしています。
|
一般的に、ファイルからの圧縮されたデータを読み込み、データを処理しようと試みることなくそれを他のトラックにコピーする場合のみ、WriteChunk()を使用して下さい。
RETURN CODES
B_OK. フレームが書込まれた。
|
numFrame個のフレームを含み、dataポインタによって示されるデータをトラックに書込みます。もしフレームがキーフレームであれば、flagsにB_MEDIA_KEY_FRAMEを指定して下さい。
|
データが生の(raw)音声またはビデオであっても、メディアトラックにフレームを書込む前に、必ずエンコーダを選択しなければなりません。BMediaTrackに生の(raw)音声またはビデオを書込む時は、raw encoderを使用する必要があります。これはデータを変換しませんが、それを生成した後に適切に再生するために、ファイルに対して内部データをセットアップします。
RETURN CODES
B_OK. フレームは書込まれた。
Declared in: be/media/MediaTrack.h
Constant | Description |
---|---|
B_MEDIA_SEEK_CLOSEST_FORWARD | トラックの現在の位置より後で、最も近いキーフレームをseekする。 |
B_MEDIA_SEEK_CLOSEST_BACKWARD | トラックの現在の位置より前で、最も近いキーフレームをseekする。 |
B_MEDIA_SEEK_DIRECTION_MASK | seekの方向を得るためには、この値でseekフラグをマスクする。 |
SeekToTime()及びSeekToFrame()を呼び出す際に使用されるこれらのフラグによって、それが置かれている時間やフレーム番号を推測する必要なしに、ファイル中の現在の位置より前または後ろの最も近くにあるキーフレームを探すことができます。
The Media Kit Table of Contents | The Media Kit Index |
Copyright © 2000 Be, Inc. All rights reserved..