Changed the pulse spreading rotations so that the number of iterations is
[opus.git] / libcelt / rate.h
index 4ec1a73..414b9a2 100644 (file)
 #ifndef RATE_H
 #define RATE_H
 
-struct alloc_data {
-   const CELTMode *mode;
-   int len;
-   const int *bands;
-   int **bits;
-};
-void alloc_init(struct alloc_data *alloc, const CELTMode *m);
+/** Computes a cache of the pulses->bits mapping in each band */
+void compute_alloc_cache(CELTMode *m);
 
-void alloc_clear(struct alloc_data *alloc);
-
-
-int compute_allocation(const struct alloc_data *alloc, int *offsets, int total, int *pulses);
+/** Compute the pulse allocation, i.e. how many pulses will go in each
+  * band. 
+ @param m mode
+ @param offsets Requested increase or decrease in the number of bits for
+                each band
+ @param total Number of bands
+ @param pulses Number of pulses per band (returned)
+ @return Total number of bits allocated
+*/
+int compute_allocation(const CELTMode *m, int *offsets, int total, int *pulses);
 
 
 #endif