From: Jaechul Lee Date: Wed, 20 Sep 2023 08:33:27 +0000 (+0900) Subject: preprocess: Set actual process usec when a reference structure is created X-Git-Tag: accepted/tizen/unified/20231011.153126~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=930bdbfc48557c53dcf9c000ee89bfefa15104df;p=platform%2Fcore%2Fmultimedia%2Fpulseaudio-modules-tizen.git preprocess: Set actual process usec when a reference structure is created process_usec could be changed after creating processor because plugins could have its own constraint framesize. If there is changes, reference process_usec must be changed as well. [Version] 15.0.56 [Issue Type] Update Change-Id: I4d5111ec62cfaf9e98828909da9b9b718ed08fbc Signed-off-by: Jaechul Lee --- diff --git a/packaging/pulseaudio-modules-tizen.spec b/packaging/pulseaudio-modules-tizen.spec index ff07d73..41cc8f4 100644 --- a/packaging/pulseaudio-modules-tizen.spec +++ b/packaging/pulseaudio-modules-tizen.spec @@ -2,7 +2,7 @@ Name: pulseaudio-modules-tizen Summary: Pulseaudio modules for Tizen -Version: 15.0.55 +Version: 15.0.56 Release: 0 Group: Multimedia/Audio License: LGPL-2.1+ diff --git a/src/preprocessor/module-tizenaudio-preprocessor.c b/src/preprocessor/module-tizenaudio-preprocessor.c index 7e0e343..c8369c1 100644 --- a/src/preprocessor/module-tizenaudio-preprocessor.c +++ b/src/preprocessor/module-tizenaudio-preprocessor.c @@ -303,6 +303,7 @@ static pa_processor_holder *build_processor_holder(pa_core *core, pa_source_outp while ((processor_str = pa_split(processors_list, ",", &state))) { pa_processor *processor; pa_processor_method_t method; + pa_usec_t actual_process_usec; if (pa_processor_method_enum(processor_str, &method) < 0) { pa_log_error("Failed to get method. processor_str(%s)", processor_str); @@ -316,6 +317,8 @@ static pa_processor_holder *build_processor_holder(pa_core *core, pa_source_outp goto fail; } + actual_process_usec = pa_processor_get_process_usec(processor); + /* reference */ if (pa_processor_method_need_reference_structure(method)) { pa_sample_spec request_ss; @@ -341,8 +344,10 @@ static pa_processor_holder *build_processor_holder(pa_core *core, pa_source_outp data->flags |= PA_SOURCE_OUTPUT_NO_REMAP; } + /* process_usec could be changed after creating processor. + * it depends on each plugin */ reference = pa_processor_reference_new_custom(core, sink, &sink->sample_spec, - &request_ss, process_usec, + &request_ss, actual_process_usec, PROCESSOR_REFERENCE_METHOD_NONE); if (!reference) { pa_processor_free(processor); @@ -362,8 +367,10 @@ static pa_processor_holder *build_processor_holder(pa_core *core, pa_source_outp pa_processor_holder_register_processor_sequencial(holder, processor); - pa_log_info("processor was created. processor(%s), process_msec(%" PRIu64 "ms)", - processor_str, process_usec / PA_USEC_PER_MSEC); + pa_log_info("processor was created. processor(%s), process_msec(%" PRIu64 "ms->%" PRIu64 "ms)", + processor_str, + process_usec / PA_USEC_PER_MSEC, + actual_process_usec / PA_USEC_PER_MSEC); pa_xfree(processor_str); } diff --git a/src/preprocessor/processor.c b/src/preprocessor/processor.c index f61a666..8e072f3 100644 --- a/src/preprocessor/processor.c +++ b/src/preprocessor/processor.c @@ -242,6 +242,12 @@ size_t pa_processor_get_process_bytes(pa_processor *p) { return p->process_bytes; } +pa_usec_t pa_processor_get_process_usec(pa_processor *p) { + pa_assert(p); + + return p->process_usec; +} + /* Do not touch chunk value */ int pa_processor_process(pa_processor *processor, pa_memchunk *chunk) { int r = -1; diff --git a/src/preprocessor/processor.h b/src/preprocessor/processor.h index c4bb54f..a4f7152 100644 --- a/src/preprocessor/processor.h +++ b/src/preprocessor/processor.h @@ -66,6 +66,7 @@ void pa_processor_free(pa_processor *p); void pa_processor_reset(pa_processor *p); pa_memblockq *pa_processor_get_result_memblockq(pa_processor *processor); size_t pa_processor_get_process_bytes(pa_processor *p); +pa_usec_t pa_processor_get_process_usec(pa_processor *p); /* reference */ void pa_processor_attach_reference(pa_processor *processor, pa_processor_reference *reference);