#ts #dvb #api-bindings

nightly libdvb-rs

Linux中DVB-API v5设备的更安全和功能齐全的纯Rust接口

5个版本

0.4.5 2022年3月30日
0.4.3 2022年3月23日
0.4.2 2022年3月22日
0.4.1 2022年3月21日
0.4.0 2022年3月19日

#967硬件支持

MIT 许可证

87KB
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 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(()),
)?;

前端信息

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);

依赖项

~4.5MB
~90K SLoC