From 3d4d16f4dc101e16f643acc44dfffdbaf2a8f01c Mon Sep 17 00:00:00 2001 From: Pavel Dovgalyuk Date: Thu, 2 Feb 2017 08:50:54 +0300 Subject: replay: add record/replay for audio passthrough This patch adds recording and replaying audio data. Is saves synchronization information for audio out and inputs from the microphone. v2: removed unneeded whitespace change Signed-off-by: Pavel Dovgalyuk Message-id: 20170202055054.4848.94901.stgit@PASHA-ISP.lan02.inno [ kraxel: add qemu/error-report.h include to fix osx build failure ] Signed-off-by: Gerd Hoffmann --- audio/mixeng.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'audio/mixeng.c') diff --git a/audio/mixeng.c b/audio/mixeng.c index 66c0328d42..0bf9b5360f 100644 --- a/audio/mixeng.c +++ b/audio/mixeng.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "qemu/bswap.h" +#include "qemu/error-report.h" #include "audio.h" #define AUDIO_CAP "mixeng" @@ -267,6 +268,37 @@ f_sample *mixeng_clip[2][2][2][3] = { } }; + +void audio_sample_to_uint64(void *samples, int pos, + uint64_t *left, uint64_t *right) +{ + struct st_sample *sample = samples; + sample += pos; +#ifdef FLOAT_MIXENG + error_report( + "Coreaudio and floating point samples are not supported by replay yet"); + abort(); +#else + *left = sample->l; + *right = sample->r; +#endif +} + +void audio_sample_from_uint64(void *samples, int pos, + uint64_t left, uint64_t right) +{ + struct st_sample *sample = samples; + sample += pos; +#ifdef FLOAT_MIXENG + error_report( + "Coreaudio and floating point samples are not supported by replay yet"); + abort(); +#else + sample->l = left; + sample->r = right; +#endif +} + /* * August 21, 1998 * Copyright 1998 Fabrice Bellard. -- cgit v1.2.1