|
|
@ -605,17 +605,18 @@ static int put_xiph_codecpriv(AVFormatContext *s, AVIOContext *pb, |
|
|
|
const uint8_t *header_start[3]; |
|
|
|
const uint8_t *header_start[3]; |
|
|
|
int header_len[3]; |
|
|
|
int header_len[3]; |
|
|
|
int first_header_size; |
|
|
|
int first_header_size; |
|
|
|
int j; |
|
|
|
int err, j; |
|
|
|
|
|
|
|
|
|
|
|
if (par->codec_id == AV_CODEC_ID_VORBIS) |
|
|
|
if (par->codec_id == AV_CODEC_ID_VORBIS) |
|
|
|
first_header_size = 30; |
|
|
|
first_header_size = 30; |
|
|
|
else |
|
|
|
else |
|
|
|
first_header_size = 42; |
|
|
|
first_header_size = 42; |
|
|
|
|
|
|
|
|
|
|
|
if (avpriv_split_xiph_headers(par->extradata, par->extradata_size, |
|
|
|
err = avpriv_split_xiph_headers(par->extradata, par->extradata_size, |
|
|
|
first_header_size, header_start, header_len) < 0) { |
|
|
|
first_header_size, header_start, header_len); |
|
|
|
|
|
|
|
if (err < 0) { |
|
|
|
av_log(s, AV_LOG_ERROR, "Extradata corrupt.\n"); |
|
|
|
av_log(s, AV_LOG_ERROR, "Extradata corrupt.\n"); |
|
|
|
return -1; |
|
|
|
return err; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
avio_w8(pb, 2); // number packets - 1
|
|
|
|
avio_w8(pb, 2); // number packets - 1
|
|
|
|