-
Notifications
You must be signed in to change notification settings - Fork 349
Description
Is your feature request related to a problem? Please describe.
Yes, with timer based scheduling the number of frames per copy() varies. Then as chain reaction the component processing MCPS max can be temporarily a lot larger than average when scheduled, even double.
Describe the solution you'd like
Pass from topology to pipeline a limit for frames count vs. nominal. With e.g. +10% allowed the component could process max 52 frames when nominal is 48 (for 48 kHz audio stream scheduled every 1 ms). The components receive the adjusted limit from aligned copy limits helper function. Combining them into audio component framework makes sense.
Describe alternatives you've considered
Some components implement a version of this but it is better to have a common generic solution. It could be also updated later to be more intelligent and overall processing load aware.
Additional context
PR #5339 contained a draft example of success of processing time limiting (see the processing time plots without and with limit). It prevented the FIR processing time for 1ms of data to exceed 1 ms time. This issue could be demonstrated only in a very high load case.