#chunk #riff #iff #parser #codec

iffc

IFF数据块编码和解码器

3个版本

0.1.2 2020年5月17日
0.1.1 2020年5月17日
0.1.0 2020年5月16日

#9#riff

ISC 许可协议

5KB

iffc

Electronic Arts IFF数据块编码和解码器,类似于Python的chunks模块。此库可用于使用此格式的衍生格式(例如WAVE、RMI、AVI、TIFF)通过文件流进行读取或写入。



lib.rs:

IFF是由Electronic Arts开发的二进制交换格式,用于对二进制数据进行标记以赋予其意义。此文件由被称为“数据块”的段组成。此格式主要用于存储多媒体,例如音频、视频、MIDI、图像。

此包提供数据结构和包装器,通过从文件流中读取和解析或写入和编码来轻松地操作此格式。

示例

从给定读取器解码所有可用的数据块

use iffc::Decoder;

fn main() {
    let inp = std::io::Cursor::new(b"RIFF\x04\x00\x00\x00WAVE");
    let parser = Decoder::new(Box::new(inp));

    for chk in parser
    { println!("{:?}: {}", chk.0, chk.1.len()); }
}

将数据块编码到给定的写入器

use iffc::{Encoder, Chunk};

fn main() {
    let out = std::io::Cursor::new(Vec::new());
    let deparser = Encoder::new(Box::new(out));

    deparser << Chunk(*b"RIFF", Box::new(*b"WAVE"));
}

无运行时依赖项