Go to the documentation of this file.
27 #ifndef AVCODEC_FLAC_H
28 #define AVCODEC_FLAC_H
34 #define FLAC_STREAMINFO_SIZE 34
35 #define FLAC_MAX_CHANNELS 8
36 #define FLAC_MIN_BLOCKSIZE 16
37 #define FLAC_MAX_BLOCKSIZE 65535
38 #define FLAC_MIN_FRAME_SIZE 11
63 #define FLACCOMMONINFO \
72 #define FLACSTREAMINFO \
113 uint8_t **streaminfo_start);
146 int tmp = bytestream_get_byte(&block_header);
152 *
size = bytestream_get_be24(&block_header);
int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb, FLACFrameInfo *fi, int log_level_offset)
Validate and decode a frame header.
void ff_flac_set_channel_layout(AVCodecContext *avctx)
int64_t frame_or_sample_num
frame number or sample number
int is_var_size
specifies if the stream uses variable block sizes or a fixed block size; also determines the meaning ...
@ FLAC_METADATA_TYPE_SEEKTABLE
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
#define FLACCOMMONINFO
bits-per-sample
FLACCOMMONINFO int blocksize
block size of the frame
static av_always_inline void flac_parse_block_header(const uint8_t *block_header, int *last, int *type, int *size)
Parse the metadata block parameters from the header.
int ff_flac_get_max_frame_size(int blocksize, int ch, int bps)
Calculate an estimate for the maximum frame size based on verbatim mode.
int ff_flac_is_extradata_valid(AVCodecContext *avctx, enum FLACExtradataFormat *format, uint8_t **streaminfo_start)
Validate the FLAC extradata.
@ FLAC_METADATA_TYPE_PICTURE
@ FLAC_METADATA_TYPE_CUESHEET
@ FLAC_METADATA_TYPE_APPLICATION
@ FLAC_EXTRADATA_FORMAT_FULL_HEADER
@ FLAC_METADATA_TYPE_VORBIS_COMMENT
int ch_mode
channel decorrelation mode
int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, const uint8_t *buffer)
Parse the Streaminfo metadata block.
main external API structure.
@ FLAC_METADATA_TYPE_PADDING
the frame and frame reference mechanism is intended to as much as expensive copies of that data while still allowing the filters to produce correct results The data is stored in buffers represented by AVFrame structures Several references can point to the same frame buffer
@ FLAC_EXTRADATA_FORMAT_STREAMINFO
@ FLAC_METADATA_TYPE_STREAMINFO
@ FLAC_METADATA_TYPE_INVALID
#define FLACSTREAMINFO
Data needed from the Streaminfo header for use by the raw FLAC demuxer and/or the FLAC decoder.
@ FLAC_CHMODE_INDEPENDENT