Table of Contents

Class VP8EncoderPage

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

Configuration page for the VP8 video encoder.

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

Inheritance

Implements

Inherited Members

Remarks

VP8 is an open-source, royalty-free video codec developed by On2 Technologies and later acquired by Google. It was designed to provide high-quality video compression for web video while avoiding patent licensing fees. VP8 is the predecessor to VP9 and forms part of the WebM project.

Key features of the VP8 encoder: - Completely royalty-free and patent-unencumbered - Excellent browser support through WebM container - Good compression efficiency (better than H.263, comparable to H.264 baseline) - Multiple rate control modes (CBR, VBR, CQ) - Adjustable quantization parameters - Suitable for real-time encoding - Lower complexity than VP9 or H.264

Common use cases: - WebRTC video conferencing - HTML5 web video delivery - YouTube video streaming (legacy) - Cross-platform video applications - Embedded systems with limited resources

Rate control modes: - CQ (Constrained Quality): Maintains consistent quality - CBR: Constant bitrate for streaming - VBR: Variable bitrate for optimal quality/size

Constructors

VP8EncoderPage()

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

public VP8EncoderPage()

Properties

Bitrate

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

public int Bitrate { get; set; }

Property Value

int

KeyFrameMaxDistance

Gets or sets the maximum distance between keyframes in frames.

public int KeyFrameMaxDistance { get; set; }

Property Value

int

MaxQ

Gets or sets the maximum quantization parameter.

public double MaxQ { get; set; }

Property Value

double

MinQ

Gets or sets the minimum quantization parameter.

public double MinQ { get; set; }

Property Value

double

Q

Gets or sets the constrained quality (CQ) level.

public double Q { get; set; }

Property Value

double

RateControl

Gets or sets the rate control mode for encoding.

public VPXRateControl RateControl { get; set; }

Property Value

VPXRateControl

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 VP8EncoderSettings)

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

public void Fill(ref VP8EncoderSettings settings)

Parameters

settings VP8EncoderSettings

The settings object to populate with current UI values.

GetPageType()

Gets the encoder settings type associated with this configuration page.

public Type GetPageType()

Returns

Type

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

Init(VP8EncoderSettings)

Initializes the encoder page with existing settings.

public void Init(VP8EncoderSettings settings)

Parameters

settings VP8EncoderSettings

The VP8 encoder settings to load into the UI.

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