source-output: add source-output dump 10/302910/4 accepted/tizen/unified/20231219.160336 accepted/tizen/unified/riscv/20231226.211825
authorSeungbae Shin <seungbae.shin@samsung.com>
Fri, 15 Dec 2023 08:47:52 +0000 (17:47 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 18 Dec 2023 07:18:03 +0000 (16:18 +0900)
- revise logging format for sink-input dump also
- adjust default empty-pop timeout threshold from 10s -> 60s

Change-Id: I45a0f282a2d5ecb3bddaeb1a798e3014a061ffe6

packaging/pulseaudio.spec
src/daemon/daemon-conf.c
src/pulsecore/core.c
src/pulsecore/core.h
src/pulsecore/sink-input.c
src/pulsecore/sink-input.h
src/pulsecore/source-output.c
src/pulsecore/source-output.h

index dafbe64..57c1c2b 100644 (file)
@@ -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
index f7fe67e..7c6da82 100644 (file)
@@ -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,
index 35c3216..0d0983b 100644 (file)
@@ -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
index 1a2c5eb..43f2e34 100644 (file)
@@ -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
index acd39b0..6ae10dc 100644 (file)
@@ -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
index 9d8271a..bc8a70a 100644 (file)
@@ -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) \
index 43fe0b4..38f2887 100644 (file)
@@ -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
index b10abc1..ead219d 100644 (file)
@@ -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))