Add support for u8 as audio output format

This commit is contained in:
Simon Hausmann 2023-05-26 10:04:13 +02:00 committed by Simon Hausmann
parent e5d4ec7713
commit 6ece192eec

View file

@ -51,18 +51,29 @@ impl AudioPlaybackThread {
_ => todo!(), _ => todo!(),
}; };
let output_format = ffmpeg_next::util::format::sample::Sample::F32( let mut ffmpeg_to_cpal_forwarder = match config.sample_format() {
ffmpeg_next::util::format::sample::Type::Packed, cpal::SampleFormat::U8 => FFmpegToCPalForwarder::new::<u8>(
); config,
&device,
let mut ffmpeg_to_cpal_forwarder = FFmpegToCPalForwarder::new::<f32>( packet_receiver,
config, packet_decoder,
&device, ffmpeg_next::util::format::sample::Sample::U8(
packet_receiver, ffmpeg_next::util::format::sample::Type::Packed,
packet_decoder, ),
output_format, output_channel_layout,
output_channel_layout, ),
); cpal::SampleFormat::F32 => FFmpegToCPalForwarder::new::<f32>(
config,
&device,
packet_receiver,
packet_decoder,
ffmpeg_next::util::format::sample::Sample::F32(
ffmpeg_next::util::format::sample::Type::Packed,
),
output_channel_layout,
),
format @ _ => todo!("unsupported cpal output format {:#?}", format),
};
let packet_receiver_impl = let packet_receiver_impl =
async { ffmpeg_to_cpal_forwarder.stream().await }.fuse().shared(); async { ffmpeg_to_cpal_forwarder.stream().await }.fuse().shared();