Commit 76f8d3c8 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '9d4da474'

* commit '9d4da474':
  lls: move to the private namespace

Conflicts:
	libavutil/version.h
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents fb4b1607 9d4da474
......@@ -207,7 +207,7 @@ int ff_lpc_calc_coefs(LPCContext *s,
lpc_passes = 2;
for(pass=0; pass<lpc_passes; pass++){
av_init_lls(&m[pass&1], max_order);
avpriv_init_lls(&m[pass&1], max_order);
weight=0;
for(i=max_order; i<blocksize; i++){
......@@ -216,7 +216,7 @@ int ff_lpc_calc_coefs(LPCContext *s,
if(pass){
double eval, inv, rinv;
eval= av_evaluate_lls(&m[(pass-1)&1], var+1, max_order-1);
eval= avpriv_evaluate_lls(&m[(pass-1)&1], var+1, max_order-1);
eval= (512>>pass) + fabs(eval - var[0]);
inv = 1/eval;
rinv = sqrt(inv);
......@@ -226,9 +226,9 @@ int ff_lpc_calc_coefs(LPCContext *s,
}else
weight++;
av_update_lls(&m[pass&1], var, 1.0);
avpriv_update_lls(&m[pass&1], var, 1.0);
}
av_solve_lls(&m[pass&1], 0.001, 0);
avpriv_solve_lls(&m[pass&1], 0.001, 0);
}
for(i=0; i<max_order; i++){
......
......@@ -30,13 +30,13 @@
#include "lls.h"
void av_init_lls(LLSModel *m, int indep_count)
void avpriv_init_lls(LLSModel *m, int indep_count)
{
memset(m, 0, sizeof(LLSModel));
m->indep_count = indep_count;
}
void av_update_lls(LLSModel *m, double *var, double decay)
void avpriv_update_lls(LLSModel *m, double *var, double decay)
{
int i, j;
......@@ -48,7 +48,7 @@ void av_update_lls(LLSModel *m, double *var, double decay)
}
}
void av_solve_lls(LLSModel *m, double threshold, int min_order)
void avpriv_solve_lls(LLSModel *m, double threshold, int min_order)
{
int i, j, k;
double (*factor)[MAX_VARS + 1] = (void *) &m->covariance[1][0];
......@@ -105,7 +105,7 @@ void av_solve_lls(LLSModel *m, double threshold, int min_order)
}
}
double av_evaluate_lls(LLSModel *m, double *param, int order)
double avpriv_evaluate_lls(LLSModel *m, double *param, int order)
{
int i;
double out = 0;
......@@ -116,6 +116,25 @@ double av_evaluate_lls(LLSModel *m, double *param, int order)
return out;
}
#ifndef FF_API_LLS_PRIVATE
void av_init_lls(LLSModel *m, int indep_count)
{
return avpriv_init_lls(m, indep_count);
}
void av_update_lls(LLSModel *m, double *param, double decay)
{
return avpriv_update_lls(m, param, decay);
}
void av_solve_lls(LLSModel *m, double threshold, int min_order)
{
return avpriv_solve_lls(m, threshold, min_order);
}
double av_evaluate_lls(LLSModel *m, double *param, int order)
{
return avpriv_evaluate_lls(m, param, order);
}
#endif
#ifdef TEST
#include <stdio.h>
......@@ -129,7 +148,7 @@ int main(void)
AVLFG lfg;
av_lfg_init(&lfg, 1);
av_init_lls(&m, 3);
avpriv_init_lls(&m, 3);
for (i = 0; i < 100; i++) {
double var[4];
......@@ -139,10 +158,10 @@ int main(void)
var[1] = var[0] + av_lfg_get(&lfg) / (double) UINT_MAX - 0.5;
var[2] = var[1] + av_lfg_get(&lfg) / (double) UINT_MAX - 0.5;
var[3] = var[2] + av_lfg_get(&lfg) / (double) UINT_MAX - 0.5;
av_update_lls(&m, var, 0.99);
av_solve_lls(&m, 0.001, 0);
avpriv_update_lls(&m, var, 0.99);
avpriv_solve_lls(&m, 0.001, 0);
for (order = 0; order < 3; order++) {
eval = av_evaluate_lls(&m, var + 1, order);
eval = avpriv_evaluate_lls(&m, var + 1, order);
printf("real:%9f order:%d pred:%9f var:%f coeffs:%f %9f %9f\n",
var[0], order, eval, sqrt(m.variance[order] / (i + 1)),
m.coeff[order][0], m.coeff[order][1],
......
......@@ -37,9 +37,15 @@ typedef struct LLSModel {
int indep_count;
} LLSModel;
void avpriv_init_lls(LLSModel *m, int indep_count);
void avpriv_update_lls(LLSModel *m, double *param, double decay);
void avpriv_solve_lls(LLSModel *m, double threshold, int min_order);
double avpriv_evaluate_lls(LLSModel *m, double *param, int order);
#ifndef FF_API_LLS_PRIVATE
void av_init_lls(LLSModel *m, int indep_count);
void av_update_lls(LLSModel *m, double *param, double decay);
void av_solve_lls(LLSModel *m, double threshold, int min_order);
double av_evaluate_lls(LLSModel *m, double *param, int order);
#endif
#endif /* AVUTIL_LLS_H */
......@@ -129,6 +129,10 @@
#ifndef FF_API_SAMPLES_UTILS_RETURN_ZERO
#define FF_API_SAMPLES_UTILS_RETURN_ZERO (LIBAVUTIL_VERSION_MAJOR < 53)
#endif
#ifndef FF_API_LLS_PRIVATE
#define FF_API_LLS_PRIVATE (LIBAVUTIL_VERSION_MAJOR < 53)
#endif
/**
* @}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment