#ts #dvb #api-bindings

libdvb

Linux中DVB-API v5设备的接口

3个不稳定版本

0.3.0 2021年3月16日
0.2.2 2021年1月22日
0.2.1 2021年1月20日

#1520硬件支持

MIT 许可证

79KB
2K SLoC

libdvb

libdvb 是Linux中DVB-API v5设备的接口库。

支持三种传输系统

  • 卫星:DVB-S, DVB-S2
  • 地面:DVB-T, DVB-T2, ATSC, ISDB-T
  • 有线:DVB-C

待办事项

  • Cenelec EN 50221 - 条件接入和其他数字电视广播解码器应用的通用接口规范
  • DiSEqC 1.0
  • DiSEqC 1.1
  • EN 50494 - Unicable I
  • EN 50607 - Unicable II

FeDevice

示例DVB-S2调谐

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_rw(0, 0)?;
fe.set_properties(&cmdseq)?;

前端信息

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

前端状态

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

依赖项

~2MB
~38K SLoC