96 lines · 3.1 KB · C
RawDownload
/* * Copyright (c) 2004 Michael Niedermayer <michaelni@gmx.at> * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef AVRESAMPLE_RESAMPLE_H#define AVRESAMPLE_RESAMPLE_H #include "avresample.h"#include "internal.h"#include "audio_data.h" struct ResampleContext {    AVAudioResampleContext *avr;    AudioData *buffer;    uint8_t *filter_bank;    int filter_length;    int ideal_dst_incr;    int dst_incr;    unsigned int index;    int frac;    int src_incr;    int compensation_distance;    int phase_shift;    int phase_mask;    int linear;    enum AVResampleFilterType filter_type;    int kaiser_beta;    void (*set_filter)(void *filter, double *tab, int phase, int tap_count);    void (*resample_one)(struct ResampleContext *c, void *dst0,                         int dst_index, const void *src0,                         unsigned int index, int frac);    void (*resample_nearest)(void *dst0, int dst_index,                             const void *src0, unsigned int index);    int padding_size;    int initial_padding_filled;    int initial_padding_samples;    int final_padding_filled;    int final_padding_samples;}; /** * Allocate and initialize a ResampleContext. * * The parameters in the AVAudioResampleContext are used to initialize the * ResampleContext. * * @param avr  AVAudioResampleContext * @return     newly-allocated ResampleContext */ResampleContext *ff_audio_resample_init(AVAudioResampleContext *avr); /** * Free a ResampleContext. * * @param c  ResampleContext */void ff_audio_resample_free(ResampleContext **c); /** * Resample audio data. * * Changes the sample rate. * * @par * All samples in the source data may not be consumed depending on the * resampling parameters and the size of the output buffer. The unconsumed * samples are automatically added to the start of the source in the next call. * If the destination data can be reallocated, that may be done in this function * in order to fit all available output. If it cannot be reallocated, fewer * input samples will be consumed in order to have the output fit in the * destination data buffers. * * @param c         ResampleContext * @param dst       destination audio data * @param src       source audio data * @return          0 on success, negative AVERROR code on failure */int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src); #endif /* AVRESAMPLE_RESAMPLE_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t