コード例 #1
0
ファイル: iirfilter-test.c プロジェクト: AVLeo/libav
int main(void)
{
    struct FFIIRFilterCoeffs *fcoeffs = NULL;
    struct FFIIRFilterState  *fstate  = NULL;
    float cutoff_coeff = 0.4;
    int16_t x[SIZE], y[SIZE];
    int i;

    fcoeffs = ff_iir_filter_init_coeffs(NULL, FF_FILTER_TYPE_BUTTERWORTH,
                                        FF_FILTER_MODE_LOWPASS, FILT_ORDER,
                                        cutoff_coeff, 0.0, 0.0);
    fstate  = ff_iir_filter_init_state(FILT_ORDER);

    for (i = 0; i < SIZE; i++)
        x[i] = lrint(0.75 * INT16_MAX * sin(0.5 * M_PI * i * i / SIZE));

    ff_iir_filter(fcoeffs, fstate, SIZE, x, 1, y, 1);

    for (i = 0; i < SIZE; i++)
        printf("%6d %6d\n", x[i], y[i]);

    ff_iir_filter_free_coeffs(fcoeffs);
    ff_iir_filter_free_state(fstate);
    return 0;
}
コード例 #2
0
ファイル: psymodel.c プロジェクト: Vadiza/sage-3.5b
av_cold void ff_psy_preprocess_end(struct FFPsyPreprocessContext *ctx)
{
  int i;
  ff_iir_filter_free_coeffs(ctx->fcoeffs);
  if (ctx->fstate)
    for (i = 0; i < ctx->avctx->channels; i++)
      ff_iir_filter_free_state(ctx->fstate[i]);
  av_freep(&ctx->fstate);
  av_free(ctx);
}