Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › _MFT_OUTPUT_STREAM_INFO_FLAGS

_MFT_OUTPUT_STREAM_INFO_FLAGS

列挙型
基底型i4

メンバー 9

名前10進16進説明
MFT_OUTPUT_STREAM_WHOLE_SAMPLES10x1

MFT からの出力データの各メディアサンプル (IMFSample インターフェイス) には、完全で分断されていないデータ単位が格納されます。データ単位の定義はメディアタイプによって異なります。非圧縮ビデオではビデオフレーム、圧縮データでは圧縮パケット、非圧縮オーディオでは 1 つのオーディオフレームです。

非圧縮オーディオ形式では、このフラグは常に暗黙的に設定されているものとして扱われます (フラグを設定しても問題ありませんが、必須ではありません)。非圧縮オーディオフレームが複数のメディアサンプルにまたがることはありません。

MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER20x2

各出力サンプルには、MFT_OUTPUT_STREAM_WHOLE_SAMPLES フラグで定義されているデータ単位がちょうど 1 つだけ格納されます。

このフラグが設定されている場合は、MFT_OUTPUT_STREAM_WHOLE_SAMPLES フラグも設定されていなければなりません。

非圧縮オーディオを出力する MFT は、このフラグを設定すべきではありません。効率のため、一度に複数のオーディオフレームを出力すべきです。

MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE40x4すべての出力サンプルが同じサイズです。
MFT_OUTPUT_STREAM_DISCARDABLE80x8クライアントから要求された場合、MFT はこの出力ストリームの出力データを破棄できます。出力を破棄するには、IMFTransform::ProcessOutput メソッドで MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER フラグを設定します。
MFT_OUTPUT_STREAM_OPTIONAL160x10この出力ストリームは省略可能です。クライアントは、メディアタイプを設定しないか、NULL のメディアタイプを設定することで、このストリームを選択解除できます。省略可能なストリームが選択解除されると、そのストリームは出力データを生成しません。
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES2560x100

MFT は、内部で割り当てるか入力サンプルを直接操作することにより、このストリームの出力サンプルを提供します。このストリームでは、MFT はクライアントから提供された出力サンプルを使用できません。

このフラグが設定されていない場合、MFT は MFT_OUTPUT_STREAM_INFO 構造体の cbSize に 0 以外の値を設定し、クライアントが正しいバッファーサイズを割り当てられるようにしなければなりません。詳細については、IMFTransform::GetOutputStreamInfo を参照してください。このフラグを MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES フラグと組み合わせることはできません。

MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES5120x200

MFT は、このストリームの出力サンプルを提供することも、クライアントが割り当てたサンプルを使用することもできます。このフラグを MFT_OUTPUT_STREAM_PROVIDES_SAMPLES フラグと組み合わせることはできません。

MFT がこのフラグと MFT_OUTPUT_STREAM_PROVIDES_SAMPLES フラグのどちらも設定しない場合、クライアントがこの出力ストリームのサンプルを割り当てなければなりません。MFT は独自のサンプルを提供しません。

MFT_OUTPUT_STREAM_LAZY_READ10240x400MFT は、このストリームの出力を処理することをクライアントに要求しません。クライアントがこのストリームから出力を取得せずに入力データを送り続けた場合、MFT は単に以前の入力を破棄します。
MFT_OUTPUT_STREAM_REMOVABLE20480x800MFT はストリーミング中にこの出力ストリームを削除する場合があります。このフラグは通常、デマルチプレクサーに適用されます。デマルチプレクサーでは、入力データにストリーミング中に開始および停止し得る複数のストリームが含まれます。詳細については、IMFTransform::ProcessOutput を参照してください。

公式ドキュメント

Media Foundation トランスフォーム (MFT) の出力ストリームを記述します。

解説(Remarks)

クライアントが MFT にメディアタイプを設定する前に内容が正確であることが保証されるのは、MFT_OUTPUT_STREAM_OPTIONAL フラグだけです。それ以外のフラグについては、クライアントはまず省略可能でないすべてのストリームにメディアタイプを設定する必要があります。

MFT_OUTPUT_STREAM_DISCARDABLE フラグと MFT_OUTPUT_STREAM_LAZY_READ フラグは、MFT が出力データを破棄する方法について、それぞれ異なる動作を定義します。

これらのフラグがどちらも設定されていない場合、MFT が出力データを破棄することはありません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 2048
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,
}
#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