From 6ba78ae97493a45e91643c6ef2100ecd7b05591b Mon Sep 17 00:00:00 2001 From: Seungbae Shin Date: Fri, 15 Dec 2023 17:47:52 +0900 Subject: [PATCH] source-output: add source-output dump - revise logging format for sink-input dump also - adjust default empty-pop timeout threshold from 10s -> 60s Change-Id: I45a0f282a2d5ecb3bddaeb1a798e3014a061ffe6 --- packaging/pulseaudio.spec | 2 +- src/daemon/daemon-conf.c | 2 +- src/pulsecore/core.c | 25 ++++++++++++++++++++++--- src/pulsecore/core.h | 1 + src/pulsecore/sink-input.c | 18 +++++++++--------- src/pulsecore/sink-input.h | 2 +- src/pulsecore/source-output.c | 16 ++++++++++++++++ src/pulsecore/source-output.h | 4 ++++ 8 files changed, 55 insertions(+), 15 deletions(-) diff --git a/packaging/pulseaudio.spec b/packaging/pulseaudio.spec index dafbe64..57c1c2b 100644 --- a/packaging/pulseaudio.spec +++ b/packaging/pulseaudio.spec @@ -4,7 +4,7 @@ Name: pulseaudio Summary: Improved Linux sound server Version: 15.0 -Release: 27 +Release: 28 Group: Multimedia/Audio License: LGPL-2.1 URL: http://pulseaudio.org diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index f7fe67e..7c6da82 100644 --- a/src/daemon/daemon-conf.c +++ b/src/daemon/daemon-conf.c @@ -67,7 +67,7 @@ static const pa_daemon_conf default_conf = { .realtime_scheduling = true, .realtime_priority = 5, /* Half of JACK's default rtprio */ #ifdef TIZEN_EMPTY_POP - .empty_pop_threshold = 10, + .empty_pop_threshold = 60, #endif .disallow_module_loading = false, .disallow_exit = false, diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c index 35c3216..0d0983b 100644 --- a/src/pulsecore/core.c +++ b/src/pulsecore/core.c @@ -686,10 +686,29 @@ const char *pa_suspend_cause_to_string(pa_suspend_cause_t cause_bitfield, char b void pa_core_dump_sink_inputs(pa_core *core) { pa_sink_input *si = NULL; uint32_t idx = 0; + unsigned int i = 0; + + if (pa_idxset_isempty(core->sink_inputs)) { + pa_log_warn("No sink-input to dump"); + return; + } - pa_log_warn(">> Start dumping (%u) sink-inputs", pa_idxset_size(core->sink_inputs)); PA_IDXSET_FOREACH(si, core->sink_inputs, idx) - pa_sink_input_dump_info(si); - pa_log_warn("<< Dump finished!"); + pa_sink_input_dump_info(si, ++i, pa_idxset_size(core->sink_inputs)); } + +void pa_core_dump_source_outputs(pa_core *core) { + pa_source_output *so = NULL; + uint32_t idx = 0; + unsigned int i = 0; + + if (pa_idxset_isempty(core->source_outputs)) { + pa_log_warn("No source-output to dump"); + return; + } + + PA_IDXSET_FOREACH(so, core->source_outputs, idx) + pa_source_output_dump_info(so, ++i, pa_idxset_size(core->source_outputs)); +} + #endif diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h index 1a2c5eb..43f2e34 100644 --- a/src/pulsecore/core.h +++ b/src/pulsecore/core.h @@ -308,6 +308,7 @@ void pa_core_move_streams_to_newly_available_preferred_source(pa_core *c, pa_sou #ifdef __TIZEN__ void pa_core_dump_sink_inputs(pa_core *core); +void pa_core_dump_source_outputs(pa_core *core); #endif #endif diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index acd39b0..6ae10dc 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -2935,17 +2935,17 @@ void pa_sink_input_set_preferred_sink(pa_sink_input *i, pa_sink *s) { } #ifdef __TIZEN__ -void pa_sink_input_dump_info(pa_sink_input *i) { +void pa_sink_input_dump_info(pa_sink_input *i, unsigned int iteration, unsigned int total) { pa_assert(i); - pa_log_warn("#%4u: client(%5d), sink(%2u), state(%d), muted(%d), app(pid:%s, org:%s, binary:%s), media(name:%s, role:%s)", - i->index, + pa_log_warn(" #(%2u/%2u), index(%4u), client(%5d), sink(%2u), state(%d), muted(%s)" + ", app(%s, %s), media(name:%s, role:%s)", + iteration, total, i->index, i->client ? (int)i->client->index : -1, - i->sink->index, i->state, i->muted, - pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_PROCESS_ID), - pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_PROCESS_ID_ORIGIN), - pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_PROCESS_BINARY), - pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME), - pa_proplist_gets(i->proplist, PA_PROP_MEDIA_ROLE)); + i->sink->index, i->state, pa_yes_no(i->muted), + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_PROCESS_ID)), + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_APPLICATION_PROCESS_BINARY)), + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_MEDIA_NAME)), + pa_strnull(pa_proplist_gets(i->proplist, PA_PROP_MEDIA_ROLE))); } #endif diff --git a/src/pulsecore/sink-input.h b/src/pulsecore/sink-input.h index 9d8271a..bc8a70a 100644 --- a/src/pulsecore/sink-input.h +++ b/src/pulsecore/sink-input.h @@ -510,7 +510,7 @@ void pa_sink_input_set_preferred_sink(pa_sink_input *i, pa_sink *s); #ifdef __TIZEN__ void pa_sink_input_update_empty_pop(pa_sink_input *i, size_t length, bool *is_timeout); -void pa_sink_input_dump_info(pa_sink_input *i); +void pa_sink_input_dump_info(pa_sink_input *i, unsigned int iteration, unsigned int total); #endif #define pa_sink_input_assert_io_context(s) \ diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 43fe0b4..38f2887 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -2099,3 +2099,19 @@ void pa_source_output_set_preferred_source(pa_source_output *o, pa_source *s) { pa_source_output_move_to(o, o->core->default_source, false); } } + +#ifdef __TIZEN__ +void pa_source_output_dump_info(pa_source_output *o, unsigned int iteration, unsigned int total) { + pa_assert(o); + + pa_log_warn(" #(%2u/%2u), index(%4u), client(%5d), source(%2u), state(%d), muted(%s)" + ", app(%s, %s), media(name:%s, role:%s)", + iteration, total, o->index, + o->client ? (int)o->client->index : -1, + o->source->index, o->state, pa_yes_no(o->muted), + pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_APPLICATION_PROCESS_ID)), + pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_APPLICATION_PROCESS_BINARY)), + pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_MEDIA_NAME)), + pa_strnull(pa_proplist_gets(o->proplist, PA_PROP_MEDIA_ROLE))); +} +#endif \ No newline at end of file diff --git a/src/pulsecore/source-output.h b/src/pulsecore/source-output.h index b10abc1..ead219d 100644 --- a/src/pulsecore/source-output.h +++ b/src/pulsecore/source-output.h @@ -427,6 +427,10 @@ void pa_source_output_set_reference_ratio(pa_source_output *o, const pa_cvolume void pa_source_output_set_preferred_source(pa_source_output *o, pa_source *s); +#ifdef __TIZEN__ +void pa_source_output_dump_info(pa_source_output *o, unsigned int iteration, unsigned int total); +#endif + #define pa_source_output_assert_io_context(s) \ pa_assert(pa_thread_mq_get() || !PA_SOURCE_OUTPUT_IS_LINKED((s)->state)) -- 2.7.4