Table of Contents

Class DVDDecoderCaps

Namespace
VisioForge.Core.Types.MediaInfo
Assembly
VisioForge.Core.dll

Represents the capabilities of a DVD decoder, including supported playback rates and audio format capabilities.

public class DVDDecoderCaps

Inheritance

Inherited Members

Examples

// Check decoder capabilities before attempting special playback
var decoderCaps = dvdPlayer.GetDecoderCapabilities();

if (decoderCaps.FwdMaxRateVideo >= 8.0)
{
    Console.WriteLine("Decoder supports 8x fast forward for video");
    dvdPlayer.SetPlaybackRate(8.0);
}

if (decoderCaps.BwdMaxRateVideo > 0)
{
    Console.WriteLine("Decoder supports smooth reverse playback");
}
else
{
    Console.WriteLine("Reverse playback will use I-frame stepping");
}

// Check audio format support
if (decoderCaps.AudioCaps.SupportsAC3)
{
    Console.WriteLine("Dolby Digital (AC3) audio is supported");
}

Remarks

DVD decoders have varying capabilities depending on their implementation (hardware vs. software) and design. This class provides information about what a particular DVD decoder can handle, including maximum data rates for different stream types and special playback features.

The capability information is crucial for: - Determining if smooth fast-forward and reverse playback are supported - Understanding the decoder's performance limits - Checking audio format support (AC3, DTS, PCM, etc.) - Validating if a DVD can be played properly on the current system

Data rates are typically expressed as multipliers of normal playback speed (1x). For example, a FwdMaxRateVideo of 16.0 means the decoder can handle video playback at up to 16 times normal speed while maintaining smooth motion.

Properties

AudioCaps

Gets or sets the audio decoding capabilities of the DVD decoder.

public DVDAudioCaps AudioCaps { get; set; }

Property Value

DVDAudioCaps

Remarks

Audio capabilities include support for various formats like AC3 (Dolby Digital), DTS, PCM, and MPEG audio, as well as multi-channel configurations.

BwdMaxRateAudio

Gets or sets the maximum audio data rate supported in the reverse direction.

public double BwdMaxRateAudio { get; set; }

Property Value

double

Remarks

Reverse audio playback is rarely supported due to the complexity of playing compressed audio formats in reverse. Most decoders mute audio during reverse playback.

BwdMaxRateSP

Gets or sets the maximum subpicture data rate supported in the reverse direction.

public double BwdMaxRateSP { get; set; }

Property Value

double

Remarks

Like audio, subpictures are often disabled during reverse playback, especially at higher speeds, to reduce processing overhead.

BwdMaxRateVideo

Gets or sets the maximum video data rate supported in the reverse direction.

public double BwdMaxRateVideo { get; set; }

Property Value

double

Remarks

Smooth reverse playback is technically challenging because MPEG video uses inter-frame compression. Decoders that return 0 will use I-frame stepping for reverse playback instead, which appears jerky but requires less processing. Values typically range from -1.0 to -16.0 when supported.

FwdMaxRateAudio

Gets or sets the maximum audio data rate supported in the forward direction.

public double FwdMaxRateAudio { get; set; }

Property Value

double

Remarks

Audio typically cannot be played at the same high speeds as video. Many decoders mute audio above certain speeds (typically 2x or 4x) to avoid distortion.

FwdMaxRateSP

Gets or sets the maximum subpicture (subtitle) data rate supported in the forward direction.

public double FwdMaxRateSP { get; set; }

Property Value

double

Remarks

Subpictures include subtitles, menu highlights, and other overlay graphics. These typically follow the video rate but may have independent limitations.

FwdMaxRateVideo

Gets or sets the maximum video data rate supported in the forward direction.

public double FwdMaxRateVideo { get; set; }

Property Value

double

Remarks

This value indicates how fast the decoder can process video data during fast-forward operations while maintaining smooth playback. Higher values allow for faster scanning through content. Typical values range from 2.0 to 32.0 for modern decoders.

Size

Gets or sets the size of the decoder capabilities structure in bytes.

public int Size { get; set; }

Property Value

int

Remarks

This field helps ensure compatibility between different versions of the decoder interface by indicating the expected structure size.