diff --git a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c index 1afd27fdb85f6bcc251d0ce49382d2bda0769416..938fe7288edf3f36a5250ddb162497ef8b058d5a 100644 --- a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c +++ b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c @@ -220,20 +220,21 @@ static void FreeThread(struct Userdata *u) pa_thread_free(u->thread); } - pa_memchunk chunk; - int32_t code = 0; - int32_t missedMsgqNum = 0; - while (pa_asyncmsgq_get(u->CaptureMq, NULL, &code, NULL, NULL, &chunk, 0) == 0) { - pa_memblock_unref(chunk.memblock); - pa_asyncmsgq_done(u->CaptureMq, 0); - missedMsgqNum++; - } - if (missedMsgqNum > 0) { - AUDIO_ERR_LOG("OS_ProcessCapData missed message num: %{public}u", missedMsgqNum); - } - if (u->CaptureMq) { + pa_memchunk chunk; + int32_t code = 0; + int32_t missedMsgqNum = 0; + while (pa_asyncmsgq_get(u->CaptureMq, NULL, &code, NULL, NULL, &chunk, 0) == 0) { + pa_memblock_unref(chunk.memblock); + pa_asyncmsgq_done(u->CaptureMq, 0); + missedMsgqNum++; + } + if (missedMsgqNum > 0) { + AUDIO_ERR_LOG("OS_ProcessCapData missed message num: %{public}u", missedMsgqNum); + } pa_asyncmsgq_unref(u->CaptureMq); + } else { + AUDIO_ERR_LOG("CaptureMq is null"); } pa_thread_mq_done(&u->threadMq); @@ -1222,6 +1223,12 @@ int32_t CreateCaptureDataThread(pa_module *m, struct Userdata *u) pa_atomic_store(&u->captureFlag, 0); pa_atomic_store(&u->quitCaptureFlag, 0); + + if (!(u->CaptureMq = pa_asyncmsgq_new(0))) { + AUDIO_ERR_LOG("Failed to create u->CaptureMq"); + return -1; + } + u->eventFd = eventfd(0, EFD_NONBLOCK); u->rtpollItem = pa_rtpoll_item_new(u->rtpoll, PA_RTPOLL_NEVER, 1); struct pollfd *pollFd = pa_rtpoll_item_get_pollfd(u->rtpollItem, NULL); @@ -1239,10 +1246,6 @@ int32_t CreateCaptureDataThread(pa_module *m, struct Userdata *u) AUDIO_ERR_LOG("threadCapMq init failed."); return -1; } - if (!(u->CaptureMq = pa_asyncmsgq_new(0))) { - AUDIO_ERR_LOG("Failed to create u->CaptureMq"); - return -1; - } if (!(u->threadCap = pa_thread_new("OS_CaptureData", ThreadCaptureData, u))) { AUDIO_ERR_LOG("Failed to create capture-data thread!"); diff --git a/services/audio_service/BUILD.gn b/services/audio_service/BUILD.gn index 000ba4072af9a51259f1cd3cbb72d7c5971ff92f..b4594249e50a09c3f07221c709b297babc13c5a2 100644 --- a/services/audio_service/BUILD.gn +++ b/services/audio_service/BUILD.gn @@ -460,11 +460,6 @@ audio_ohos_library("audio_service") { "../../frameworks/native/playbackcapturer:playback_capturer", ] - if (audio_framework_feature_offline_effect) { - public_deps = - [ "../../frameworks/native/offlineaudioeffect:offline_audio_effect" ] - } - external_deps = [ "ability_base:want", "access_token:libaccesstoken_sdk", @@ -488,6 +483,13 @@ audio_ohos_library("audio_service") { public_external_deps = [ "libxml2:libxml2" ] defines = [] + + if (audio_framework_feature_offline_effect) { + public_deps = + [ "../../frameworks/native/offlineaudioeffect:offline_audio_effect" ] + defines += [ "FEATURE_OFFLINE_EFFECT" ] + } + if (audio_framework_config_policy_enable) { defines += [ "USE_CONFIG_POLICY" ] external_deps += [ "config_policy:configpolicy_util" ]