Table of Contents

Class MFHEVCEncoderPage

Namespace
VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages
Assembly
VisioForge.Core.dll

Represents a WPF page for configuring Media Foundation HEVC (H.265) encoder settings. This page provides UI controls for setting various HEVC encoding parameters using the Windows Media Foundation framework.

public class MFHEVCEncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnector

Inheritance

Implements

Inherited Members

Constructors

MFHEVCEncoderPage()

Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.MFHEVCEncoderPage class. Sets up the data context and populates the UI control collections with available options.

public MFHEVCEncoderPage()

Properties

BFrames

Gets or sets the number of B-frames between reference frames. B-frames improve compression but increase latency. Set to 0 to disable B-frames.

public uint BFrames { get; set; }

Property Value

uint

Bitrate

Gets or sets the target bitrate for encoding in kilobits per second. Used when rate control mode is set to bitrate-based modes like CBR or VBR.

public uint Bitrate { get; set; }

Property Value

uint

GOPSize

Gets or sets the Group of Pictures (GOP) size. Defines the maximum distance between I-frames (keyframes). A value of -1 uses encoder default.

public int GOPSize { get; set; }

Property Value

int

LowLatency

Gets or sets a value indicating whether low latency mode is enabled. Low latency mode optimizes encoder settings for real-time applications.

public bool LowLatency { get; set; }

Property Value

bool

MaxBitrate

Gets or sets the maximum bitrate for encoding in kilobits per second. Used in variable bitrate modes to cap the maximum bitrate.

public uint MaxBitrate { get; set; }

Property Value

uint

Profile

Gets or sets the HEVC encoder profile. Profiles define the feature set and compression tools available (Main, Main10, etc.).

public MFHEVCEncoderProfile Profile { get; set; }

Property Value

MFHEVCEncoderProfile

ProfileStr

Gets or sets the encoder profile as a string representation. Used for data binding with UI controls.

public string ProfileStr { get; set; }

Property Value

string

Profiles

Gets or sets the collection of available encoder profiles for UI selection.

public ObservableCollection<string> Profiles { get; set; }

Property Value

ObservableCollection<string>

QP

Gets or sets the quantization parameter for quality-based encoding. Lower values mean higher quality and higher bitrate. Typical range is 0-51.

public double QP { get; set; }

Property Value

double

QPB

Gets or sets the quantization parameter for B-frames. Lower values mean higher quality and higher bitrate. Typical range is 0-51.

public double QPB { get; set; }

Property Value

double

QPI

Gets or sets the quantization parameter for I-frames. Lower values mean higher quality and higher bitrate. Typical range is 0-51.

public double QPI { get; set; }

Property Value

double

QPP

Gets or sets the quantization parameter for P-frames. Lower values mean higher quality and higher bitrate. Typical range is 0-51.

public double QPP { get; set; }

Property Value

double

RateControl

Gets or sets the rate control mode. Determines how the encoder manages bitrate allocation (CBR, VBR, QVBR, etc.).

public MFHEVCEncoderRCMode RateControl { get; set; }

Property Value

MFHEVCEncoderRCMode

RateControlModes

Gets or sets the collection of available rate control modes for UI selection.

public ObservableCollection<string> RateControlModes { get; set; }

Property Value

ObservableCollection<string>

RateControlStr

Gets or sets the rate control mode as a string representation. Used for data binding with UI controls.

public string RateControlStr { get; set; }

Property Value

string

Methods

Fill(ref MFHEVCEncoderSettings)

Fills the provided settings object with current UI values. Exports all encoder parameters from the UI controls to the settings object.

public void Fill(ref MFHEVCEncoderSettings settings)

Parameters

settings MFHEVCEncoderSettings

The Media Foundation HEVC encoder settings object to populate.

GetPageType()

Gets the encoder settings type associated with this page.

public Type GetPageType()

Returns

Type

The type of MFHEVCEncoderSettings.

Init(MFHEVCEncoderSettings)

Initializes the page with existing encoder settings. Loads all encoder parameters from the provided settings object into the UI controls.

public void Init(MFHEVCEncoderSettings settings)

Parameters

settings MFHEVCEncoderSettings

The Media Foundation HEVC encoder settings to load.

InitializeComponent()

InitializeComponent

public void InitializeComponent()

SetProperty<T>(ref T, T, string)

Sets the property.

protected bool SetProperty<T>(ref T field, T newValue, string propertyName = null)

Parameters

field T

The field.

newValue T

The new value.

propertyName string

Name of the property.

Returns

bool

true if successful, false otherwise.

Type Parameters

T

Type.

PropertyChanged

Property changed event.

public event PropertyChangedEventHandler PropertyChanged

Event Type

PropertyChangedEventHandler