1
0
mirror of https://github.com/danog/libdvb.git synced 2024-11-30 04:19:00 +01:00
Go to file
2020-10-26 14:28:59 +02:00
src status display fix 2020-10-26 14:28:59 +02:00
.gitignore initial commit. tune: open, FE_GET_INFO 2018-10-24 02:10:08 +05:00
Cargo.toml verbosity for FeStatus::display(); FeDevice::new() rename to FeDevice::open(); AsRef for FeDevice::open() 2020-10-26 14:14:35 +02:00
README.md verbosity for FeStatus::display(); FeDevice::new() rename to FeDevice::open(); AsRef for FeDevice::open() 2020-10-26 14:14:35 +02:00

libdvb

libdvb is an interface library to DVB devices.

Supports three types of delivery systems:

  • Satellite: DVB-S, DVB-S2
  • Terretrial: DVB-T, DVB-T2, ATSC, ISDB-T
  • Cable: DVB-C

Implements next standards:

  • Linux DVB API version 5

TODO:

  • Cenelec EN 50221 - Common Interface Specification for Conditional Access and other Digital Video BroadcastingDecoder Applications
  • DiSEqC 1.0
  • DiSEqC 1.1
  • EN 50494 - Unicable I
  • EN 50607 - Unicable II
  • ISO/IEC 13818-1 - MPEG-TS
  • ETSI TS 101 211 - Service Information implementation
  • ETSI TR 101 290 - Measurements for DVB systems

FeDevice

Example DVB-S2 tune:

let cmdseq = vec![
    DtvProperty::new(DTV_DELIVERY_SYSTEM, SYS_DVBS2),
    DtvProperty::new(DTV_FREQUENCY, (11044 - 9750) * 1000),
    DtvProperty::new(DTV_MODULATION, PSK_8),
    DtvProperty::new(DTV_VOLTAGE, SEC_VOLTAGE_13),
    DtvProperty::new(DTV_TONE, SEC_TONE_OFF),
    DtvProperty::new(DTV_INVERSION, INVERSION_AUTO),
    DtvProperty::new(DTV_SYMBOL_RATE, 27500 * 1000),
    DtvProperty::new(DTV_INNER_FEC, FEC_AUTO),
    DtvProperty::new(DTV_PILOT, PILOT_AUTO),
    DtvProperty::new(DTV_ROLLOFF, ROLLOFF_35),
    DtvProperty::new(DTV_TUNE, 0),
];

let fe = FeDevice::open("/dev/dvb/adapter0/frontend0", true)?;
fe.ioctl_set_property(&mut cmdseq)?;