From cd78f335919fa329157149d992c99b0ba9c289dd Mon Sep 17 00:00:00 2001 From: s30056362 Date: Mon, 28 Oct 2024 09:41:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?hdisource=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: s30056362 --- .../pulseaudio/modules/hdi/hdi_source.c | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c index 0dcbd8d147..a9ee9d1c1b 100644 --- a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c +++ b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c @@ -261,7 +261,7 @@ static int SourceProcessMsg(pa_msgobject *o, int code, void *data, int64_t offse { AUTO_CTRACE("hdi_source::SourceProcessMsg code: %d", code); struct Userdata *u = PA_SOURCE(o)->userdata; - pa_assert(u); + CHECK_AND_RETURN_RET_LOG(u != NULL, 0, "userdata is null"); switch (code) { case PA_SOURCE_MESSAGE_GET_LATENCY: { @@ -281,9 +281,9 @@ static int SourceProcessMsg(pa_msgobject *o, int code, void *data, int64_t offse static int SourceSetStateInIoThreadCb(pa_source *s, pa_source_state_t newState, pa_suspend_cause_t newSuspendCause) { - struct Userdata *u = NULL; - pa_assert(s); - pa_assert_se(u = s->userdata); + CHECK_AND_RETURN_RET_LOG(s != NULL, 0, "source is null"); + struct Userdata *u = s->userdata; + CHECK_AND_RETURN_RET_LOG(u != NULL, 0, "userdata is null"); AUDIO_INFO_LOG("Source[%{public}s] state change:[%{public}s]-->[%{public}s]", GetDeviceClass(u->sourceAdapter->deviceClass), GetStateInfo(s->thread_info.state), GetStateInfo(newState)); @@ -328,9 +328,9 @@ static int SourceSetStateInIoThreadCb(pa_source *s, pa_source_state_t newState, static void PushData(pa_source_output *sourceOutput, pa_memchunk *chunk) { - pa_source_output_assert_ref(sourceOutput); + CHECK_AND_RETURN_LOG(sourceOutput != NULL, "sourceOutput is null"); pa_source_output_assert_io_context(sourceOutput); - pa_assert(chunk); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); AUDIO_DEBUG_LOG("chunk length: %{public}zu", chunk->length); if (!sourceOutput->thread_info.direct_on_input) { @@ -340,10 +340,10 @@ static void PushData(pa_source_output *sourceOutput, pa_memchunk *chunk) static void PostSourceData(pa_source *source, pa_source_output *sourceOutput, pa_memchunk *chunk) { - pa_source_assert_ref(source); + CHECK_AND_RETURN_LOG(source != NULL, "source is null"); pa_source_assert_io_context(source); pa_assert(PA_SOURCE_IS_LINKED(source->thread_info.state)); - pa_assert(chunk); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); if (source->thread_info.state == PA_SOURCE_SUSPENDED) { return; @@ -367,7 +367,7 @@ static void PostSourceData(pa_source *source, pa_source_output *sourceOutput, pa static void EnhanceProcess(const uint32_t sceneKeyCode, pa_memchunk *chunk) { - pa_assert(chunk); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); void *src = pa_memblock_acquire_chunk(chunk); AUDIO_DEBUG_LOG("chunk length: %{public}zu sceneKey: %{public}u", chunk->length, sceneKeyCode); pa_memblock_release(chunk->memblock); @@ -385,7 +385,7 @@ static void EnhanceProcess(const uint32_t sceneKeyCode, pa_memchunk *chunk) static void EnhanceProcessDefault(const uint32_t captureId, pa_memchunk *chunk) { - pa_assert(chunk); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); void *src = pa_memblock_acquire_chunk(chunk); AUDIO_DEBUG_LOG("chunk length: %{public}zu captureId: %{public}u", chunk->length, captureId); pa_memblock_release(chunk->memblock); @@ -403,10 +403,10 @@ static void EnhanceProcessDefault(const uint32_t captureId, pa_memchunk *chunk) static void EnhanceProcessAndPost(struct Userdata *u, const uint32_t sceneKeyCode, pa_memchunk *enhanceChunk) { - pa_assert(u); - pa_assert(enhanceChunk); + CHECK_AND_RETURN_LOG(u != NULL, "userdata is null"); + CHECK_AND_RETURN_LOG(enhanceChunk != NULL, "enhanceChunk is null"); pa_source *source = u->source; - pa_source_assert_ref(source); + CHECK_AND_RETURN_LOG(source != NULL, "source is null"); void *state = NULL; pa_source_output *sourceOutput; @@ -438,8 +438,8 @@ static void EnhanceProcessAndPost(struct Userdata *u, const uint32_t sceneKeyCod static void PostDataBypass(pa_source *source, pa_memchunk *chunk) { - pa_source_assert_ref(source); - pa_assert(chunk); + CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); void *state = NULL; pa_source_output *sourceOutput; while ((sourceOutput = pa_hashmap_iterate(source->thread_info.outputs, &state, NULL))) { @@ -519,9 +519,10 @@ static int GetCapturerFrameFromHdi(pa_memchunk *chunk, struct Userdata *u) uint64_t replyBytes = 0; void *p = NULL; - pa_assert(chunk->memblock); + CHECK_AND_RETURN_RET_LOG(chunk != NULL, 0, "chunk is null"); + CHECK_AND_RETURN_RET_LOG(chunk->memblock != NULL, 0, "chunk->memblock is null"); p = pa_memblock_acquire(chunk->memblock); - pa_assert(p); + CHECK_AND_RETURN_RET_LOG(p != NULL, 0, "p is null"); requestBytes = pa_memblock_get_length(chunk->memblock); HandleCaptureFrame(u, (char *)p, requestBytes, &replyBytes); pa_memblock_release(chunk->memblock); @@ -565,8 +566,8 @@ static int32_t SampleAlignment(const char *sceneKey, pa_memchunk *enhanceChunk, static void PostDataDefault(pa_source *source, pa_memchunk *chunk, struct Userdata *u) { - pa_source_assert_ref(source); - pa_assert(chunk); + CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); bool hasDefaultStream = false; pa_source_output *sourceOutput; -- Gitee From 14d17caece79651d8d001af085ce62db95220bf3 Mon Sep 17 00:00:00 2001 From: s30056362 Date: Mon, 28 Oct 2024 16:32:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=9D=E7=95=99=20pa=5Fsource=5Fassert?= =?UTF-8?q?=5Fref?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: s30056362 --- .../native/pulseaudio/modules/hdi/hdi_sink.c | 14 ++++++++++++++ .../native/pulseaudio/modules/hdi/hdi_source.c | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/frameworks/native/pulseaudio/modules/hdi/hdi_sink.c b/frameworks/native/pulseaudio/modules/hdi/hdi_sink.c index b3cdf3826b..2710401029 100644 --- a/frameworks/native/pulseaudio/modules/hdi/hdi_sink.c +++ b/frameworks/native/pulseaudio/modules/hdi/hdi_sink.c @@ -625,6 +625,7 @@ static unsigned SinkRenderPrimaryClusterCap(pa_sink *si, size_t *length, pa_mix_ pa_sink_input *sinkIn; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_RET_LOG(infoIn != NULL, 0, "infoIn is null"); @@ -769,6 +770,7 @@ static void SinkRenderPrimaryMixCap(pa_sink *si, size_t length, pa_mix_info *inf static void SinkRenderPrimaryInputsDropCap(pa_sink *si, pa_mix_info *infoIn, unsigned n, pa_memchunk *chunkIn) { CHECK_AND_RETURN_LOG(si != NULL, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_LOG(infoIn != NULL, "infoIn is null"); CHECK_AND_RETURN_LOG(chunkIn != NULL, "chunkIn is null"); @@ -812,6 +814,7 @@ static int32_t SinkRenderPrimaryPeekCap(pa_sink *si, pa_memchunk *chunkIn) size_t blockSizeMax; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -853,6 +856,7 @@ static int32_t SinkRenderPrimaryGetDataCap(pa_sink *si, pa_memchunk *chunkIn) size_t l; size_t d; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -906,6 +910,7 @@ static void InnerCapSinkInputsRewind(pa_sink *si, size_t length) AUTO_CTRACE("hdi_sink::InnerCapSinkInputsRewind:len:%zu", length); CHECK_AND_RETURN_LOG(si != NULL, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_sink_input *sinkIn = NULL; @@ -942,6 +947,7 @@ static void SinkRenderPrimaryInputsDrop(pa_sink *si, pa_mix_info *infoIn, unsign unsigned nUnreffed = 0; CHECK_AND_RETURN_LOG(si != NULL, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_LOG(chunkIn != NULL, "chunkIn is null"); CHECK_AND_RETURN_LOG(chunkIn->memblock != NULL, "chunkIn->memblock is null"); @@ -988,6 +994,7 @@ static void SinkRenderMultiChannelInputsDrop(pa_sink *si, pa_mix_info *infoIn, u unsigned nUnreffed = 0; CHECK_AND_RETURN_LOG(si != NULL, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_LOG(chunkIn != NULL, "chunkIn is null"); CHECK_AND_RETURN_LOG(chunkIn->memblock != NULL, "chunkIn->memblock is null"); @@ -1254,6 +1261,7 @@ static unsigned SinkRenderPrimaryCluster(pa_sink *si, size_t *length, pa_mix_inf size_t mixlength = *length; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "sink is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_RET_LOG(infoIn != NULL, 0, "infoIn is null"); @@ -1365,6 +1373,7 @@ static unsigned SinkRenderMultiChannelCluster(pa_sink *si, size_t *length, pa_mi size_t mixlength = *length; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); CHECK_AND_RETURN_RET_LOG(infoIn != NULL, 0, "infoIn is null"); @@ -1427,6 +1436,7 @@ static int32_t SinkRenderPrimaryPeek(pa_sink *si, pa_memchunk *chunkIn, const ch size_t blockSizeMax; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -1469,6 +1479,7 @@ static int32_t SinkRenderMultiChannelPeek(pa_sink *si, pa_memchunk *chunkIn) size_t blockSizeMax; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -1512,6 +1523,7 @@ static int32_t SinkRenderPrimaryGetData(pa_sink *si, pa_memchunk *chunkIn, const size_t l; size_t d; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -1553,6 +1565,7 @@ static int32_t SinkRenderMultiChannelGetData(pa_sink *si, pa_memchunk *chunkIn) size_t l; size_t d; CHECK_AND_RETURN_RET_LOG(si != NULL, 0, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_RET_LOG(chunkIn != NULL, 0, "chunkIn is null"); @@ -1966,6 +1979,7 @@ static void SinkRenderPrimary(pa_sink *si, size_t length, pa_memchunk *chunkIn) size_t blockSizeMax; CHECK_AND_RETURN_LOG(si != NULL, "si is null"); + pa_sink_assert_ref(si); pa_sink_assert_io_context(si); pa_assert(PA_SINK_IS_LINKED(si->thread_info.state)); CHECK_AND_RETURN_LOG(chunkIn != NULL, "chunkIn is null"); diff --git a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c index a9ee9d1c1b..f86d2da1e7 100644 --- a/frameworks/native/pulseaudio/modules/hdi/hdi_source.c +++ b/frameworks/native/pulseaudio/modules/hdi/hdi_source.c @@ -329,6 +329,7 @@ static int SourceSetStateInIoThreadCb(pa_source *s, pa_source_state_t newState, static void PushData(pa_source_output *sourceOutput, pa_memchunk *chunk) { CHECK_AND_RETURN_LOG(sourceOutput != NULL, "sourceOutput is null"); + pa_source_output_assert_ref(sourceOutput); pa_source_output_assert_io_context(sourceOutput); CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); AUDIO_DEBUG_LOG("chunk length: %{public}zu", chunk->length); @@ -341,6 +342,7 @@ static void PushData(pa_source_output *sourceOutput, pa_memchunk *chunk) static void PostSourceData(pa_source *source, pa_source_output *sourceOutput, pa_memchunk *chunk) { CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + pa_source_assert_ref(source); pa_source_assert_io_context(source); pa_assert(PA_SOURCE_IS_LINKED(source->thread_info.state)); CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); @@ -407,6 +409,7 @@ static void EnhanceProcessAndPost(struct Userdata *u, const uint32_t sceneKeyCod CHECK_AND_RETURN_LOG(enhanceChunk != NULL, "enhanceChunk is null"); pa_source *source = u->source; CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + pa_source_assert_ref(source); void *state = NULL; pa_source_output *sourceOutput; @@ -439,6 +442,7 @@ static void EnhanceProcessAndPost(struct Userdata *u, const uint32_t sceneKeyCod static void PostDataBypass(pa_source *source, pa_memchunk *chunk) { CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + pa_source_assert_ref(source); CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); void *state = NULL; pa_source_output *sourceOutput; @@ -567,6 +571,7 @@ static int32_t SampleAlignment(const char *sceneKey, pa_memchunk *enhanceChunk, static void PostDataDefault(pa_source *source, pa_memchunk *chunk, struct Userdata *u) { CHECK_AND_RETURN_LOG(source != NULL, "source is null"); + pa_source_assert_ref(source); CHECK_AND_RETURN_LOG(chunk != NULL, "chunk is null"); bool hasDefaultStream = false; -- Gitee