pub(super) fn build_dops(
channels: u8,
pre_skip_48k: u16,
input_sample_rate: u32,
ms_meta: Option<(u8, u8, &[u8])>,
) -> Vec<u8> {
let (family, total_len) = match ms_meta {
None => (0u8, 11usize),
Some(_) => (1u8, 11 + 2 + channels as usize),
};
let mut v = Vec::with_capacity(total_len);
v.push(0u8); v.push(channels);
v.extend_from_slice(&pre_skip_48k.to_le_bytes());
v.extend_from_slice(&input_sample_rate.to_le_bytes());
v.extend_from_slice(&0i16.to_le_bytes()); v.push(family);
if let Some((streams, coupled, mapping)) = ms_meta {
v.push(streams);
v.push(coupled);
v.extend_from_slice(mapping);
debug_assert_eq!(mapping.len(), channels as usize);
}
debug_assert_eq!(v.len(), total_len);
v
}