|
|
@ -90,8 +90,11 @@ static int ogg_build_flac_headers(AVCodecContext *avctx, |
|
|
|
enum FLACExtradataFormat format; |
|
|
|
enum FLACExtradataFormat format; |
|
|
|
uint8_t *streaminfo; |
|
|
|
uint8_t *streaminfo; |
|
|
|
uint8_t *p; |
|
|
|
uint8_t *p; |
|
|
|
|
|
|
|
|
|
|
|
if (!ff_flac_is_extradata_valid(avctx, &format, &streaminfo)) |
|
|
|
if (!ff_flac_is_extradata_valid(avctx, &format, &streaminfo)) |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// first packet: STREAMINFO
|
|
|
|
oggstream->header_len[0] = 51; |
|
|
|
oggstream->header_len[0] = 51; |
|
|
|
oggstream->header[0] = av_mallocz(51); // per ogg flac specs
|
|
|
|
oggstream->header[0] = av_mallocz(51); // per ogg flac specs
|
|
|
|
p = oggstream->header[0]; |
|
|
|
p = oggstream->header[0]; |
|
|
@ -106,6 +109,8 @@ static int ogg_build_flac_headers(AVCodecContext *avctx, |
|
|
|
bytestream_put_byte(&p, 0x00); // streaminfo
|
|
|
|
bytestream_put_byte(&p, 0x00); // streaminfo
|
|
|
|
bytestream_put_be24(&p, 34); |
|
|
|
bytestream_put_be24(&p, 34); |
|
|
|
bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE); |
|
|
|
bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// second packet: VorbisComment
|
|
|
|
oggstream->header_len[1] = 1+3+4+strlen(vendor)+4; |
|
|
|
oggstream->header_len[1] = 1+3+4+strlen(vendor)+4; |
|
|
|
oggstream->header[1] = av_mallocz(oggstream->header_len[1]); |
|
|
|
oggstream->header[1] = av_mallocz(oggstream->header_len[1]); |
|
|
|
p = oggstream->header[1]; |
|
|
|
p = oggstream->header[1]; |
|
|
@ -116,6 +121,7 @@ static int ogg_build_flac_headers(AVCodecContext *avctx, |
|
|
|
bytestream_put_le32(&p, strlen(vendor)); |
|
|
|
bytestream_put_le32(&p, strlen(vendor)); |
|
|
|
bytestream_put_buffer(&p, vendor, strlen(vendor)); |
|
|
|
bytestream_put_buffer(&p, vendor, strlen(vendor)); |
|
|
|
bytestream_put_le32(&p, 0); // user comment list length
|
|
|
|
bytestream_put_le32(&p, 0); // user comment list length
|
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|