mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 15:49:50 +08:00
Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
* commit '9200514ad8717c63f82101dc394f4378854325bf': lavf: replace AVStream.codec with AVStream.codecpar This has been a HUGE effort from: - Derek Buitenhuis <derek.buitenhuis@gmail.com> - Hendrik Leppkes <h.leppkes@gmail.com> - wm4 <nfxjfg@googlemail.com> - Clément Bœsch <clement@stupeflix.com> - James Almer <jamrial@gmail.com> - Michael Niedermayer <michael@niedermayer.cc> - Rostislav Pehlivanov <atomnuker@gmail.com> Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
@ -52,24 +52,24 @@ static int opus_header(AVFormatContext *avf, int idx)
|
||||
if (os->flags & OGG_FLAG_BOS) {
|
||||
if (os->psize < OPUS_HEAD_SIZE || (AV_RL8(packet + 8) & 0xF0) != 0)
|
||||
return AVERROR_INVALIDDATA;
|
||||
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||
st->codec->codec_id = AV_CODEC_ID_OPUS;
|
||||
st->codec->channels = AV_RL8 (packet + 9);
|
||||
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||
st->codecpar->codec_id = AV_CODEC_ID_OPUS;
|
||||
st->codecpar->channels = AV_RL8(packet + 9);
|
||||
|
||||
priv->pre_skip = AV_RL16(packet + 10);
|
||||
st->codec->delay = priv->pre_skip;
|
||||
st->codecpar->initial_padding = priv->pre_skip;
|
||||
/*orig_sample_rate = AV_RL32(packet + 12);*/
|
||||
/*gain = AV_RL16(packet + 16);*/
|
||||
/*channel_map = AV_RL8 (packet + 18);*/
|
||||
|
||||
if (ff_alloc_extradata(st->codec, os->psize))
|
||||
if (ff_alloc_extradata(st->codecpar, os->psize))
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
memcpy(st->codec->extradata, packet, os->psize);
|
||||
memcpy(st->codecpar->extradata, packet, os->psize);
|
||||
|
||||
st->codec->sample_rate = 48000;
|
||||
av_codec_set_seek_preroll(st->codec,
|
||||
av_rescale(OPUS_SEEK_PREROLL_MS,
|
||||
st->codec->sample_rate, 1000));
|
||||
st->codecpar->sample_rate = 48000;
|
||||
st->codecpar->seek_preroll = av_rescale(OPUS_SEEK_PREROLL_MS,
|
||||
st->codecpar->sample_rate, 1000);
|
||||
avpriv_set_pts_info(st, 64, 1, 48000);
|
||||
priv->need_comments = 1;
|
||||
return 1;
|
||||
|
Reference in New Issue
Block a user