From ebe8e30ecff284d0691d2c87afe60c5996031abb Mon Sep 17 00:00:00 2001 From: Murali S R Date: Wed, 21 Jul 2021 15:55:41 +0530 Subject: [PATCH] GetTimeStamp for playback and record scenario Signed-off-by: Anurup M --- services/src/client/audio_service_client.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/services/src/client/audio_service_client.cpp b/services/src/client/audio_service_client.cpp index 5a905ba9cc..ef25241bc2 100644 --- a/services/src/client/audio_service_client.cpp +++ b/services/src/client/audio_service_client.cpp @@ -1000,16 +1000,22 @@ uint32_t AudioServiceClient::GetStreamVolume(uint32_t sessionID) int32_t AudioServiceClient::GetCurrentTimeStamp(uint64_t &timeStamp) { CHECK_PA_STATUS_RET_IF_FAIL(mainLoop, context, paStream, AUDIO_CLIENT_PA_ERR); - int32_t retVal = 0; + int32_t retVal = AUDIO_CLIENT_SUCCESS; pa_threaded_mainloop_lock(mainLoop); - retVal = pa_stream_get_time(paStream, &timeStamp); + const pa_timing_info *info = pa_stream_get_timing_info(paStream); + if (!info) { + retVal = AUDIO_CLIENT_ERR; + } else { + if(eAudioClientType == AUDIO_SERVICE_CLIENT_PLAYBACK) { + timeStamp = pa_bytes_to_usec(info->write_index, &sampleSpec); + } else if(eAudioClientType == AUDIO_SERVICE_CLIENT_RECORD) { + timeStamp = pa_bytes_to_usec(info->read_index, &sampleSpec); + } + } pa_threaded_mainloop_unlock(mainLoop); - if (retVal >= 0) - return AUDIO_CLIENT_SUCCESS; - else - return AUDIO_CLIENT_ERR; + return retVal; } int32_t AudioServiceClient::GetAudioLatency(uint64_t &latency) -- Gitee