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

_MFT_OUTPUT_DATA_BUFFER_FLAGS

列挙型
基底型i4

メンバー 4

名前10進16進説明
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE167772160x1000000MFT は、これ以上入力を受け取らなくても、このストリームから出力を生成できます。次の入力データのバッチを処理するには、ProcessOutput を再度呼び出してください。
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE2560x100この出力ストリームの形式が変更されたか、このストリームに新しい推奨形式があります。このフラグが設定されると、MFT はそのストリームのメディア タイプをクリアします。ProcessOutput メソッドは MF_E_TRANSFORM_STREAM_CHANGE を返し、どのストリームに対しても出力を生成しません。クライアントが新しいメディア タイプを設定するまで、それ以降の IMFTransform::ProcessInput または ProcessOutput の呼び出しは失敗します。
MFT_OUTPUT_DATA_BUFFER_STREAM_END5120x200

MFT はこの出力ストリームを削除しました。この出力ストリームには MFT_OUTPUT_STREAM_REMOVABLE フラグが設定されていなければなりません (IMFTransform::GetOutputStreamInfo を参照してください)。

MFT が出力ストリームを削除する場合、MFT は最後の出力サンプルを生成した後の次の ProcessOutput の呼び出しでこのステータス コードを返します。MFT がこのステータス コードを返すとき、MFT は MFT_OUTPUT_DATA_BUFFER 構造体の pSample メンバーに格納されたサンプルを変更せず、pSampleNULL の場合に新しいサンプルを割り当てることもありません。

このステータス コードが返された後、この出力ストリームのストリーム識別子は無効になります。クライアントは、ProcessOutput を呼び出す際に、そのストリームに対する MFT_OUTPUT_DATA_BUFFER 構造体を指定しないようにしてください。

ProcessOutput メソッドは、この戻り値を必要とする変更が他のストリームで発生していない限り、ストリームが終了しても MF_E_TRANSFORM_STREAM_CHANGE を返しません。

MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE7680x300

このストリームには準備できているサンプルがありません。このフラグは、MFT が異なるタイミングでデータを生成する複数の出力ストリームを持つ場合に設定されることがあります。MFT は、データを生成する準備ができていない各ストリームに対してこのフラグを設定します。MFT は MFT_OUTPUT_DATA_BUFFER 構造体の pSample メンバーに格納された出力サンプルを変更せず、pSampleNULL の場合に新しいサンプルを割り当てることもありません。

出力を生成する準備ができているストリームが 1 つもない場合、MFT はこのフラグを設定しません。代わりに、ProcessOutput メソッドが MF_E_TRANSFORM_NEED_MORE_INPUT を返します。

公式ドキュメント

IMFTransform::ProcessOutput メソッドで使用するフラグを定義します。

解説(Remarks)

この列挙型の値はビット フラグではないため、ビット単位の OR で組み合わせないでください。また、呼び出し元はこれらのフラグを、ビット単位の AND ではなく等値演算子で判定する必要があります。

// 正しい例。
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
    ...
}

// 誤った例。
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
    ...
}
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_DATA_BUFFER_FLAGS : int {
    MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216,
    MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256,
    MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512,
    MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768
} _MFT_OUTPUT_DATA_BUFFER_FLAGS;
public enum _MFT_OUTPUT_DATA_BUFFER_FLAGS : int
{
    MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216,
    MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256,
    MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512,
    MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768,
}
Public Enum _MFT_OUTPUT_DATA_BUFFER_FLAGS As Integer
    MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216
    MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256
    MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512
    MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768
End Enum
import enum

class _MFT_OUTPUT_DATA_BUFFER_FLAGS(enum.IntEnum):
    MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216
    MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256
    MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512
    MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768
// _MFT_OUTPUT_DATA_BUFFER_FLAGS
pub const MFT_OUTPUT_DATA_BUFFER_INCOMPLETE: i32 = 16777216;
pub const MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE: i32 = 256;
pub const MFT_OUTPUT_DATA_BUFFER_STREAM_END: i32 = 512;
pub const MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE: i32 = 768;
// _MFT_OUTPUT_DATA_BUFFER_FLAGS
const (
	MFT_OUTPUT_DATA_BUFFER_INCOMPLETE int32 = 16777216
	MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE int32 = 256
	MFT_OUTPUT_DATA_BUFFER_STREAM_END int32 = 512
	MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE int32 = 768
)
const
  MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216;
  MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256;
  MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512;
  MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768;
// _MFT_OUTPUT_DATA_BUFFER_FLAGS
pub const MFT_OUTPUT_DATA_BUFFER_INCOMPLETE: i32 = 16777216;
pub const MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE: i32 = 256;
pub const MFT_OUTPUT_DATA_BUFFER_STREAM_END: i32 = 512;
pub const MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE: i32 = 768;
const
  MFT_OUTPUT_DATA_BUFFER_INCOMPLETE* = 16777216
  MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE* = 256
  MFT_OUTPUT_DATA_BUFFER_STREAM_END* = 512
  MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE* = 768
enum _MFT_OUTPUT_DATA_BUFFER_FLAGS : int {
    MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 16777216,
    MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 256,
    MFT_OUTPUT_DATA_BUFFER_STREAM_END = 512,
    MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 768,
}
#define global MFT_OUTPUT_DATA_BUFFER_INCOMPLETE    0x1000000
#define global MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE 0x100
#define global MFT_OUTPUT_DATA_BUFFER_STREAM_END    0x200
#define global MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE     0x300