diff options
Diffstat (limited to 'libaf')
-rw-r--r-- | libaf/af.c | 23 | ||||
-rw-r--r-- | libaf/af.h | 20 |
2 files changed, 7 insertions, 36 deletions
diff --git a/libaf/af.c b/libaf/af.c index 5eda4ff5b1..b86bfe3d14 100644 --- a/libaf/af.c +++ b/libaf/af.c @@ -526,19 +526,9 @@ int af_lencalc(double mul, af_data_t* d) return d->len * mul + t + 1; } -/* Calculate how long the input IN to the filters should be to produce - a certain output length OUT but with the following three constraints: - 1. IN <= max_insize, where max_insize is the maximum possible input - block length - 2. OUT <= max_outsize, where max_outsize is the maximum possible - output block length - 3. If possible OUT >= len. - Return -1 in case of error */ -int af_calc_insize_constrained(af_stream_t* s, int len, - int max_outsize,int max_insize) +// Calculate average ratio of filter output size to input size +double af_calc_filter_multiplier(af_stream_t* s) { - int t = s->input.bps*s->input.nch; - int in = 0; af_instance_t* af=s->first; double mul = 1; // Iterate through all filters and calculate total multiplication factor @@ -547,14 +537,7 @@ int af_calc_insize_constrained(af_stream_t* s, int len, af=af->next; }while(af); - if (len > max_outsize) - len = max_outsize; - - in = len / t / mul * t; - - if(in>max_insize) in=t*(max_insize/t); - - return in; + return mul; } /* Calculate the total delay [ms] caused by the filters */ diff --git a/libaf/af.h b/libaf/af.h index 428f53ff6e..4c983cb6e4 100644 --- a/libaf/af.h +++ b/libaf/af.h @@ -189,22 +189,10 @@ af_data_t* af_play(af_stream_t* s, af_data_t* data); af_instance_t *af_control_any_rev (af_stream_t* s, int cmd, void* arg); /** - * \brief calculate required input length for desired output size - * \param len desired minimum output length - * \param max_outsize maximum output length - * \param max_insize maximum input length - * \return input length or -1 on error - * - Calculate how long the input IN to the filters should be to produce - a certain output length OUT but with the following three constraints: - 1. IN <= max_insize, where max_insize is the maximum possible input - block length - 2. OUT <= max_outsize, where max_outsize is the maximum possible - output block length - 3. If possible OUT >= len. - */ -int af_calc_insize_constrained(af_stream_t* s, int len, - int max_outsize,int max_insize); + * \brief calculate average ratio of filter output lenth to input length + * \return the ratio + */ +double af_calc_filter_multiplier(af_stream_t* s); /** * \brief Calculate the total delay caused by the filters |