avformat/matroskadec: Use bytestream API instead of AVIOContext
It avoids the overhead of function calls. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
committed by
James Almer
parent
eec26b5911
commit
668490ac98
@ -2545,6 +2545,7 @@ static int matroska_parse_tracks(AVFormatContext *s)
|
|||||||
memcpy(&extradata[12], track->codec_priv.data,
|
memcpy(&extradata[12], track->codec_priv.data,
|
||||||
track->codec_priv.size);
|
track->codec_priv.size);
|
||||||
} else if (codec_id == AV_CODEC_ID_TTA) {
|
} else if (codec_id == AV_CODEC_ID_TTA) {
|
||||||
|
uint8_t *ptr;
|
||||||
if (track->audio.channels > UINT16_MAX ||
|
if (track->audio.channels > UINT16_MAX ||
|
||||||
track->audio.bitdepth > UINT16_MAX) {
|
track->audio.bitdepth > UINT16_MAX) {
|
||||||
av_log(matroska->ctx, AV_LOG_WARNING,
|
av_log(matroska->ctx, AV_LOG_WARNING,
|
||||||
@ -2562,16 +2563,15 @@ static int matroska_parse_tracks(AVFormatContext *s)
|
|||||||
extradata = av_mallocz(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
extradata = av_mallocz(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
if (!extradata)
|
if (!extradata)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
ffio_init_context(&b, extradata, extradata_size, 1,
|
ptr = extradata;
|
||||||
NULL, NULL, NULL, NULL);
|
bytestream_put_be32(&ptr, AV_RB32("TTA1"));
|
||||||
avio_write(&b, "TTA1", 4);
|
bytestream_put_le16(&ptr, 1);
|
||||||
avio_wl16(&b, 1);
|
bytestream_put_le16(&ptr, track->audio.channels);
|
||||||
avio_wl16(&b, track->audio.channels);
|
bytestream_put_le16(&ptr, track->audio.bitdepth);
|
||||||
avio_wl16(&b, track->audio.bitdepth);
|
bytestream_put_le32(&ptr, track->audio.out_samplerate);
|
||||||
avio_wl32(&b, track->audio.out_samplerate);
|
bytestream_put_le32(&ptr, av_rescale(matroska->duration * matroska->time_scale,
|
||||||
avio_wl32(&b, av_rescale((matroska->duration * matroska->time_scale),
|
track->audio.out_samplerate,
|
||||||
track->audio.out_samplerate,
|
AV_TIME_BASE * 1000));
|
||||||
AV_TIME_BASE * 1000));
|
|
||||||
} else if (codec_id == AV_CODEC_ID_RV10 ||
|
} else if (codec_id == AV_CODEC_ID_RV10 ||
|
||||||
codec_id == AV_CODEC_ID_RV20 ||
|
codec_id == AV_CODEC_ID_RV20 ||
|
||||||
codec_id == AV_CODEC_ID_RV30 ||
|
codec_id == AV_CODEC_ID_RV30 ||
|
||||||
|
Reference in New Issue
Block a user