Table of Contents

Class QSVVP9EncoderPage

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

Configuration page for the Intel Quick Sync Video (QSV) VP9 hardware encoder.

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

Inheritance

Implements

Inherited Members

Remarks

The QSV VP9 encoder provides hardware-accelerated VP9 video encoding using Intel's integrated graphics. VP9 is an open-source, royalty-free video codec developed by Google that offers comparable compression efficiency to HEVC while avoiding licensing fees. It's widely used for web video and streaming platforms.

Key features of the QSV VP9 encoder: - Hardware acceleration on select Intel processors - Royalty-free codec suitable for web deployment - Excellent compression efficiency similar to HEVC - Multiple rate control modes (CQP, CBR, VBR, ICQ) - Low latency mode for real-time applications - Widely supported by web browsers and streaming platforms

Common use cases: - YouTube and web video streaming - WebRTC video communication - Progressive download video delivery - Applications requiring royalty-free codecs - Cross-platform video distribution

Hardware requirements: - Intel 11th Gen (Tiger Lake) or newer processors with VP9 encoding support - Intel Iris Xe graphics or newer - Intel Media SDK or oneVPL runtime with VP9 support - Updated graphics drivers

Note: This encoder page is partially implemented as QSV VP9 support is relatively new and may have limited availability depending on hardware and driver versions.

Constructors

QSVVP9EncoderPage()

Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.QSVVP9EncoderPage class. Sets up the UI components and populates rate control options.

public QSVVP9EncoderPage()

Properties

Bitrate

Gets or sets the target bitrate for encoding in kilobits per second (Kbps).

public int Bitrate { get; set; }

Property Value

int

GOPSize

Gets or sets the Group of Pictures (GOP) size.

public string GOPSize { get; set; }

Property Value

string

ICQ

Gets or sets the Intelligent Constant Quality (ICQ) level.

public double ICQ { get; set; }

Property Value

double

LowLatency

Gets or sets a value indicating whether low latency mode is enabled.

public bool LowLatency { get; set; }

Property Value

bool

MaxBitrate

Gets or sets the maximum bitrate for variable bitrate modes.

public string MaxBitrate { get; set; }

Property Value

string

QPI

Gets or sets the quantization parameter for I-frames (keyframes).

public double QPI { get; set; }

Property Value

double

QPP

Gets or sets the quantization parameter for P-frames (predicted frames).

public double QPP { get; set; }

Property Value

double

RateControl

Gets or sets the rate control mode for encoding.

public QSVVP9EncRateControl RateControl { get; set; }

Property Value

QSVVP9EncRateControl

RateControlModes

Gets or sets the rate control mode list.

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

Property Value

ObservableCollection<string>

RateControlStr

Gets or sets the rate control (as string).

public string RateControlStr { get; set; }

Property Value

string

Methods

Fill(ref QSVVP9EncoderSettings)

Fills the provided settings object with values from the UI controls.

public void Fill(ref QSVVP9EncoderSettings settings)

Parameters

settings QSVVP9EncoderSettings

The settings object to populate. Note: Implementation is currently incomplete.

GetPageType()

Gets the encoder settings type associated with this configuration page.

public Type GetPageType()

Returns

Type

The VisioForge.Core.Types.X.VideoEncoders.QSVVP9EncoderSettings type.

Init(QSVVP9EncoderSettings)

Initializes the encoder page with existing settings.

public void Init(QSVVP9EncoderSettings settings)

Parameters

settings QSVVP9EncoderSettings

The QSV VP9 encoder settings to load. Note: Implementation is currently incomplete.

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