00001 /* 00002 * Audio FIFO 00003 * Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com> 00004 * 00005 * This file is part of Libav. 00006 * 00007 * Libav is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * Libav is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with Libav; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 */ 00021 00027 #ifndef AVUTIL_AUDIO_FIFO_H 00028 #define AVUTIL_AUDIO_FIFO_H 00029 00030 #include "avutil.h" 00031 #include "fifo.h" 00032 #include "samplefmt.h" 00033 00046 typedef struct AVAudioFifo AVAudioFifo; 00047 00053 void av_audio_fifo_free(AVAudioFifo *af); 00054 00063 AVAudioFifo *av_audio_fifo_alloc(enum AVSampleFormat sample_fmt, int channels, 00064 int nb_samples); 00065 00073 int av_audio_fifo_realloc(AVAudioFifo *af, int nb_samples); 00074 00090 int av_audio_fifo_write(AVAudioFifo *af, void **data, int nb_samples); 00091 00104 int av_audio_fifo_read(AVAudioFifo *af, void **data, int nb_samples); 00105 00115 int av_audio_fifo_drain(AVAudioFifo *af, int nb_samples); 00116 00124 void av_audio_fifo_reset(AVAudioFifo *af); 00125 00132 int av_audio_fifo_size(AVAudioFifo *af); 00133 00140 int av_audio_fifo_space(AVAudioFifo *af); 00141 00146 #endif /* AVUTIL_AUDIO_FIFO_H */