#identifier #transport-stream #format #smpte #mpeg #constants #authority

smptera-format-identifiers-rust

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

3个版本 (重大更新)

0.4.0 2023年5月30日
0.3.0 2021年4月9日
0.2.0 2020年7月26日

167多媒体 中排名

Download history 448/week @ 2024-03-16 336/week @ 2024-03-23 581/week @ 2024-03-30 520/week @ 2024-04-06 223/week @ 2024-04-13 200/week @ 2024-04-20 173/week @ 2024-04-27 237/week @ 2024-05-04 284/week @ 2024-05-11 464/week @ 2024-05-18 483/week @ 2024-05-25 254/week @ 2024-06-01 108/week @ 2024-06-08 186/week @ 2024-06-15 162/week @ 2024-06-22 31/week @ 2024-06-29

每月下载 513
5 个Crate中使用(通过 mpeg2ts-reader

MIT/Apache

36KB

crates.io version Documentation Rust

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


lib.rs:

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

(此Crate由smptera-format-identifiers-rust项目中的代码自动生成,来源于SMPTE-RA数据镜像。)

简单的包装类型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);

在matches中使用提供的常量

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