#timecode #codec #decoding #real-time #pure #decoder #coder

timecode-coder

一个用于实时解码和编码时间码的纯Rust no_std库

1 个不稳定版本

0.3.0 2022年12月4日
0.2.0 2022年12月4日
0.1.0 2022年12月4日

#2181 in 编码

MIT 许可证

44KB
888

Rust时间码编码器

一个用于实时编码和解码时间码的纯Rust no_std 库。

解码LTC

在Cargo.toml中添加依赖

[dependencies]
timecode-coder = { version = "x.x.x", features = ["decode_ltc"] }

假设你有一个从你的音频接口接收缓冲区的函数

use timecode_coder::ltc_decoder::LtcDecoder;

struct MyAudioHandler {
    decoder: LtcDecoder<u16>,
}

impl MyAudioHandler {
    // Sampling rate can by any Type that implements `FromPrimitive` 
    fn new(sampling_rate: u32) -> Self {
        Self {
            decoder: LtcDecoder::new(sampling_rate)
        }
    }
    fn new_buffer(&mut self, samples: [u16; 512]) {
        for sample in samples {
            if let Some(timecode_frame) = get_timecode_frame(sample) {
                /// New TimecodeFrame received
            }
        }
    }
}

TimecodeFrame 提供

  • 小时
  • 分钟
  • 帧率(自动检测)

警告。尚未支持丢弃帧。它们将被检测为正常的 '25fps' 或 '30fps'

编码LTC

尚未实现

解码MIDI

尚未实现

编码MIDI

尚未实现

依赖项

~165KB