On 23/01/2026 07:49, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> AUD_init_time_stamp_{in,out} and AUD_get_elapsed_usec_{in,out} are only
> used by the adlib device. The result isn't actually being used since
> ADLIB_KILL_TIMERS was set some 20y ago. Let's drop this dead code now.
>
> Drop QEMUAudioTimeStamp as well as reported by Akihiko Odaki.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> audio/audio_template.h | 34 -------------------
> include/qemu/audio.h | 10 ------
> hw/audio/adlib.c | 18 +---------
> .../codeconverter/test_regexps.py | 1 -
> 4 files changed, 1 insertion(+), 62 deletions(-)
>
> diff --git a/audio/audio_template.h b/audio/audio_template.h
> index 7a8c431f2d7..1ab3c47fd76 100644
> --- a/audio/audio_template.h
> +++ b/audio/audio_template.h
> @@ -569,40 +569,6 @@ bool glue(AUD_is_active_, TYPE)(SW *sw)
> return sw ? sw->active : 0;
> }
>
> -void glue (AUD_init_time_stamp_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
> -{
> - if (!sw) {
> - return;
> - }
> -
> - ts->old_ts = sw->hw->ts_helper;
> -}
> -
> -uint64_t glue (AUD_get_elapsed_usec_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
> -{
> - uint64_t delta, cur_ts, old_ts;
> -
> - if (!sw) {
> - return 0;
> - }
> -
> - cur_ts = sw->hw->ts_helper;
> - old_ts = ts->old_ts;
> - /* dolog ("cur %" PRId64 " old %" PRId64 "\n", cur_ts, old_ts); */
> -
> - if (cur_ts >= old_ts) {
> - delta = cur_ts - old_ts;
> - } else {
> - delta = UINT64_MAX - old_ts + cur_ts;
> - }
> -
> - if (!delta) {
> - return 0;
> - }
> -
> - return muldiv64 (delta, sw->hw->info.freq, 1000000);
> -}
> -
> #undef TYPE
> #undef HW
> #undef SW
> diff --git a/include/qemu/audio.h b/include/qemu/audio.h
> index a92e0b70ef0..a1a64ad340d 100644
> --- a/include/qemu/audio.h
> +++ b/include/qemu/audio.h
> @@ -50,10 +50,6 @@ struct AudioBackendClass {
>
> typedef struct AudioBackend AudioBackend;
>
> -typedef struct QEMUAudioTimeStamp {
> - uint64_t old_ts;
> -} QEMUAudioTimeStamp;
> -
> bool AUD_backend_check(AudioBackend **be, Error **errp);
>
> SWVoiceOut *AUD_open_out (
> @@ -71,9 +67,6 @@ int AUD_get_buffer_size_out (SWVoiceOut *sw);
> void AUD_set_active_out(SWVoiceOut *sw, bool on);
> bool AUD_is_active_out(SWVoiceOut *sw);
>
> -void AUD_init_time_stamp_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
> -uint64_t AUD_get_elapsed_usec_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts);
> -
> #define AUDIO_MAX_CHANNELS 16
> typedef struct Volume {
> bool mute;
> @@ -112,9 +105,6 @@ size_t AUD_read (SWVoiceIn *sw, void *pcm_buf, size_t size);
> void AUD_set_active_in(SWVoiceIn *sw, bool on);
> bool AUD_is_active_in(SWVoiceIn *sw);
>
> -void AUD_init_time_stamp_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
> -uint64_t AUD_get_elapsed_usec_in (SWVoiceIn *sw, QEMUAudioTimeStamp *ts);
> -
> void audio_cleanup(void);
>
> typedef struct st_sample st_sample;
> diff --git a/hw/audio/adlib.c b/hw/audio/adlib.c
> index 8b9fe53e17b..efab5107a4c 100644
> --- a/hw/audio/adlib.c
> +++ b/hw/audio/adlib.c
> @@ -34,8 +34,6 @@
>
> #define DEBUG 0
>
> -#define ADLIB_KILL_TIMERS 1
> -
> #define ADLIB_DESC "Yamaha YM3812 (OPL2)"
>
> #if DEBUG
> @@ -71,7 +69,6 @@ struct AdlibState {
> uint64_t dexp[2];
> SWVoiceOut *voice;
> int left, pos, samples;
> - QEMUAudioTimeStamp ats;
> FM_OPL *opl;
> PortioList port_list;
> };
> @@ -88,19 +85,7 @@ static void adlib_kill_timers (AdlibState *s)
>
> for (i = 0; i < 2; ++i) {
> if (s->ticking[i]) {
> - uint64_t delta;
> -
> - delta = AUD_get_elapsed_usec_out (s->voice, &s->ats);
> - ldebug (
> - "delta = %f dexp = %f expired => %d",
> - delta / 1000000.0,
> - s->dexp[i] / 1000000.0,
> - delta >= s->dexp[i]
> - );
> - if (ADLIB_KILL_TIMERS || delta >= s->dexp[i]) {
> - adlib_stop_opl_timer (s, i);
> - AUD_init_time_stamp_out (s->voice, &s->ats);
> - }
> + adlib_stop_opl_timer(s, i);
> }
> }
> }
> @@ -149,7 +134,6 @@ static void timer_handler (void *opaque, int c, double interval_Sec)
> #endif
>
> s->dexp[n] = interval_Sec * 1000000.0;
> - AUD_init_time_stamp_out (s->voice, &s->ats);
> }
>
> static int write_audio (AdlibState *s, int samples)
> diff --git a/scripts/codeconverter/codeconverter/test_regexps.py b/scripts/codeconverter/codeconverter/test_regexps.py
> index b00e9ef15b2..1ab3fa1699f 100644
> --- a/scripts/codeconverter/codeconverter/test_regexps.py
> +++ b/scripts/codeconverter/codeconverter/test_regexps.py
> @@ -202,7 +202,6 @@ def test_struct_re():
> uint64_t dexp[2];
> SWVoiceOut *voice;
> int left, pos, samples;
> - QEMUAudioTimeStamp ats;
> FM_OPL *opl;
> PortioList port_list;
> } AdlibState;
Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
ATB,
Mark.