# HG changeset patch # User vitor # Date 1216870122 0 # Node ID f8e1a1ef4a56f55f03dd2efb38b2f7ea08f98fd6 # Parent d74804a3a18bdc51bbcbb047719b7a1e0c20f2e2 Add comments to do_hybrid_window() diff -r d74804a3a18b -r f8e1a1ef4a56 ra288.c --- a/ra288.c Thu Jul 24 03:28:01 2008 +0000 +++ b/ra288.c Thu Jul 24 03:28:42 2008 +0000 @@ -137,6 +137,20 @@ } +/** + * Hybrid window filtering. See blocks 36 and 49 of the G.728 specification. + * + * @param order the order of the filter + * @param n the length of the input + * @param non_rec the number of non recursive samples + * @param out the filter output + * @param in pointer to the input of the filter + * @param hist pointer to the input history of the filter. It is updated by + * this function. + * @param out pointer to the non recursive part of the output + * @param out2 pointer to the recursive part of the output + * @param window pointer to the windowing function table + */ static void do_hybrid_window(int order, int n, int non_rec, const float *in, float *out, float *hist, float *out2, const float *window) @@ -146,7 +160,7 @@ float buffer2[37]; float work[111]; - /* rotate and multiply */ + /* update history */ memmove(hist , hist + n, (order + non_rec)*sizeof(*hist)); memcpy (hist + order + non_rec, in , n *sizeof(*hist));