audio sample rate hacks. todo: review which ones are actually needed

This commit is contained in:
Vivian Lim 2020-11-29 15:13:24 -08:00
parent 439e575982
commit c119c5eacd
1 changed files with 6 additions and 1 deletions

View File

@ -125,6 +125,9 @@ impl MyEmulator {
av_info.geometry.base_height = 480; av_info.geometry.base_height = 480;
av_info.geometry.aspect_ratio = 4.33; av_info.geometry.aspect_ratio = 4.33;
} }
if av_info.timing.sample_rate == 0.0 {
av_info.timing.sample_rate = 32040.0;
}
video_encoder.set_width(av_info.geometry.base_width); video_encoder.set_width(av_info.geometry.base_width);
video_encoder.set_height(av_info.geometry.base_height); video_encoder.set_height(av_info.geometry.base_height);
//video_encoder.set_aspect_ratio(av_info.geometry.aspect_ratio as f64); //video_encoder.set_aspect_ratio(av_info.geometry.aspect_ratio as f64);
@ -136,7 +139,8 @@ impl MyEmulator {
let audio_filter = audio_filter(&audio_encoder, av_info.timing.sample_rate).unwrap(); let audio_filter = audio_filter(&audio_encoder, av_info.timing.sample_rate).unwrap();
let video_encoder = video_encoder.open().unwrap(); let video_encoder = video_encoder.open().unwrap();
let audio_encoder = audio_encoder.open().unwrap(); let mut audio_encoder = audio_encoder.open().unwrap();
audio_encoder.set_rate(av_info.timing.sample_rate.round() as i32);
let emu = MyEmulator { let emu = MyEmulator {
retro, retro,
@ -169,6 +173,7 @@ impl MyEmulator {
self.audio_buf.len(), self.audio_buf.len(),
ChannelLayout::STEREO ChannelLayout::STEREO
); );
aframe.set_rate(32040);
let aplane: &mut [(i16, i16)] = aframe.plane_mut(0); let aplane: &mut [(i16, i16)] = aframe.plane_mut(0);
aplane.copy_from_slice(self.audio_buf.as_ref()); aplane.copy_from_slice(self.audio_buf.as_ref());
self.audio_buf.clear(); self.audio_buf.clear();