Libav
|
00001 /* 00002 * audio interleaving prototypes and declarations 00003 * 00004 * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot com> 00005 * 00006 * This file is part of FFmpeg. 00007 * 00008 * FFmpeg is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public 00010 * License as published by the Free Software Foundation; either 00011 * version 2.1 of the License, or (at your option) any later version. 00012 * 00013 * FFmpeg is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with FFmpeg; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00021 */ 00022 00023 #ifndef AVFORMAT_AUDIOINTERLEAVE_H 00024 #define AVFORMAT_AUDIOINTERLEAVE_H 00025 00026 #include "libavutil/fifo.h" 00027 #include "avformat.h" 00028 00029 typedef struct { 00030 AVFifoBuffer *fifo; 00031 unsigned fifo_size; 00032 uint64_t dts; 00033 int sample_size; 00034 const int *samples_per_frame; 00035 const int *samples; 00036 AVRational time_base; 00037 } AudioInterleaveContext; 00038 00039 int ff_audio_interleave_init(AVFormatContext *s, const int *samples_per_frame, AVRational time_base); 00040 void ff_audio_interleave_close(AVFormatContext *s); 00041 00042 int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacket *pkt); 00052 int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush, 00053 int (*get_packet)(AVFormatContext *, AVPacket *, AVPacket *, int), 00054 int (*compare_ts)(AVFormatContext *, AVPacket *, AVPacket *)); 00055 00056 #endif /* AVFORMAT_AUDIOINTERLEAVE_H */