#ifndef _SINEWIN_TABLEGEN_H_830a0391_ #define _SINEWIN_TABLEGEN_H_830a0391_ /* * This file was stolen from ffmpeg and modified for usability here. * The original is * * Copyright (c) 2009 Reimar Döffinger * * This version is a derivative work of that version. It is not free * software; it is licensed under the GNU Lesser General Public * License version 2.1, which places nontrivial restrictions on what * may be done with it. (I'm not terribly happy about that, but for * my purposes accepting LGPL-infected code is a lower price than * reimplementing it all myself.) * * The LGPL v2.1 as distributed with ffmpeg is in the accompanying file * `LGPL-v2.1'. */ #include "config.h" #if !CONFIG_HARDCODED_TABLES SINETABLE( 32); SINETABLE( 64); SINETABLE( 128); SINETABLE( 256); SINETABLE( 512); SINETABLE(1024); SINETABLE(2048); SINETABLE(4096); SINETABLE(8192); #else #include "sinewin_tables.h" #endif SINETABLE_CONST float * const ff_sine_windows[] = { NULL, NULL, NULL, NULL, NULL, // unused ff_sine_32 , ff_sine_64 , ff_sine_128, ff_sine_256, ff_sine_512, ff_sine_1024, ff_sine_2048, ff_sine_4096, ff_sine_8192 }; // Generate a sine window. av_cold void ff_sine_window_init(float *window, int n) { int i; for(i = 0; i < n; i++) window[i] = sinf((i + 0.5) * (M_PI / (2.0 * n))); } av_cold void ff_init_ff_sine_windows(int index) { assert(index >= 0 && index < FF_ARRAY_ELEMS(ff_sine_windows)); #if !CONFIG_HARDCODED_TABLES ff_sine_window_init(ff_sine_windows[index], 1 << index); #endif } #endif