in mp4parse/src/tests.rs [905:938]
fn skip_padding_in_boxes() {
// Padding data could be added in the end of these boxes. Parser needs to skip
// them instead of returning error.
let box_names = vec![b"stts", b"stsc", b"stsz", b"stco", b"co64", b"stss"];
for name in box_names {
let mut stream = make_fullbox(BoxSize::Auto, name, 1, |s| {
s.append_repeated(0, 100) // add padding data
});
let mut iter = super::BoxIter::new(&mut stream);
let mut stream = iter.next_box().unwrap().unwrap();
match name {
b"stts" => {
super::read_stts(&mut stream).expect("fail to skip padding: stts");
}
b"stsc" => {
super::read_stsc(&mut stream).expect("fail to skip padding: stsc");
}
b"stsz" => {
super::read_stsz(&mut stream).expect("fail to skip padding: stsz");
}
b"stco" => {
super::read_stco(&mut stream).expect("fail to skip padding: stco");
}
b"co64" => {
super::read_co64(&mut stream).expect("fail to skip padding: co64");
}
b"stss" => {
super::read_stss(&mut stream).expect("fail to skip padding: stss");
}
_ => (),
}
}
}