lavf: add a temporary compat layer for the channel layout API change

Mediates between old-style (de)muxers and new-style callers. Will be
removed once all the (de)muxers are converted to the new API.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
Anton Khirnov 2019-05-14 18:49:07 +02:00 committed by James Almer
parent 276c06726f
commit c30e22c9fb
2 changed files with 22 additions and 0 deletions

View file

@ -272,6 +272,16 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options)
ret = AVERROR(EINVAL);
goto fail;
}
/* if the new-style channel layout is set, convert it to old one
* for old-style muxers */
if (par->ch_layout.nb_channels &&
!par->channels) {
par->channels = par->ch_layout.nb_channels;
par->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
par->ch_layout.u.mask : 0;
}
if (!par->block_align)
par->block_align = par->channels *
av_get_bits_per_sample(par->codec_id) >> 3;