#identifier #format #registration #authority #constant #defined #smptera

已删除 smptera-format-identifers-rust

SMPTE注册机构定义的格式标识符常量

0.2.0 2020年7月26日
0.1.0 2020年7月23日

#32 in #registration

MIT/Apache

34KB

格式标识符 值记录在 SMPTE注册机构,用于 MPEG传输流 数据。

(此创建自动由 SMPTE-RA数据的镜像 通过 smptera-format-identifiers-rust 项目的代码生成。)

简单的包装类型 FormatIdentifier 定义了SMPTE-RA数据中的每个 格式标识符 的常量,

use std::io::stdout;
println!("{:?}", FormatIdentifier::AC_3);
// prints: FormatIdentifier(FourCC{AC-3})

用法

从切片创建,

let descriptor_data = b"\x05\x04CUEI";
let id = FormatIdentifier::from(&descriptor_data[2..6]);
assert_eq!(id, FormatIdentifier::CUEI);

包装现有的FourCC值,

let fcc = FourCC(*b"CUEI");
let id = FormatIdentifier(fcc);
assert_eq!(id, FormatIdentifier::CUEI);

在匹配中使用提供的常量,

match FormatIdentifier::from(&descriptor_data[2..6]) {
    FormatIdentifier::CUEI => println!("SCTE-35 suspected"),
    FormatIdentifier::KLVA => println!("SMPTE RP 217-2001 KLV Packets?"),
    other_id => println!("Some other kinda stuff: {:?}", other_id),
}

写入字节值,

let mut data = vec![];
let mut io = Cursor::new(data);

let id = &FormatIdentifier::ID3;
io.write(id.into())
    .expect("write failed");

assert_eq!(io.into_inner(), [b'I', b'D', b'3', b' ']);

依赖关系

~11KB