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

MFVideoMixPrefs

列挙型
基底型i4

メンバー 6

名前10進16進説明
MFVideoMixPrefs_ForceHalfInterlace10x1インターレースフレームごとに、(時間順で) 2 番目のフィールドをスキップするよう EVR に強制します。
MFVideoMixPrefs_AllowDropToHalfInterlace20x2EVR の処理が遅れている場合に、インターレースフレームごとに (時間順で) 2 番目のフィールドをスキップすることを許可します。
MFVideoMixPrefs_AllowDropToBob40x4EVR の処理が遅れている場合に、ドライバーがより高品質なインターレース解除モードをサポートしていても、bob インターレース解除の使用を許可します。
MFVideoMixPrefs_ForceBob80x8ドライバーがより高品質なモードをサポートしていても、bob インターレース解除を使用するよう EVR に強制します。
MFVideoMixPrefs_EnableRotation160x10
MFVideoMixPrefs_Mask310x1F有効なフラグ値のビットマスクです。この定数自体は有効なフラグではありません。

公式ドキュメント

[このページで説明するコンポーネント Enhanced Video Renderer は、レガシー機能です。MediaPlayer および IMFMediaEngine の各コンポーネントを通じて公開される Simple Video Renderer (SVR) に置き換えられました。ビデオコンテンツを再生するには、これらのコンポーネントのいずれかにデータを送り、新しいビデオレンダラーをインスタンス化させてください。これらのコンポーネントは Windows 10 および Windows 11 向けに最適化されています。Microsoft は、可能な場合、Windows でビデオメディアを再生する新しいコードでは EVR ではなく MediaPlayer またはより低レベルの IMFMediaEngine API を使用することを強く推奨します。レガシー API を使用している既存のコードについても、可能であれば新しい API を使用するように書き直すことを推奨します。]

拡張ビデオレンダラー (EVR) がインターレース解除 (デインターレース) をどのように実行するかを構成するために使用されるフラグを格納します。

解説(Remarks)

これらのフラグを設定するには、IMFVideoMixerControl2::SetMixingPrefs メソッドを呼び出します。

これらのフラグは、ビデオ品質とレンダリング速度の間のトレードオフを制御します。"MFVideoMixPrefs_Allow..." という名前の定数は、品質マネージャーが品質の低下を要求した場合にのみ、より低品質の設定を有効にします。"MFVideoMixPrefs_Force..." という名前の定数は、品質マネージャーの要求に関係なく、より低品質の設定を使用するよう EVR に強制します。(品質マネージャーの詳細については、IMFQualityAdvise を参照してください。)

現在、次の表に示す 2 つの低品質モードがサポートされています。いずれもフレーム全体を破棄するよりは望ましい方法です。

モード 説明
ハーフインターフェイス EVR のビデオミキサーが、各インターレースフレームの (時間順で) 2 番目のフィールドをスキップします。ビデオミキサーは 1 番目のフィールドのインターレース解除を引き続き行い、この処理では通常 2 番目のフィールドのデータを補間します。全体のフレームレートは影響を受けません。
bob インターレース解除 ドライバーがより高品質なインターレース解除アルゴリズムをサポートしていても、ビデオミキサーが bob インターレース解除を使用します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum MFVideoMixPrefs : int {
    MFVideoMixPrefs_ForceHalfInterlace = 1,
    MFVideoMixPrefs_AllowDropToHalfInterlace = 2,
    MFVideoMixPrefs_AllowDropToBob = 4,
    MFVideoMixPrefs_ForceBob = 8,
    MFVideoMixPrefs_EnableRotation = 16,
    MFVideoMixPrefs_Mask = 31
} MFVideoMixPrefs;
public enum MFVideoMixPrefs : int
{
    MFVideoMixPrefs_ForceHalfInterlace = 1,
    MFVideoMixPrefs_AllowDropToHalfInterlace = 2,
    MFVideoMixPrefs_AllowDropToBob = 4,
    MFVideoMixPrefs_ForceBob = 8,
    MFVideoMixPrefs_EnableRotation = 16,
    MFVideoMixPrefs_Mask = 31,
}
Public Enum MFVideoMixPrefs As Integer
    MFVideoMixPrefs_ForceHalfInterlace = 1
    MFVideoMixPrefs_AllowDropToHalfInterlace = 2
    MFVideoMixPrefs_AllowDropToBob = 4
    MFVideoMixPrefs_ForceBob = 8
    MFVideoMixPrefs_EnableRotation = 16
    MFVideoMixPrefs_Mask = 31
End Enum
import enum

class MFVideoMixPrefs(enum.IntEnum):
    MFVideoMixPrefs_ForceHalfInterlace = 1
    MFVideoMixPrefs_AllowDropToHalfInterlace = 2
    MFVideoMixPrefs_AllowDropToBob = 4
    MFVideoMixPrefs_ForceBob = 8
    MFVideoMixPrefs_EnableRotation = 16
    MFVideoMixPrefs_Mask = 31
// MFVideoMixPrefs
pub const MFVideoMixPrefs_ForceHalfInterlace: i32 = 1;
pub const MFVideoMixPrefs_AllowDropToHalfInterlace: i32 = 2;
pub const MFVideoMixPrefs_AllowDropToBob: i32 = 4;
pub const MFVideoMixPrefs_ForceBob: i32 = 8;
pub const MFVideoMixPrefs_EnableRotation: i32 = 16;
pub const MFVideoMixPrefs_Mask: i32 = 31;
// MFVideoMixPrefs
const (
	MFVideoMixPrefs_ForceHalfInterlace int32 = 1
	MFVideoMixPrefs_AllowDropToHalfInterlace int32 = 2
	MFVideoMixPrefs_AllowDropToBob int32 = 4
	MFVideoMixPrefs_ForceBob int32 = 8
	MFVideoMixPrefs_EnableRotation int32 = 16
	MFVideoMixPrefs_Mask int32 = 31
)
const
  MFVideoMixPrefs_ForceHalfInterlace = 1;
  MFVideoMixPrefs_AllowDropToHalfInterlace = 2;
  MFVideoMixPrefs_AllowDropToBob = 4;
  MFVideoMixPrefs_ForceBob = 8;
  MFVideoMixPrefs_EnableRotation = 16;
  MFVideoMixPrefs_Mask = 31;
// MFVideoMixPrefs
pub const MFVideoMixPrefs_ForceHalfInterlace: i32 = 1;
pub const MFVideoMixPrefs_AllowDropToHalfInterlace: i32 = 2;
pub const MFVideoMixPrefs_AllowDropToBob: i32 = 4;
pub const MFVideoMixPrefs_ForceBob: i32 = 8;
pub const MFVideoMixPrefs_EnableRotation: i32 = 16;
pub const MFVideoMixPrefs_Mask: i32 = 31;
const
  MFVideoMixPrefs_ForceHalfInterlace* = 1
  MFVideoMixPrefs_AllowDropToHalfInterlace* = 2
  MFVideoMixPrefs_AllowDropToBob* = 4
  MFVideoMixPrefs_ForceBob* = 8
  MFVideoMixPrefs_EnableRotation* = 16
  MFVideoMixPrefs_Mask* = 31
enum MFVideoMixPrefs : int {
    MFVideoMixPrefs_ForceHalfInterlace = 1,
    MFVideoMixPrefs_AllowDropToHalfInterlace = 2,
    MFVideoMixPrefs_AllowDropToBob = 4,
    MFVideoMixPrefs_ForceBob = 8,
    MFVideoMixPrefs_EnableRotation = 16,
    MFVideoMixPrefs_Mask = 31,
}
#define global MFVideoMixPrefs_ForceHalfInterlace       0x1
#define global MFVideoMixPrefs_AllowDropToHalfInterlace 0x2
#define global MFVideoMixPrefs_AllowDropToBob           0x4
#define global MFVideoMixPrefs_ForceBob                 0x8
#define global MFVideoMixPrefs_EnableRotation           0x10
#define global MFVideoMixPrefs_Mask                     0x1F