diff options
author | Vivia Nikolaidou <vivia@ahiru.eu> | 2022-11-28 18:06:07 +0300 |
---|---|---|
committer | Vivia Nikolaidou <vivia@ahiru.eu> | 2022-11-28 18:06:07 +0300 |
commit | 73ce616bd9a41d17fa481ae6798b8251f817201b (patch) | |
tree | eee873212b8a54b991f3d172be058af4adee8e3c /net/ndi | |
parent | 72f616fa142e024ca73f66954a1649fd5f9ab756 (diff) |
ndisrc: Use default channel mask for audio output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/988>
Diffstat (limited to 'net/ndi')
-rw-r--r-- | net/ndi/src/ndisrc/receiver.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/ndi/src/ndisrc/receiver.rs b/net/ndi/src/ndisrc/receiver.rs index 83d4634c..14f6a78f 100644 --- a/net/ndi/src/ndisrc/receiver.rs +++ b/net/ndi/src/ndisrc/receiver.rs @@ -1587,11 +1587,19 @@ impl Receiver { let fourcc = audio_frame.fourcc(); if [NDIlib_FourCC_audio_type_FLTp].contains(&fourcc) { + let channels = audio_frame.no_channels() as u32; + let mut positions = [gst_audio::AudioChannelPosition::None; 64]; + let _ = gst_audio::AudioChannelPosition::positions_from_mask( + gst_audio::AudioChannelPosition::fallback_mask(channels), + &mut positions, + ); + let builder = gst_audio::AudioInfo::builder( gst_audio::AUDIO_FORMAT_F32, audio_frame.sample_rate() as u32, - audio_frame.no_channels() as u32, - ); + channels, + ) + .positions(&positions[..audio_frame.no_channels() as usize]); let info = builder.build().map_err(|_| { gst::element_error!( |