libdvb-rs

Crates.iolibdvb-rs
lib.rslibdvb-rs
version0.4.5
sourcesrc
created_at2022-03-19 21:22:35.728787
updated_at2022-03-30 17:31:52.577784
descriptionSafer and feature-complete pure-Rust interface for DVB-API v5 devices in Linux
homepage
repositoryhttps://github.com/cesbo/libdvb
max_upload_size
id553334
size96,365
Daniil Gentili (danog)

documentation

https://docs.rs/libdvb

README

libdvb

libdvb is an interface library for DVB-API v5 devices in Linux.

Supports three types of delivery systems:

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

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

FeDevice

Example DVB-S2 tune:

let fe = FeDevice::open_rw(0, 0)?;
set_dtv_properties!(
    fe, 
    DTV_DELIVERY_SYSTEM(SYS_DVBS2),
    DTV_FREQUENCY((11044 - 9750) * 1000),
    DTV_MODULATION(PSK_8),
    DTV_VOLTAGE(SEC_VOLTAGE_13),
    DTV_TONE(SEC_TONE_OFF),
    DTV_INVERSION(INVERSION_AUTO),
    DTV_SYMBOL_RATE(27500 * 1000),
    DTV_INNER_FEC(FEC_AUTO),
    DTV_PILOT(PILOT_AUTO),
    DTV_ROLLOFF(ROLLOFF_35),
    DTV_TUNE(()),
)?;

Frontend information:

let fe = FeDevice::open_ro(0, 0)?;
println!("{}", &fe);

Frontend status:

let fe = FeDevice::open_ro(0, 0)?;
let mut status = FeStatus::default();
status.read(&fe)?;
println!("{}", &status);
Commit count: 65

cargo fmt