static int ogg_build_flac_headers(AVCodecContext *avctx,

                                  OGGStreamContext *oggstream, int bitexact)

{

    const char *vendor = bitexact ? "ffmpeg" : LIBAVFORMAT_IDENT;

    enum FLACExtradataFormat format;

    uint8_t *streaminfo;

    uint8_t *p;

    if (!ff_flac_is_extradata_valid(avctx, &format, &streaminfo))

        return -1;

    oggstream->header_len[0] = 51;

    oggstream->header[0] = av_mallocz(51); // per ogg flac specs

    p = oggstream->header[0];



    bytestream_put_byte(&p, 0x7F);

    bytestream_put_buffer(&p, "FLAC", 4);

    bytestream_put_byte(&p, 1); // major version

    bytestream_put_byte(&p, 0); // minor version

    bytestream_put_be16(&p, 1); // headers packets without this one

    bytestream_put_buffer(&p, "fLaC", 4);

    bytestream_put_byte(&p, 0x00); // streaminfo

    bytestream_put_be24(&p, 34);

    bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE);

    oggstream->header_len[1] = 1+3+4+strlen(vendor)+4;

    oggstream->header[1] = av_mallocz(oggstream->header_len[1]);

    p = oggstream->header[1];



    bytestream_put_byte(&p, 0x84); // last metadata block and vorbis comment

    bytestream_put_be24(&p, oggstream->header_len[1] - 4);

    bytestream_put_le32(&p, strlen(vendor));

    bytestream_put_buffer(&p, vendor, strlen(vendor));

    bytestream_put_le32(&p, 0); // user comment list length

    return 0;

}
static int ogg_build_flac_headers(AVCodecContext *avctx,

                                  OGGStreamContext *oggstream, int bitexact)

{

    const char *vendor = bitexact ? "ffmpeg" : LIBAVFORMAT_IDENT;

    enum FLACExtradataFormat format;

    uint8_t *streaminfo;

    uint8_t *p;

    if (!ff_flac_is_extradata_valid(avctx, &format, &streaminfo))

        return -1;

    oggstream->header_len[0] = 51;

    oggstream->header[0] = av_mallocz(51); 

    p = oggstream->header[0];



    bytestream_put_byte(&p, 0x7F);

    bytestream_put_buffer(&p, "FLAC", 4);

    bytestream_put_byte(&p, 1); 

    bytestream_put_byte(&p, 0); 

    bytestream_put_be16(&p, 1); 

    bytestream_put_buffer(&p, "fLaC", 4);

    bytestream_put_byte(&p, 0x00); 

    bytestream_put_be24(&p, 34);

    bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE);

    oggstream->header_len[1] = 1+3+4+strlen(vendor)+4;

    oggstream->header[1] = av_mallocz(oggstream->header_len[1]);

    p = oggstream->header[1];



    bytestream_put_byte(&p, 0x84); 

    bytestream_put_be24(&p, oggstream->header_len[1] - 4);

    bytestream_put_le32(&p, strlen(vendor));

    bytestream_put_buffer(&p, vendor, strlen(vendor));

    bytestream_put_le32(&p, 0); 

    return 0;

}
static int FUNC_0(AVCodecContext *VAR_0,

                                  OGGStreamContext *VAR_1, int VAR_2)

{

    const char *VAR_3 = VAR_2 ? "ffmpeg" : LIBAVFORMAT_IDENT;

    enum FLACExtradataFormat VAR_4;

    uint8_t *streaminfo;

    uint8_t *p;

    if (!ff_flac_is_extradata_valid(VAR_0, &VAR_4, &streaminfo))

        return -1;

    VAR_1->header_len[0] = 51;

    VAR_1->header[0] = av_mallocz(51); 

    p = VAR_1->header[0];



    bytestream_put_byte(&p, 0x7F);

    bytestream_put_buffer(&p, "FLAC", 4);

    bytestream_put_byte(&p, 1); 

    bytestream_put_byte(&p, 0); 

    bytestream_put_be16(&p, 1); 

    bytestream_put_buffer(&p, "fLaC", 4);

    bytestream_put_byte(&p, 0x00); 

    bytestream_put_be24(&p, 34);

    bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE);

    VAR_1->header_len[1] = 1+3+4+strlen(VAR_3)+4;

    VAR_1->header[1] = av_mallocz(VAR_1->header_len[1]);

    p = VAR_1->header[1];



    bytestream_put_byte(&p, 0x84); 

    bytestream_put_be24(&p, VAR_1->header_len[1] - 4);

    bytestream_put_le32(&p, strlen(VAR_3));

    bytestream_put_buffer(&p, VAR_3, strlen(VAR_3));

    bytestream_put_le32(&p, 0); 

    return 0;

}
static int FUNC_0(AVCodecContext *VAR_0,
OGGStreamContext *VAR_1, int VAR_2)
{ const char *VAR_3 = VAR_2 ? "ffmpeg" : LIBAVFORMAT_IDENT; enum FLACExtradataFormat VAR_4; uint8_t *streaminfo; uint8_t *p; if (!ff_flac_is_extradata_valid(VAR_0, &VAR_4, &streaminfo))
return -1; VAR_1->header_len[0] = 51; VAR_1->header[0] = av_mallocz(51); p = VAR_1->header[0]; bytestream_put_byte(&p, 0x7F); bytestream_put_buffer(&p, "FLAC", 4); bytestream_put_byte(&p, 1); bytestream_put_byte(&p, 0); bytestream_put_be16(&p, 1); bytestream_put_buffer(&p, "fLaC", 4); bytestream_put_byte(&p, 0x00); bytestream_put_be24(&p, 34); bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE); VAR_1->header_len[1] = 1+3+4+strlen(VAR_3)+4; VAR_1->header[1] = av_mallocz(VAR_1->header_len[1]); p = VAR_1->header[1]; bytestream_put_byte(&p, 0x84); bytestream_put_be24(&p, VAR_1->header_len[1] - 4); bytestream_put_le32(&p, strlen(VAR_3)); bytestream_put_buffer(&p, VAR_3, strlen(VAR_3)); bytestream_put_le32(&p, 0); return 0; }