/*1* audio resampling2* Copyright (c) 2004-2012 Michael Niedermayer <[email protected]>3*4* This file is part of FFmpeg.5*6* FFmpeg is free software; you can redistribute it and/or7* modify it under the terms of the GNU Lesser General Public8* License as published by the Free Software Foundation; either9* version 2.1 of the License, or (at your option) any later version.10*11* FFmpeg is distributed in the hope that it will be useful,12* but WITHOUT ANY WARRANTY; without even the implied warranty of13* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU14* Lesser General Public License for more details.15*16* You should have received a copy of the GNU Lesser General Public17* License along with FFmpeg; if not, write to the Free Software18* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA19*/2021#ifndef SWRESAMPLE_RESAMPLE_H22#define SWRESAMPLE_RESAMPLE_H2324#include "libavutil/log.h"25#include "libavutil/samplefmt.h"2627#include "swresample_internal.h"2829typedef struct ResampleContext {30const AVClass *av_class;31uint8_t *filter_bank;32int filter_length;33int filter_alloc;34int ideal_dst_incr;35int dst_incr;36int dst_incr_div;37int dst_incr_mod;38int index;39int frac;40int src_incr;41int compensation_distance;42int phase_shift;43int phase_mask;44int linear;45enum SwrFilterType filter_type;46double kaiser_beta;47double factor;48enum AVSampleFormat format;49int felem_size;50int filter_shift;5152struct {53void (*resample_one)(void *dst, const void *src,54int n, int64_t index, int64_t incr);55int (*resample)(struct ResampleContext *c, void *dst,56const void *src, int n, int update_ctx);57} dsp;58} ResampleContext;5960void swri_resample_dsp_init(ResampleContext *c);61void swri_resample_dsp_x86_init(ResampleContext *c);6263#endif /* SWRESAMPLE_RESAMPLE_H */646566