preprocess: Fix crash when starting with speex and webrtc aec both 22/295322/3 accepted/tizen/unified/20230710.013120
authorJaechul Lee <jcsing.lee@samsung.com>
Wed, 5 Jul 2023 07:03:43 +0000 (16:03 +0900)
committerJaechul Lee <jcsing.lee@samsung.com>
Thu, 6 Jul 2023 01:04:55 +0000 (10:04 +0900)
Using two aec processors at the same time should be banned.

[Version] 15.0.48
[Issue Type] Bug

Change-Id: Ic03ca99ca42475df945afb414df6dfe46cf9b4d4
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
packaging/pulseaudio-modules-tizen.spec
src/preprocessor/module-tizenaudio-preprocessor.c
src/preprocessor/processor.c

index a3c61f9..559a438 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:             pulseaudio-modules-tizen
 Summary:          Pulseaudio modules for Tizen
-Version:          15.0.47
+Version:          15.0.48
 Release:          0
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
index 32ae3a8..7c7e8be 100644 (file)
@@ -353,7 +353,7 @@ static pa_processor_holder *build_processor_holder(pa_core *core, pa_source_outp
             /* holder -> reference -> processor */
             pa_processor_attach_reference(processor, reference);
             if (pa_processor_holder_connect_reference(holder, reference) < 0) {
-                pa_processor_reference_free(reference);
+                /* reference will be freed in pa_processor_free */
                 pa_processor_free(processor);
                 pa_log_error("Failed to connect holder to reference");
                 goto fail;
index b05bb70..73ac36e 100644 (file)
@@ -160,10 +160,10 @@ pa_processor *pa_processor_new(pa_core *core,
                                                     format, processor->process_frames);
 
     if (!processor->audio_effect) {
-        pa_log_error("Failed to create audio effect. audio_effect_method(%d), "
+        pa_log_error("Failed to create audio effect. audio_effect_method(%s), "
                         "rate(%d), ch(%d), format(%d), frames(%zu)",
-                        audio_effect_method, ss->rate, ss->channels,
-                        format, processor->process_frames);
+                        pa_processor_method_str(audio_effect_method),
+                        ss->rate, ss->channels, format, processor->process_frames);
         goto fail;
     }
 
@@ -192,12 +192,12 @@ pa_processor *pa_processor_new(pa_core *core,
     pa_memblock_unref(silence.memblock);
 
     pa_log_info("Created processor. memblockq rate(%d), channels(%d), "
-                "process_msec(%u), process_bytes(%zu), method(%d)",
+                "process_msec(%u), process_bytes(%zu), method(%s)",
                             processor->ss.rate,
                             processor->ss.channels,
                             process_msec,
                             pa_usec_to_bytes(processor->process_usec, &processor->ss),
-                            method);
+                            pa_processor_method_str(method));
 
     debug_open_file(processor);
 
@@ -211,9 +211,9 @@ fail:
 
 void pa_processor_free(pa_processor *processor) {
     pa_assert(processor);
-    pa_assert(processor->audio_effect);
 
-    audio_effect_destroy(processor->audio_effect);
+    if (processor->audio_effect)
+        audio_effect_destroy(processor->audio_effect);
 
     if (processor->result_memblockq)
         pa_memblockq_free(processor->result_memblockq);