_MFT_OUTPUT_STREAM_INFO_FLAGS
列挙型メンバー 9
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| MFT_OUTPUT_STREAM_WHOLE_SAMPLES | 1 | 0x1 | MFT からの出力データの各メディアサンプル (IMFSample インターフェイス) には、完全で分断されていないデータ単位が格納されます。データ単位の定義はメディアタイプによって異なります。非圧縮ビデオではビデオフレーム、圧縮データでは圧縮パケット、非圧縮オーディオでは 1 つのオーディオフレームです。 非圧縮オーディオ形式では、このフラグは常に暗黙的に設定されているものとして扱われます (フラグを設定しても問題ありませんが、必須ではありません)。非圧縮オーディオフレームが複数のメディアサンプルにまたがることはありません。 |
| MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER | 2 | 0x2 | 各出力サンプルには、MFT_OUTPUT_STREAM_WHOLE_SAMPLES フラグで定義されているデータ単位がちょうど 1 つだけ格納されます。 このフラグが設定されている場合は、MFT_OUTPUT_STREAM_WHOLE_SAMPLES フラグも設定されていなければなりません。 非圧縮オーディオを出力する MFT は、このフラグを設定すべきではありません。効率のため、一度に複数のオーディオフレームを出力すべきです。 |
| MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE | 4 | 0x4 | すべての出力サンプルが同じサイズです。 |
| MFT_OUTPUT_STREAM_DISCARDABLE | 8 | 0x8 | クライアントから要求された場合、MFT はこの出力ストリームの出力データを破棄できます。出力を破棄するには、IMFTransform::ProcessOutput メソッドで MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER フラグを設定します。 |
| MFT_OUTPUT_STREAM_OPTIONAL | 16 | 0x10 | この出力ストリームは省略可能です。クライアントは、メディアタイプを設定しないか、NULL のメディアタイプを設定することで、このストリームを選択解除できます。省略可能なストリームが選択解除されると、そのストリームは出力データを生成しません。 |
| MFT_OUTPUT_STREAM_PROVIDES_SAMPLES | 256 | 0x100 | MFT は、内部で割り当てるか入力サンプルを直接操作することにより、このストリームの出力サンプルを提供します。このストリームでは、MFT はクライアントから提供された出力サンプルを使用できません。 このフラグが設定されていない場合、MFT は MFT_OUTPUT_STREAM_INFO 構造体の cbSize に 0 以外の値を設定し、クライアントが正しいバッファーサイズを割り当てられるようにしなければなりません。詳細については、IMFTransform::GetOutputStreamInfo を参照してください。このフラグを MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES フラグと組み合わせることはできません。 |
| MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES | 512 | 0x200 | MFT は、このストリームの出力サンプルを提供することも、クライアントが割り当てたサンプルを使用することもできます。このフラグを MFT_OUTPUT_STREAM_PROVIDES_SAMPLES フラグと組み合わせることはできません。 MFT がこのフラグと MFT_OUTPUT_STREAM_PROVIDES_SAMPLES フラグのどちらも設定しない場合、クライアントがこの出力ストリームのサンプルを割り当てなければなりません。MFT は独自のサンプルを提供しません。 |
| MFT_OUTPUT_STREAM_LAZY_READ | 1024 | 0x400 | MFT は、このストリームの出力を処理することをクライアントに要求しません。クライアントがこのストリームから出力を取得せずに入力データを送り続けた場合、MFT は単に以前の入力を破棄します。 |
| MFT_OUTPUT_STREAM_REMOVABLE | 2048 | 0x800 | MFT はストリーミング中にこの出力ストリームを削除する場合があります。このフラグは通常、デマルチプレクサーに適用されます。デマルチプレクサーでは、入力データにストリーミング中に開始および停止し得る複数のストリームが含まれます。詳細については、IMFTransform::ProcessOutput を参照してください。 |
公式ドキュメント
Media Foundation トランスフォーム (MFT) の出力ストリームを記述します。
解説(Remarks)
クライアントが MFT にメディアタイプを設定する前に内容が正確であることが保証されるのは、MFT_OUTPUT_STREAM_OPTIONAL フラグだけです。それ以外のフラグについては、クライアントはまず省略可能でないすべてのストリームにメディアタイプを設定する必要があります。
MFT_OUTPUT_STREAM_DISCARDABLE フラグと MFT_OUTPUT_STREAM_LAZY_READ フラグは、MFT が出力データを破棄する方法について、それぞれ異なる動作を定義します。
- MFT_OUTPUT_STREAM_DISCARDABLE: MFT が出力データを破棄するのは、クライアントが MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER フラグを指定して ProcessOutput を呼び出した場合だけです。クライアントが ProcessInput を呼び出したときに、MFT がデータを破棄することはありません。
- MFT_OUTPUT_STREAM_LAZY_READ: クライアントがこのストリームから出力を回収せずに ProcessInput を呼び出し続けると、MFT は最終的に出力を破棄します。すべての出力ストリームに MFT_OUTPUT_STREAM_LAZY_READ フラグが設定されている場合、MFT がそれ以上の入力データを拒否することはありません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum _MFT_OUTPUT_STREAM_INFO_FLAGS : int {
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1,
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2,
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4,
MFT_OUTPUT_STREAM_DISCARDABLE = 8,
MFT_OUTPUT_STREAM_OPTIONAL = 16,
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256,
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512,
MFT_OUTPUT_STREAM_LAZY_READ = 1024,
MFT_OUTPUT_STREAM_REMOVABLE = 2048
} _MFT_OUTPUT_STREAM_INFO_FLAGS;public enum _MFT_OUTPUT_STREAM_INFO_FLAGS : int
{
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1,
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2,
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4,
MFT_OUTPUT_STREAM_DISCARDABLE = 8,
MFT_OUTPUT_STREAM_OPTIONAL = 16,
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256,
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512,
MFT_OUTPUT_STREAM_LAZY_READ = 1024,
MFT_OUTPUT_STREAM_REMOVABLE = 2048,
}Public Enum _MFT_OUTPUT_STREAM_INFO_FLAGS As Integer
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4
MFT_OUTPUT_STREAM_DISCARDABLE = 8
MFT_OUTPUT_STREAM_OPTIONAL = 16
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512
MFT_OUTPUT_STREAM_LAZY_READ = 1024
MFT_OUTPUT_STREAM_REMOVABLE = 2048
End Enumimport enum
class _MFT_OUTPUT_STREAM_INFO_FLAGS(enum.IntEnum):
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4
MFT_OUTPUT_STREAM_DISCARDABLE = 8
MFT_OUTPUT_STREAM_OPTIONAL = 16
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512
MFT_OUTPUT_STREAM_LAZY_READ = 1024
MFT_OUTPUT_STREAM_REMOVABLE = 2048// _MFT_OUTPUT_STREAM_INFO_FLAGS
pub const MFT_OUTPUT_STREAM_WHOLE_SAMPLES: i32 = 1;
pub const MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER: i32 = 2;
pub const MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE: i32 = 4;
pub const MFT_OUTPUT_STREAM_DISCARDABLE: i32 = 8;
pub const MFT_OUTPUT_STREAM_OPTIONAL: i32 = 16;
pub const MFT_OUTPUT_STREAM_PROVIDES_SAMPLES: i32 = 256;
pub const MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES: i32 = 512;
pub const MFT_OUTPUT_STREAM_LAZY_READ: i32 = 1024;
pub const MFT_OUTPUT_STREAM_REMOVABLE: i32 = 2048;// _MFT_OUTPUT_STREAM_INFO_FLAGS
const (
MFT_OUTPUT_STREAM_WHOLE_SAMPLES int32 = 1
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER int32 = 2
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE int32 = 4
MFT_OUTPUT_STREAM_DISCARDABLE int32 = 8
MFT_OUTPUT_STREAM_OPTIONAL int32 = 16
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES int32 = 256
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES int32 = 512
MFT_OUTPUT_STREAM_LAZY_READ int32 = 1024
MFT_OUTPUT_STREAM_REMOVABLE int32 = 2048
)const
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1;
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2;
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4;
MFT_OUTPUT_STREAM_DISCARDABLE = 8;
MFT_OUTPUT_STREAM_OPTIONAL = 16;
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256;
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512;
MFT_OUTPUT_STREAM_LAZY_READ = 1024;
MFT_OUTPUT_STREAM_REMOVABLE = 2048;// _MFT_OUTPUT_STREAM_INFO_FLAGS
pub const MFT_OUTPUT_STREAM_WHOLE_SAMPLES: i32 = 1;
pub const MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER: i32 = 2;
pub const MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE: i32 = 4;
pub const MFT_OUTPUT_STREAM_DISCARDABLE: i32 = 8;
pub const MFT_OUTPUT_STREAM_OPTIONAL: i32 = 16;
pub const MFT_OUTPUT_STREAM_PROVIDES_SAMPLES: i32 = 256;
pub const MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES: i32 = 512;
pub const MFT_OUTPUT_STREAM_LAZY_READ: i32 = 1024;
pub const MFT_OUTPUT_STREAM_REMOVABLE: i32 = 2048;const
MFT_OUTPUT_STREAM_WHOLE_SAMPLES* = 1
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER* = 2
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE* = 4
MFT_OUTPUT_STREAM_DISCARDABLE* = 8
MFT_OUTPUT_STREAM_OPTIONAL* = 16
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES* = 256
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES* = 512
MFT_OUTPUT_STREAM_LAZY_READ* = 1024
MFT_OUTPUT_STREAM_REMOVABLE* = 2048enum _MFT_OUTPUT_STREAM_INFO_FLAGS : int {
MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 1,
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 2,
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 4,
MFT_OUTPUT_STREAM_DISCARDABLE = 8,
MFT_OUTPUT_STREAM_OPTIONAL = 16,
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 256,
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 512,
MFT_OUTPUT_STREAM_LAZY_READ = 1024,
MFT_OUTPUT_STREAM_REMOVABLE = 2048,
}#define global MFT_OUTPUT_STREAM_WHOLE_SAMPLES 0x1
#define global MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER 0x2
#define global MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE 0x4
#define global MFT_OUTPUT_STREAM_DISCARDABLE 0x8
#define global MFT_OUTPUT_STREAM_OPTIONAL 0x10
#define global MFT_OUTPUT_STREAM_PROVIDES_SAMPLES 0x100
#define global MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES 0x200
#define global MFT_OUTPUT_STREAM_LAZY_READ 0x400
#define global MFT_OUTPUT_STREAM_REMOVABLE 0x800