1/* 2 * RIFF codec tags 3 * copyright (c) 2000 Fabrice Bellard 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/** 23 * @file 24 * internal header for RIFF based (de)muxers 25 * do NOT include this in end user applications 26 */ 27 28#ifndef AVFORMAT_RIFF_H 29#define AVFORMAT_RIFF_H 30 31#include "libavcodec/avcodec.h" 32#include "avio.h" 33 34int64_t ff_start_tag(ByteIOContext *pb, const char *tag); 35void ff_end_tag(ByteIOContext *pb, int64_t start); 36 37typedef struct AVCodecTag { 38 enum CodecID id; 39 unsigned int tag; 40} AVCodecTag; 41 42void ff_put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const AVCodecTag *tags, int for_asf); 43int ff_put_wav_header(ByteIOContext *pb, AVCodecContext *enc); 44enum CodecID ff_wav_codec_get_id(unsigned int tag, int bps); 45void ff_get_wav_header(ByteIOContext *pb, AVCodecContext *codec, int size); 46 47extern const AVCodecTag ff_codec_bmp_tags[]; 48extern const AVCodecTag ff_codec_wav_tags[]; 49 50unsigned int ff_codec_get_tag(const AVCodecTag *tags, int id); 51enum CodecID ff_codec_get_id(const AVCodecTag *tags, unsigned int tag); 52void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssize, int *au_scale); 53 54#endif /* AVFORMAT_RIFF_H */ 55