1 /* 2 * Copyright (c) Stefano Sabatini | stefasab at gmail.com 3 * Copyright (c) S.N. Hemanth Meenakshisundaram | smeenaks at ucsd.edu 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 #ifndef AVFILTER_AUDIO_H 23 #define AVFILTER_AUDIO_H 24 25 #include "avfilter.h" 26 #include "internal.h" 27 28 static const enum AVSampleFormat ff_packed_sample_fmts_array[] = { 29 AV_SAMPLE_FMT_U8, 30 AV_SAMPLE_FMT_S16, 31 AV_SAMPLE_FMT_S32, 32 AV_SAMPLE_FMT_FLT, 33 AV_SAMPLE_FMT_DBL, 34 AV_SAMPLE_FMT_NONE 35 }; 36 37 static const enum AVSampleFormat ff_planar_sample_fmts_array[] = { 38 AV_SAMPLE_FMT_U8P, 39 AV_SAMPLE_FMT_S16P, 40 AV_SAMPLE_FMT_S32P, 41 AV_SAMPLE_FMT_FLTP, 42 AV_SAMPLE_FMT_DBLP, 43 AV_SAMPLE_FMT_NONE 44 }; 45 46 /** default handler for get_audio_buffer() for audio inputs */ 47 AVFrame *ff_default_get_audio_buffer(AVFilterLink *link, int nb_samples); 48 49 /** get_audio_buffer() handler for filters which simply pass audio along */ 50 AVFrame *ff_null_get_audio_buffer(AVFilterLink *link, int nb_samples); 51 52 /** 53 * Request an audio samples buffer with a specific set of permissions. 54 * 55 * @param link the output link to the filter from which the buffer will 56 * be requested 57 * @param nb_samples the number of samples per channel 58 * @return A reference to the samples. This must be unreferenced with 59 * avfilter_unref_buffer when you are finished with it. 60 */ 61 AVFrame *ff_get_audio_buffer(AVFilterLink *link, int nb_samples); 62 63 #endif /* AVFILTER_AUDIO_H */ 64