diff options
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/resampler.cpp | 4 | ||||
-rw-r--r-- | src/emu/sound.cpp | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/emu/resampler.cpp b/src/emu/resampler.cpp index b86e028ce04..18a5d9f4a21 100644 --- a/src/emu/resampler.cpp +++ b/src/emu/resampler.cpp @@ -231,7 +231,7 @@ u32 audio_resampler_hq::compute_gcd(u32 fs, u32 ft) u32 audio_resampler_hq::history_size() const { - return m_order_per_lane; + return m_order_per_lane + m_skip + 1; } void audio_resampler_hq::apply(const emu::detail::output_buffer_flat<sample_t> &src, std::vector<sample_t> &dest, u64 dest_sample, u32 srcc, float gain, u32 samples) const @@ -382,7 +382,7 @@ audio_resampler_lofi::audio_resampler_lofi(u32 fs, u32 ft) u32 audio_resampler_lofi::history_size() const { - return 5 * m_source_divide; + return 5 * m_source_divide + m_fs / m_ft + 1; } void audio_resampler_lofi::apply(const emu::detail::output_buffer_flat<sample_t> &src, std::vector<sample_t> &dest, u64 dest_sample, u32 srcc, float gain, u32 samples) const diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp index a393fcefb46..a08ede3f471 100644 --- a/src/emu/sound.cpp +++ b/src/emu/sound.cpp @@ -38,7 +38,7 @@ #define LOG_OSD_STREAMS (1U << 3) #define LOG_ORDER (1U << 4) -#define VERBOSE -1 +#define VERBOSE 0 #include "logmacro.h" @@ -498,12 +498,12 @@ u64 sound_stream::get_current_sample_index() const void sound_stream::update() { - if(!is_active() || m_in_update) + if(!is_active() || m_in_update || m_device.machine().phase() <= machine_phase::RESET) return; // Find out where we are and how much we have to do u64 idx = get_current_sample_index(); - m_samples_to_update = idx - m_output_buffer.write_sample(); + m_samples_to_update = idx - m_output_buffer.write_sample() + 1; // We want to include the current sample, hence the +1 if(m_samples_to_update > 0) { m_in_update = true; @@ -520,12 +520,12 @@ void sound_stream::update() void sound_stream::update_nodeps() { - if(!is_active() || m_in_update) + if(!is_active() || m_in_update || m_device.machine().phase() <= machine_phase::RESET) return; // Find out where we are and how much we have to do u64 idx = get_current_sample_index(); - m_samples_to_update = idx - m_output_buffer.write_sample(); + m_samples_to_update = idx - m_output_buffer.write_sample() + 1; // We want to include the current sample, hence the +1 if(m_samples_to_update > 0) { m_in_update = true; |