The Media Kit Table of Contents | The Media Kit Index |
Derived from: none
Declared in: be/media/MediaDecoder.h
Library: libmedia.so
BMediaDecoderクラスは、decoderクラスが派生する基底クラスです。これは適切なdecoder add-onを配置し、そのインターフェイス処理を行う作業の全てを扱います。あなたがしなければならないのは、処理されるエンコードされたデータの次のチャンクを取りだすために、GetNextChunk()関数を実装することだけです。
BMediaBufferDecoderクラスが提供されています。このクラスは、メモリバッファからデータを返すようGetNextChunk()の実装された派生クラスです。
ファイルに由来しないデータのストリームをデコードすることを望むアプリケーションは、(BMediaBufferDecoderといった)BMediaDecoderのサブクラスを使用して下さい。
|
このコンストラクタは、BMediaDecoderをセットアップします。もし引数を取らないコンストラクタを使用する場合は、Decode()を呼び出す前に、エンコードされるフォーマットを確立するためにSetTo()を呼び出さなければなりません。
2つ目のコンストラクタは、media_format構造体であるinFormatを引数に取ります。これは、decoderに入力されるメディアデータのタイプを示します。infoが指定されている場合、これはnodeに関する文字情報によって満たされます。あなたはバッファをinfoSizeバイトの長さに指定しなければなりません。
3つ目のコンストラクタは、media_codec_info構造体であるmciを引数に取ります。これは、どのcodecが使用されるかを決定します。
|
|
BMediaDecoderによって使用されるdecoder add-onを解放します。
|
メディアデータをデコードし、outBufferによって指定される出力バッファに送ります。関数が返る際には、データのフレームがいくつデコードされたかを示すようにoutFrameCountが設定され、outMHはデコードされたバッファに関するヘッダとなります。
media_decode_info構造体であるinfoは、入力時にdecoding parameterを特定するために使用されます。
デコードされたデータ量は、SetTo()またはSetInputFormat()によって指定されたフォーマットの一部にあります。オーディオについては、buffer_sizeが表します。ビデオについては、height*row_bytesのひとつのフレームです。デコードされるデータは、decoder add-onが派生クラスのGetNextChunk()関数を呼び出して得るsourceから取りだされます。
RETURN CODES
|
media_codec_info構造体であるoutInfoを、BMediaDecoderによって使用されているdecoderに関する情報で満たします。
RETURN CODES
protected:
|
派生クラスでは、sourceからメディアデータを取り出すために、この関数を実装しなければなりません。メディアデータの次のチャンクへのポインタをchunkDataに入れ、バッファの大きさをchunkLenに渡して下さい。media_header構造体であるmhは、チャンクを取り出している間に使用することのできる情報を提供します。
このフックは、sourceからデータを取り出すために、decoder add-onに呼び出されます。
もしチャンクが安全に取り出せたら、B_OKを返し、そうでなければ適切なエラーコードを返して下さい。
|
コンストラクトが問題なく行われたかどうかを示すstatus_tの値を返します。コンストラクトの後、他のBMediaDecoderの関数を呼び出す前に、この関数を呼び出して下さい。
RETURN CODES
|
SetInputFormat()は、inFormatに入力データのフォーマットを設定します。関数が返る際には、(もしNULLが指定されていなければ)decoderが提供したいテキストによる情報がなんであるかを内包するように、infoがdecoderによって満たされます。infoSizeは、infoポインタによって指定されるバッファの大きさを示さなければなりません。
SetTo()と違い、SetInputFormat()関数はcodecを選択しないため、現在選択されているcodecが続けて使用されます。他のdecoderがそのcodecを使用するように要求しない場合は、フォーマット設定を洗練させるためにだけ、SetInputFormat()を使用して下さい。
SetOutputFormat()は、decoderが出力するフォーマットを設定します。この関数が返される際には、outputFormatが出力される実際のフォーマットに一致するように変更されます。これはワイルドカードを指定した場合、異なることがあります。
RETURN CODES
|
SetTo()は、BMediaDecoderオブジェクトによってデコードされるメディアデータのフォーマットを設定します。これによってBMediaDecoderは適切なcodecを使用するために配置することができます。
最初の形式は、media_format構造体であるinFormatを引数に取ります。inFormatは、decoderに入力されるメディアデータのタイプを示します。infoが指定されている場合、それはnodeに関するテキスト情報によって満たされます。バッファをinfoSizeバイトの長さに指定しなければなりません。
SetTo()の二つ目の形式は、media_codec_info構造体であるmciを引数に取ります。mciは、どのcodecが使用されるかを決定します。
RETURN CODES
The Media Kit Table of Contents | The Media Kit Index |
Copyright © 2000 Be, Inc. All rights reserved..