diff --git a/libavformat/xa.c b/libavformat/xa.c index 762e90246a..ec9fcbc94c 100644 --- a/libavformat/xa.c +++ b/libavformat/xa.c @@ -78,16 +78,16 @@ static int xa_read_header(AVFormatContext *s) avio_skip(pb, 4); /* Skip the XA ID */ xa->out_size = avio_rl32(pb); avio_skip(pb, 2); /* Skip the tag */ - st->codecpar->channels = avio_rl16(pb); + st->codecpar->ch_layout.nb_channels = avio_rl16(pb); st->codecpar->sample_rate = avio_rl32(pb); avio_skip(pb, 4); /* Skip average byte rate */ avio_skip(pb, 2); /* Skip block align */ avio_skip(pb, 2); /* Skip bits-per-sample */ - if (!st->codecpar->channels || !st->codecpar->sample_rate) + if (!st->codecpar->ch_layout.nb_channels || !st->codecpar->sample_rate) return AVERROR_INVALIDDATA; - st->codecpar->bit_rate = av_clip(15LL * st->codecpar->channels * 8 * + st->codecpar->bit_rate = av_clip(15LL * st->codecpar->ch_layout.nb_channels * 8 * st->codecpar->sample_rate / 28, 0, INT_MAX); avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); @@ -108,7 +108,7 @@ static int xa_read_packet(AVFormatContext *s, if (xa->sent_bytes >= xa->out_size) return AVERROR_EOF; /* 1 byte header and 14 bytes worth of samples * number channels per block */ - packet_size = 15*st->codecpar->channels; + packet_size = 15*st->codecpar->ch_layout.nb_channels; ret = av_get_packet(pb, pkt, packet_size); if(ret < 0)