Skip to content

Instantly share code, notes, and snippets.

@saivert
Created August 19, 2023 07:02
Show Gist options
  • Save saivert/19fa6dbace157a6d2344dde5cb067d31 to your computer and use it in GitHub Desktop.
Save saivert/19fa6dbace157a6d2344dde5cb067d31 to your computer and use it in GitHub Desktop.
Creating audio format pod with new pod builder api
let mut v = vec![0u8; 1024];
let mut b = spa::pod::builder::Builder::new(&mut v);
unsafe {
let mut f: MaybeUninit<spa::sys::spa_pod_frame> = MaybeUninit::zeroed();
b.push_array(&mut f);
b.add_id(spa::utils::Id(spa::sys::SPA_AUDIO_CHANNEL_MONO));
b.pop(f.assume_init_mut());
};
let mut x = spa::pod::builder::Builder::new(buffer);
spa::pod::builder::builder_add!(&mut x,
Object(
spa::sys::SPA_TYPE_OBJECT_Format,
spa::sys::SPA_PARAM_EnumFormat
) {
spa::sys::SPA_FORMAT_mediaType => Id(spa::utils::Id(spa::sys::SPA_MEDIA_TYPE_audio)),
spa::sys::SPA_FORMAT_mediaSubtype => Id(spa::utils::Id(spa::sys::SPA_MEDIA_SUBTYPE_raw)),
spa::sys::SPA_FORMAT_AUDIO_format => Id(spa::utils::Id(audio_info.format().as_raw())),
spa::sys::SPA_FORMAT_AUDIO_rate => Int(25),
spa::sys::SPA_FORMAT_AUDIO_channels => Int(1),
spa::sys::SPA_FORMAT_AUDIO_position => ???
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment