Table of Contents

Class BDATuningParameters

Namespace
VisioForge.Core.Types.VideoCapture
Assembly
VisioForge.Core.dll

Encapsulates comprehensive tuning parameters for Broadcast Driver Architecture (BDA) digital TV reception.

public class BDATuningParameters

Inheritance

Inherited Members

Remarks

This class contains all the parameters necessary to tune a BDA-compatible digital TV tuner device to a specific channel and service. The required parameters vary depending on the broadcast standard (DVB-T, DVB-S, DVB-C, ATSC) and the transmission characteristics of the target channel.

BDA tuning is a multi-step process:

  1. Tune to the correct frequency using VisioForge.Core.Types.VideoCapture.BDATuningParameters.Frequency
  2. Lock onto the transport stream using modulation and symbol rate parameters
  3. Select the specific service using VisioForge.Core.Types.VideoCapture.BDATuningParameters.SID and stream PIDs
  4. Demultiplex audio and video streams using the PID values

Constructors

BDATuningParameters()

Initializes a new instance of the VisioForge.Core.Types.VideoCapture.BDATuningParameters class.

public BDATuningParameters()

Properties

AC3Pid

Gets or sets the Packet Identifier (PID) for Dolby Digital (AC-3) audio stream.

public int AC3Pid { get; set; }

Property Value

int

Remarks

Used when the service broadcasts Dolby Digital audio in addition to or instead of standard audio formats. Common in HD broadcasts and movie channels.

Audio1Pid

Gets or sets the Packet Identifier (PID) for the first alternative audio stream.

public int Audio1Pid { get; set; }

Property Value

int

Remarks

Many broadcasts offer multiple audio tracks for different languages or purposes. This identifies the first alternative audio stream.

Audio2Pid

Gets or sets the Packet Identifier (PID) for the second alternative audio stream.

public int Audio2Pid { get; set; }

Property Value

int

Audio3Pid

Gets or sets the Packet Identifier (PID) for the third alternative audio stream.

public int Audio3Pid { get; set; }

Property Value

int

AudioPid

Gets or sets the Packet Identifier (PID) for the primary audio elementary stream.

public int AudioPid { get; set; }

Property Value

int

Remarks

This PID specifies which packets in the MPEG-2 transport stream contain the main audio track. Additional audio streams are specified using Audio1Pid, Audio2Pid, etc.

Bandwidth

Gets or sets the channel bandwidth for terrestrial broadcasts.

public int Bandwidth { get; set; }

Property Value

int

Remarks

Used primarily for DVB-T broadcasts. Common bandwidths are 6 MHz, 7 MHz, and 8 MHz depending on the region and spectrum allocation.

Channel

Gets or sets the logical channel number for the service.

public int Channel { get; set; }

Property Value

int

Remarks

This is typically the channel number displayed to users. It may differ from the physical channel or frequency, especially in digital broadcasting where logical channel numbering (LCN) is used for service organization.

ChannelName

Gets or sets the human-readable channel or service name.

public string ChannelName { get; set; }

Property Value

string

Diseq

Gets or sets the DiSEqC (Digital Satellite Equipment Control) switch position.

public int Diseq { get; set; }

Property Value

int

Remarks

DiSEqC is used to control satellite dish positioning and multi-satellite switching. Values typically correspond to: 0=None, 1=Port A, 2=Port B, 3=Port C, 4=Port D for multi-satellite installations.

ECMPID

Gets or sets the Packet Identifier (PID) for Entitlement Control Messages (ECM).

public int ECMPID { get; set; }

Property Value

int

Remarks

ECMs contain the control words and authorization data needed to descramble encrypted services. They work in conjunction with CAMs and smart cards.

FEC

Gets or sets the Forward Error Correction (FEC) rate.

public int FEC { get; set; }

Property Value

int

Remarks

FEC adds redundancy to the transmitted signal to correct errors during reception. Common values are ratios like 1/2, 2/3, 3/4, 5/6, 7/8. The specific encoding depends on the broadcast standard and signal quality requirements.

Frequency

Gets or sets the tuning frequency for the channel.

public int Frequency { get; set; }

Property Value

int

Remarks

The frequency format depends on the broadcast type:

  • DVB-T/ATSC: Center frequency in kHz (e.g., 522000 for 522 MHz)
  • DVB-C: Center frequency in kHz
  • DVB-S/S2: Transponder frequency in MHz (e.g., 11954)

LNBFrequency

Gets or sets the Local Oscillator frequency of the LNB for satellite reception.

public int LNBFrequency { get; set; }

Property Value

int

Remarks

The LNB frequency is used to calculate the intermediate frequency (IF) from the satellite downlink frequency: IF = Downlink - LNB_Frequency.

Common LNB frequencies:

  • Universal LNB Low: 9750 MHz
  • Universal LNB High: 10600 MHz
  • Standard LNB: 10750 MHz

LanguageCodeAudio

Gets or sets the ISO 639 language code for the primary audio stream.

public string LanguageCodeAudio { get; set; }

Property Value

string

Remarks

Specifies the language of the main audio track using ISO 639-2/T or ISO 639-2/B codes. This helps in selecting the appropriate audio stream when multiple languages are available.

LanguageCodeAudio1

Gets or sets the ISO 639 language code for the first alternative audio stream.

public string LanguageCodeAudio1 { get; set; }

Property Value

string

LanguageCodeAudio2

Gets or sets the ISO 639 language code for the second alternative audio stream.

public string LanguageCodeAudio2 { get; set; }

Property Value

string

LanguageCodeAudio3

Gets or sets the ISO 639 language code for the third alternative audio stream.

public string LanguageCodeAudio3 { get; set; }

Property Value

string

LnbSwitchFrequency

Gets or sets the LNB (Low Noise Block) switch frequency for dual-band satellite reception.

public int LnbSwitchFrequency { get; set; }

Property Value

int

Remarks

Used in satellite reception for universal LNBs that cover both low (10.7-11.7 GHz) and high (11.7-12.75 GHz) Ku-band frequencies. Common switch frequencies are 11700 MHz. The 22 kHz tone controls the band selection.

MajorChannel

Gets or sets the ATSC major channel number.

public int MajorChannel { get; set; }

Property Value

int

Remarks

The major number typically corresponds to the legacy analog channel number, providing continuity for users transitioning from analog to digital TV.

MinorChannel

Gets or sets the ATSC minor channel number.

public int MinorChannel { get; set; }

Property Value

int

Remarks

ATSC uses a major.minor numbering system where multiple services can share a physical channel. The minor number identifies the specific sub-channel.

Modulation

Gets or sets the modulation scheme used for signal transmission.

public BDAModulationType Modulation { get; set; }

Property Value

BDAModulationType

Remarks

The modulation type determines how digital data is encoded onto the carrier signal. Different broadcast standards use different modulation schemes (QPSK for DVB-S, QAM for DVB-C, COFDM for DVB-T, 8VSB for ATSC).

ONID

Gets or sets the Original Network Identifier (ONID).

public int ONID { get; set; }

Property Value

int

Remarks

The ONID identifies the network that originally distributed the service. Together with TSID and SID, it provides a globally unique identifier for the service.

PCRPid

Gets or sets the Packet Identifier (PID) for the Program Clock Reference (PCR).

public int PCRPid { get; set; }

Property Value

int

Remarks

The PCR provides timing references for synchronizing video and audio playback. It is often (but not always) the same as the video PID.

PMTPID

Gets or sets the Packet Identifier (PID) for the Program Map Table (PMT).

public int PMTPID { get; set; }

Property Value

int

Remarks

The PMT describes the elementary streams that make up a program/service, including their PIDs, stream types, and descriptors. Essential for demultiplexing the service.

PhysicalChannel

Gets or sets the physical (RF) channel number.

public int PhysicalChannel { get; set; }

Property Value

int

Remarks

For terrestrial broadcasts, this represents the actual RF channel allocation. The physical channel may differ from the logical channel number displayed to users.

Polarisation

Gets or sets the signal polarization for satellite reception.

public BDAPolarisation Polarisation { get; set; }

Property Value

BDAPolarisation

Remarks

Applies only to satellite (DVB-S/S2) reception. The LNB uses this to select which polarization plane to receive: Horizontal, Vertical, Left Circular, or Right Circular.

ProgramNumber

Gets or sets the MPEG program number within the transport stream.

public int ProgramNumber { get; set; }

Property Value

int

Remarks

The program number is used to identify a specific service within a multiplexed transport stream. It corresponds to the program_number field in the Program Association Table (PAT).

ProviderName

Gets or sets the name of the service provider.

public string ProviderName { get; set; }

Property Value

string

SID

Gets or sets the Service Identifier (SID).

public int SID { get; set; }

Property Value

int

Remarks

The SID uniquely identifies a service (channel) within a transport stream. It corresponds to the service_id in the Service Description Table (SDT) and Program Map Table (PMT).

Scrambled

Gets or sets a value indicating whether the service is scrambled (encrypted).

public int Scrambled { get; set; }

Property Value

int

Remarks

Scrambled services require appropriate Conditional Access Module (CAM) and smart card with valid subscription to decrypt the content.

ServiceType

Gets or sets the service type identifier.

public int ServiceType { get; set; }

Property Value

int

Remarks

Common service types: 0x01 (digital TV), 0x02 (digital radio), 0x04 (teletext), 0x16 (advanced codec SD TV), 0x19 (advanced codec HD TV).

SubtitlePID

Gets or sets the Packet Identifier (PID) for DVB subtitles.

public int SubtitlePID { get; set; }

Property Value

int

Remarks

DVB subtitles are bitmap-based subtitles commonly used in European broadcasts. They differ from teletext subtitles and can support multiple languages and hearing-impaired options.

SymbolRate

Gets or sets the symbol rate for the digital signal.

public int SymbolRate { get; set; }

Property Value

int

Remarks

Symbol rate is primarily used for satellite (DVB-S/S2) and cable (DVB-C) reception. Common values include 27500000 for European satellite services. Not typically used for terrestrial (DVB-T) broadcasts.

TSID

Gets or sets the Transport Stream Identifier (TSID).

public int TSID { get; set; }

Property Value

int

Remarks

The TSID, along with ONID, uniquely identifies a transport stream within a network. It is found in the Program Association Table (PAT) and other SI tables.

TeletextPid

Gets or sets the Packet Identifier (PID) for teletext data.

public int TeletextPid { get; set; }

Property Value

int

Remarks

Teletext provides text-based information pages and closed captioning. While less common in modern broadcasts, it remains in use in some regions.

VideoPid

Gets or sets the Packet Identifier (PID) for the video elementary stream.

public int VideoPid { get; set; }

Property Value

int

Remarks

This PID identifies which packets contain the video data for the service. The value is obtained from the Program Map Table (PMT) for the selected service.