lavf: convert the generic layer to the new channel layout

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
Anton Khirnov
2019-05-15 09:36:26 +02:00
committed by James Almer
parent c30e22c9fb
commit ac10e3c47c
3 changed files with 35 additions and 3 deletions

View File

@@ -206,6 +206,18 @@ static int update_stream_avctx(AVFormatContext *s)
}
}
#if FF_API_OLD_CHANNEL_LAYOUT
FF_DISABLE_DEPRECATION_WARNINGS
if (st->codecpar->ch_layout.nb_channels &&
!st->codecpar->channels) {
st->codecpar->channels = st->codecpar->ch_layout.nb_channels;
st->codecpar->channel_layout = st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
st->codecpar->ch_layout.u.mask : 0;
}
FF_ENABLE_DEPRECATION_WARNINGS
#endif
/* update internal codec context, for the parser */
ret = avcodec_parameters_to_context(sti->avctx, st->codecpar);
if (ret < 0)
@@ -1333,8 +1345,12 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
return ret;
st->codecpar->sample_rate = sti->avctx->sample_rate;
st->codecpar->bit_rate = sti->avctx->bit_rate;
#if FF_API_OLD_CHANNEL_LAYOUT
FF_DISABLE_DEPRECATION_WARNINGS
st->codecpar->channels = sti->avctx->channels;
st->codecpar->channel_layout = sti->avctx->channel_layout;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
st->codecpar->codec_id = sti->avctx->codec_id;
} else {
/* free packet */