Skip to main content

pito_codecs/media/
nal.rs

1pub fn length_prefixed_to_annexb(out: &mut Vec<u8>, data: &[u8], length: usize) {
2    let mut pos = 0;
3    while length > 0 && pos + length <= data.len() {
4        let n = data[pos..pos + length]
5            .iter()
6            .fold(0usize, |a, &b| (a << 8) | b as usize);
7        pos += length;
8        let Some(nal) = data.get(pos..pos + n) else {
9            break;
10        };
11        out.extend_from_slice(&[0, 0, 0, 1]);
12        out.extend_from_slice(nal);
13        pos += n;
14    }
15}