The Media Kit Table of Contents | The Media Kit Index |
Derived from: none
Declared in: be/media/MediaEncoder.h
Library: libmedia.so
BMediaEncoderクラスは、エンコーダのクラスが派生する基底クラスです。これは適切なencoder add-onを配置し、そのインターフェイス処理を行う作業の全てを扱います。あなたがしなければならないのは、destinationにエンコードされたデータのチャンク(塊)を書き込み、ファイルに対してトラックに関する情報を書込むためにWriteChunk()及びAddTrackInfo()関数を実装することだけです。
BMediaBufferEncoderクラスが提供されています。このクラスは、メモリバッファにエンコードされたデータを書込むようにWriteChunk()の実装された派生クラスです。
ファイルに由来しないデータのストリームをエンコードすることを望むアプリケーションは、(BMediaBufferEncoderといった)BMediaEncoderのサブクラスを使用して下さい。
|
このコンストラクタは、BMediaEncoderをセットアップします。もしなにも引数を取らないコンストラクタを使用した場合、encode()が呼び出されるより前にエンコードされるフォーマットを確立するためにSetTo()を呼び出さなければなりません。
2つ目のコンストラクタは、media_format構造体であるinFormatを引数に取ります。この構造体は、encoderに入力されるメディアデータのタイプを示します。
3つ目のコンストラクタは、media_codec_info構造体であるmciを引数に取ります。これはどのcodecが使用されるかを決定します。
(訳注 : 3つ目はどこでしょうか…)
|
|
BMediaEncoderによって使用されるencoder add-onを解放します。
protected:
|
派生クラスでは、出力ファイルにトラックの情報を書込むために、この関数を実装して下さい。codeは追加された情報のタイプを、dataは情報のデータそのものを示します。sizeは、書込まれるデータの大きさを示します。
デフォルトでは、この関数はB_ERRORを返します。あなたが実装する際には、情報の書き込みが問題なく行われたらB_OKを返し、そうでなければ適切なエラーコードを返すようにして下さい。
|
inBufferの入力バッファから得られたメディアデータのチャンクをエンコードします。inBufferは、データのframeCount個のフレームを持っています。
media_encode_info構造体であるinfoは、入力時にencoding parameterを特定するために使用されます。
データがエンコードされた後、ファイルにデータを書込むために、encoderは派生クラスのWriteChunk()を呼び出します。
RETURN CODES
|
GetEncodeParameters()は、inParametersに対してencoder add-onがどうやって設定されるかを記述するencode_parametersを返します。
SetEncodeParameters()によって、add-onにencode_parametersを指定することができます。
RETURN CODES
|
コンストラクトが問題なく行われたかどうかを示すstatus_tの値が返されます。コンストラクトした後、BMediaEncoderの他の関数が呼び出される前に、この関数を呼び出さなければなりません。
RETURN CODES
|
SetFormat()は、エンコードされたデータが書込まれるファイルを記述するmedia_file_formatだけでなく、encoderによって使用される入力及び出力フォーマットを設定します。
RETURN CODES
|
SetTo()は、BMediaEncoderオブジェクトによってエンコードされるメディアデータのフォーマットを設定します。これによってBMediaEncoderは、使用するのに適切なcodecを配置することができます。
一つ目の形式では、media_format構造体であるoutputFormatを引数に取ります。outputFormatはencoderが出力するメディアデータのタイプを示します。
SetTo()の二つ目の形式では、media_codec_info構造体であるmciを引数として取ります。mciは、どのcodecが使用されるかを決定します。
RETURN CODES
protected:
|
派生クラスでは、目的のファイルまたはバッファに、chunkDataポインタで指定されるエンコードされたデータのチャンクを書込むよう、この関数を実装して下さい。chunkLengthはバッファの大きさを示し、infoは参照する必要のあるエンコード処理に関する情報を提供します。
もしデータが問題なく書込まれたら、B_OKを返して下さい。そうでなければ、適切なエラーコードを返して下さい。
The Media Kit Table of Contents | The Media Kit Index |
Copyright © 2000 Be, Inc. All rights reserved..