00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef AVCODEC_FLAC_H
00028 #define AVCODEC_FLAC_H
00029
00030 #include "avcodec.h"
00031
00032 #define FLAC_STREAMINFO_SIZE 34
00033
00034 enum {
00035 FLAC_METADATA_TYPE_STREAMINFO = 0,
00036 FLAC_METADATA_TYPE_PADDING,
00037 FLAC_METADATA_TYPE_APPLICATION,
00038 FLAC_METADATA_TYPE_SEEKTABLE,
00039 FLAC_METADATA_TYPE_VORBIS_COMMENT,
00040 FLAC_METADATA_TYPE_CUESHEET,
00041 FLAC_METADATA_TYPE_PICTURE,
00042 FLAC_METADATA_TYPE_INVALID = 127
00043 };
00044
00045 enum FLACExtradataFormat {
00046 FLAC_EXTRADATA_FORMAT_STREAMINFO = 0,
00047 FLAC_EXTRADATA_FORMAT_FULL_HEADER = 1
00048 };
00049
00054 #define FLACSTREAMINFO \
00055 int min_blocksize; \
00056 int max_blocksize; \
00057 int max_framesize; \
00058 int samplerate; \
00059 int channels; \
00060 int bps; \
00061 int64_t samples; \
00062
00063 typedef struct FLACStreaminfo {
00064 FLACSTREAMINFO
00065 } FLACStreaminfo;
00066
00073 void ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s,
00074 const uint8_t *buffer);
00075
00083 int ff_flac_is_extradata_valid(AVCodecContext *avctx,
00084 enum FLACExtradataFormat *format,
00085 uint8_t **streaminfo_start);
00086
00087 #endif