153a5a1b3Sopenharmony_ci/*
253a5a1b3Sopenharmony_ci * copyright (c) 2001 Fabrice Bellard
353a5a1b3Sopenharmony_ci *
453a5a1b3Sopenharmony_ci * This file is part of FFmpeg.
553a5a1b3Sopenharmony_ci *
653a5a1b3Sopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
753a5a1b3Sopenharmony_ci * modify it under the terms of the GNU Lesser General Public
853a5a1b3Sopenharmony_ci * License as published by the Free Software Foundation; either
953a5a1b3Sopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
1053a5a1b3Sopenharmony_ci *
1153a5a1b3Sopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
1253a5a1b3Sopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
1353a5a1b3Sopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1453a5a1b3Sopenharmony_ci * Lesser General Public License for more details.
1553a5a1b3Sopenharmony_ci *
1653a5a1b3Sopenharmony_ci * You should have received a copy of the GNU Lesser General Public
1753a5a1b3Sopenharmony_ci * License along with FFmpeg; if not, see <http://www.gnu.org/licenses/>.
1853a5a1b3Sopenharmony_ci */
1953a5a1b3Sopenharmony_ci
2053a5a1b3Sopenharmony_ci#ifndef AVCODEC_H
2153a5a1b3Sopenharmony_ci#define AVCODEC_H
2253a5a1b3Sopenharmony_ci
2353a5a1b3Sopenharmony_ci/* Just a heavily bastardized version of the original file from
2453a5a1b3Sopenharmony_ci * ffmpeg, just enough to get resample2.c to compile without
2553a5a1b3Sopenharmony_ci * modification -- Lennart */
2653a5a1b3Sopenharmony_ci
2753a5a1b3Sopenharmony_ci#if !defined(PACKAGE) && defined(HAVE_CONFIG_H)
2853a5a1b3Sopenharmony_ci#include <config.h>
2953a5a1b3Sopenharmony_ci#endif
3053a5a1b3Sopenharmony_ci
3153a5a1b3Sopenharmony_ci#include <sys/types.h>
3253a5a1b3Sopenharmony_ci#include <inttypes.h>
3353a5a1b3Sopenharmony_ci#include <math.h>
3453a5a1b3Sopenharmony_ci#include <string.h>
3553a5a1b3Sopenharmony_ci#include <stdlib.h>
3653a5a1b3Sopenharmony_ci#include <assert.h>
3753a5a1b3Sopenharmony_ci
3853a5a1b3Sopenharmony_ci#define av_mallocz(l) calloc(1, (l))
3953a5a1b3Sopenharmony_ci#define av_malloc(l) malloc(l)
4053a5a1b3Sopenharmony_ci#define av_realloc(p,l) realloc((p),(l))
4153a5a1b3Sopenharmony_ci#define av_free(p) free(p)
4253a5a1b3Sopenharmony_ci
4353a5a1b3Sopenharmony_cistatic inline void av_freep(void *k) {
4453a5a1b3Sopenharmony_ci    void **p = k;
4553a5a1b3Sopenharmony_ci
4653a5a1b3Sopenharmony_ci    if (p) {
4753a5a1b3Sopenharmony_ci        free(*p);
4853a5a1b3Sopenharmony_ci        *p = NULL;
4953a5a1b3Sopenharmony_ci    }
5053a5a1b3Sopenharmony_ci}
5153a5a1b3Sopenharmony_ci
5253a5a1b3Sopenharmony_cistatic inline int av_clip(int a, int amin, int amax)
5353a5a1b3Sopenharmony_ci{
5453a5a1b3Sopenharmony_ci    if (a < amin)      return amin;
5553a5a1b3Sopenharmony_ci    else if (a > amax) return amax;
5653a5a1b3Sopenharmony_ci    else               return a;
5753a5a1b3Sopenharmony_ci}
5853a5a1b3Sopenharmony_ci
5953a5a1b3Sopenharmony_ci#define av_log(a,b,c)
6053a5a1b3Sopenharmony_ci
6153a5a1b3Sopenharmony_ci#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
6253a5a1b3Sopenharmony_ci#define FFSIGN(a) ((a) > 0 ? 1 : -1)
6353a5a1b3Sopenharmony_ci
6453a5a1b3Sopenharmony_ci#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
6553a5a1b3Sopenharmony_ci#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
6653a5a1b3Sopenharmony_ci
6753a5a1b3Sopenharmony_cistruct AVResampleContext;
6853a5a1b3Sopenharmony_cistruct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
6953a5a1b3Sopenharmony_ciint av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
7053a5a1b3Sopenharmony_civoid av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
7153a5a1b3Sopenharmony_civoid av_resample_close(struct AVResampleContext *c);
7253a5a1b3Sopenharmony_civoid av_build_filter(int16_t *filter, double factor, int tap_count, int phase_count, int scale, int type);
7353a5a1b3Sopenharmony_ci
7453a5a1b3Sopenharmony_ci/*
7553a5a1b3Sopenharmony_ci * crude lrintf for non-C99 systems.
7653a5a1b3Sopenharmony_ci */
7753a5a1b3Sopenharmony_ci#ifndef HAVE_LRINTF
7853a5a1b3Sopenharmony_ci#define lrintf(x) ((long int)(x))
7953a5a1b3Sopenharmony_ci#endif
8053a5a1b3Sopenharmony_ci
8153a5a1b3Sopenharmony_ci#endif /* AVCODEC_H */
82