The Media Kit Table of Contents     The Media Kit Index

BMediaEncoder

Derived from: none

Declared in: be/media/MediaEncoder.h

Library: libmedia.so

Summary

 BMediaEncoderクラスは、エンコーダのクラスが派生する基底クラスです。これは適切なencoder add-onを配置し、そのインターフェイス処理を行う作業の全てを扱います。あなたがしなければならないのは、destinationにエンコードされたデータのチャンク(塊)を書き込み、ファイルに対してトラックに関する情報を書込むためにWriteChunk()及びAddTrackInfo()関数を実装することだけです。

 BMediaBufferEncoderクラスが提供されています。このクラスは、メモリバッファにエンコードされたデータを書込むようにWriteChunk()の実装された派生クラスです。

 ファイルに由来しないデータのストリームをエンコードすることを望むアプリケーションは、(BMediaBufferEncoderといった)BMediaEncoderのサブクラスを使用して下さい。


Hook Functions

AddTrackInfo()

WriteChunk()


Constructor and Destructor


BMediaEncoder()

                                                         
  

BMediaEncoder()

BMediaEncoder(const media_format *outputFormat)

 このコンストラクタは、BMediaEncoderをセットアップします。もしなにも引数を取らないコンストラクタを使用した場合、encode()が呼び出されるより前にエンコードされるフォーマットを確立するためにSetTo()を呼び出さなければなりません。

 2つ目のコンストラクタは、media_format構造体であるinFormatを引数に取ります。この構造体は、encoderに入力されるメディアデータのタイプを示します。

 3つ目のコンストラクタは、media_codec_info構造体であるmciを引数に取ります。これはどのcodecが使用されるかを決定します。

(訳注 : 3つ目はどこでしょうか…)

 
もしmedia_formatまたはmedia_codec_infoを引数とするコンストラクタを使用するなら、このクラスの関数が使用される前に、コンストラクトが無事に行われたことを保証するためにInitCheck()を呼び出さなければなりません。



~BMediaEncoder()

                                                         
  

virtual ~BMediaEncoder()

 BMediaEncoderによって使用されるencoder add-onを解放します。


Member Functions


AddTrackInfo()

protected:

                                                         
  

status_t AddTrackInfo(uint32 code, const char *data,
      size_t size)

 派生クラスでは、出力ファイルにトラックの情報を書込むために、この関数を実装して下さい。codeは追加された情報のタイプを、dataは情報のデータそのものを示します。sizeは、書込まれるデータの大きさを示します。

 デフォルトでは、この関数はB_ERRORを返します。あなたが実装する際には、情報の書き込みが問題なく行われたらB_OKを返し、そうでなければ適切なエラーコードを返すようにして下さい。


Encode()

                                                         
  

status_t Encode(void *inBuffer, int64 frameCount,
      media_encode_info *info)

 inBufferの入力バッファから得られたメディアデータのチャンクをエンコードします。inBufferは、データのframeCount個のフレームを持っています。

 media_encode_info構造体であるinfoは、入力時にencoding parameterを特定するために使用されます。

 データがエンコードされた後、ファイルにデータを書込むために、encoderは派生クラスのWriteChunk()を呼び出します。

RETURN CODES


GetEncodeParameters() , SetEncodeParameters()

                                                         
  

status_t GetEncodeParameters(encode_parameters *inParameters) const

status_t SetEncodeParameters(encode_parameters *outParameters)

 GetEncodeParameters()は、inParametersに対してencoder add-onがどうやって設定されるかを記述するencode_parametersを返します。

 SetEncodeParameters()によって、add-onにencode_parametersを指定することができます。

RETURN CODES


InitCheck()

                                                         
  

status_t InitCheck(void) const

 コンストラクトが問題なく行われたかどうかを示すstatus_tの値が返されます。コンストラクトした後、BMediaEncoderの他の関数が呼び出される前に、この関数を呼び出さなければなりません。

RETURN CODES


SetFormat()

                                                         
  

status_t SetInputFormat(media_format *inputFormat,
      media_format *outputFormat,
      media_file_format *mfi = NULL)

 SetFormat()は、エンコードされたデータが書込まれるファイルを記述するmedia_file_formatだけでなく、encoderによって使用される入力及び出力フォーマットを設定します。

RETURN CODES


SetEncodeParameters() see GetEncodeParameters()


SetTo()

                                                         
  

status_t SetTo(const media_format *outputFormat)

status_t SetTo(const media_codec_info *mci)

 SetTo()は、BMediaEncoderオブジェクトによってエンコードされるメディアデータのフォーマットを設定します。これによってBMediaEncoderは、使用するのに適切なcodecを配置することができます。

 一つ目の形式では、media_format構造体であるoutputFormatを引数に取ります。outputFormatはencoderが出力するメディアデータのタイプを示します。

 SetTo()の二つ目の形式では、media_codec_info構造体であるmciを引数として取ります。mciは、どのcodecが使用されるかを決定します。

RETURN CODES


WriteChunk()

protected:

                                                         
  

status_t WriteChunk(const void *chunkData, size_t chunkLength,
      media_encode_info *info) = 0

 派生クラスでは、目的のファイルまたはバッファに、chunkDataポインタで指定されるエンコードされたデータのチャンクを書込むよう、この関数を実装して下さい。chunkLengthはバッファの大きさを示し、infoは参照する必要のあるエンコード処理に関する情報を提供します。

 もしデータが問題なく書込まれたら、B_OKを返して下さい。そうでなければ、適切なエラーコードを返して下さい。


The Media Kit Table of Contents     The Media Kit Index


The Be Book,
...in lovely HTML...
for BeOS Release 5.

Copyright © 2000 Be, Inc. All rights reserved..