mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-15 15:32:51 +00:00
audio: rename audio_sw_bytes_free()
Rename and refactor audio_sw_bytes_free(). This function is not limited to calculate the free audio buffer size. The renamed function returns the number of frames instead of bytes. Signed-off-by: Volker Rümelin <vr_qemu@t-online.de> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20220923183640.8314-9-vr_qemu@t-online.de> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
613fe02b2a
commit
c4e592647e
|
@ -1010,9 +1010,16 @@ static size_t audio_get_avail (SWVoiceIn *sw)
|
||||||
return (((int64_t) live << 32) / sw->ratio) * sw->info.bytes_per_frame;
|
return (((int64_t) live << 32) / sw->ratio) * sw->info.bytes_per_frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t audio_sw_bytes_free(SWVoiceOut *sw, size_t free)
|
/**
|
||||||
|
* audio_frontend_frames_out() - returns the number of frames needed to
|
||||||
|
* get frames_out frames after resampling
|
||||||
|
*
|
||||||
|
* @sw: audio playback frontend
|
||||||
|
* @frames_out: number of frames
|
||||||
|
*/
|
||||||
|
static size_t audio_frontend_frames_out(SWVoiceOut *sw, size_t frames_out)
|
||||||
{
|
{
|
||||||
return (((int64_t)free << 32) / sw->ratio) * sw->info.bytes_per_frame;
|
return ((int64_t)frames_out << 32) / sw->ratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t audio_get_free(SWVoiceOut *sw)
|
static size_t audio_get_free(SWVoiceOut *sw)
|
||||||
|
@ -1034,8 +1041,8 @@ static size_t audio_get_free(SWVoiceOut *sw)
|
||||||
dead = sw->hw->mix_buf->size - live;
|
dead = sw->hw->mix_buf->size - live;
|
||||||
|
|
||||||
#ifdef DEBUG_OUT
|
#ifdef DEBUG_OUT
|
||||||
dolog("%s: get_free live %zu dead %zu sw_bytes %zu\n",
|
dolog("%s: get_free live %zu dead %zu frontend frames %zu\n",
|
||||||
SW_NAME(sw), live, dead, audio_sw_bytes_free(sw, dead));
|
SW_NAME(sw), live, dead, audio_frontend_frames_out(sw, dead));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return dead;
|
return dead;
|
||||||
|
@ -1156,13 +1163,14 @@ static void audio_run_out (AudioState *s)
|
||||||
size_t free;
|
size_t free;
|
||||||
|
|
||||||
if (hw_free > sw->total_hw_samples_mixed) {
|
if (hw_free > sw->total_hw_samples_mixed) {
|
||||||
free = audio_sw_bytes_free(sw,
|
free = audio_frontend_frames_out(sw,
|
||||||
MIN(sw_free, hw_free - sw->total_hw_samples_mixed));
|
MIN(sw_free, hw_free - sw->total_hw_samples_mixed));
|
||||||
} else {
|
} else {
|
||||||
free = 0;
|
free = 0;
|
||||||
}
|
}
|
||||||
if (free > 0) {
|
if (free > 0) {
|
||||||
sw->callback.fn(sw->callback.opaque, free);
|
sw->callback.fn(sw->callback.opaque,
|
||||||
|
free * sw->info.bytes_per_frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue