*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "dsputil.h"
-/*
- * init MDCT or IMDCT computation
+/**
+ * @file mdct.c
+ * MDCT/IMDCT transforms.
+ */
+
+/**
+ * init MDCT or IMDCT computation.
*/
-int mdct_init(MDCTContext *s, int nbits, int inverse)
+int ff_mdct_init(MDCTContext *s, int nbits, int inverse)
{
int n, n4, i;
float alpha;
s->nbits = nbits;
s->n = n;
n4 = n >> 2;
- s->tcos = malloc(n4 * sizeof(FFTSample));
+ s->tcos = av_malloc(n4 * sizeof(FFTSample));
if (!s->tcos)
goto fail;
- s->tsin = malloc(n4 * sizeof(FFTSample));
+ s->tsin = av_malloc(n4 * sizeof(FFTSample));
if (!s->tsin)
goto fail;
s->tcos[i] = -cos(alpha);
s->tsin[i] = -sin(alpha);
}
- if (fft_init(&s->fft, s->nbits - 2, inverse) < 0)
+ if (ff_fft_init(&s->fft, s->nbits - 2, inverse) < 0)
goto fail;
return 0;
fail:
* @param input N/2 samples
* @param tmp N/2 samples
*/
-void imdct_calc(MDCTContext *s, FFTSample *output,
- const FFTSample *input, FFTSample *tmp)
+void ff_imdct_calc(MDCTContext *s, FFTSample *output,
+ const FFTSample *input, FFTSample *tmp)
{
int k, n8, n4, n2, n, j;
const uint16_t *revtab = s->fft.revtab;
in1 += 2;
in2 -= 2;
}
- fft_calc(&s->fft, z);
+ ff_fft_calc(&s->fft, z);
/* post rotation + reordering */
/* XXX: optimize */
* @param out N/2 samples
* @param tmp temporary storage of N/2 samples
*/
-void mdct_calc(MDCTContext *s, FFTSample *out,
- const FFTSample *input, FFTSample *tmp)
+void ff_mdct_calc(MDCTContext *s, FFTSample *out,
+ const FFTSample *input, FFTSample *tmp)
{
int i, j, n, n8, n4, n2, n3;
FFTSample re, im, re1, im1;
CMUL(x[j].re, x[j].im, re, im, -tcos[n8 + i], tsin[n8 + i]);
}
- fft_calc(&s->fft, x);
-
+ ff_fft_calc(&s->fft, x);
+
/* post rotation */
for(i=0;i<n4;i++) {
re = x[i].re;
}
}
-void mdct_end(MDCTContext *s)
+void ff_mdct_end(MDCTContext *s)
{
av_freep(&s->tcos);
av_freep(&s->tsin);
- fft_end(&s->fft);
+ ff_fft_end(&s->fft);
}