Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "libavcodec/flac.h"
00023 #include "libavcodec/bytestream.h"
00024 #include "avformat.h"
00025 #include "flacenc.h"
00026
00027 int ff_flac_write_header(ByteIOContext *pb, AVCodecContext *codec,
00028 int last_block)
00029 {
00030 uint8_t header[8] = {
00031 0x66, 0x4C, 0x61, 0x43, 0x00, 0x00, 0x00, 0x22
00032 };
00033 uint8_t *streaminfo;
00034 enum FLACExtradataFormat format;
00035
00036 header[4] = last_block ? 0x80 : 0x00;
00037 if (!ff_flac_is_extradata_valid(codec, &format, &streaminfo))
00038 return -1;
00039
00040
00041 if (format == FLAC_EXTRADATA_FORMAT_STREAMINFO) {
00042 put_buffer(pb, header, 8);
00043 }
00044
00045
00046 put_buffer(pb, codec->extradata, codec->extradata_size);
00047
00048 return 0;
00049 }