Unified · Split
| @@ -47,14 +47,15 @@ static int svag_read_header(AVFormatContext *s) · 46 unmodified lines | ||
| 47 | 47 | st->codecpar->sample_rate = avio_rl32(s->pb); |
| 48 | 48 | if (st->codecpar->sample_rate <= 0) |
| 49 | 49 | return AVERROR_INVALIDDATA; |
| 50 | − st->codecpar->channels = avio_rl32(s->pb); | |
| 51 | − if (st->codecpar->channels <= 0 || st->codecpar->channels > 8) | |
| 50 | + st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); | |
| 51 | + if (st->codecpar->ch_layout.nb_channels <= 0 || | |
| 52 | + st->codecpar->ch_layout.nb_channels > 8) | |
| 52 | 53 | return AVERROR_INVALIDDATA; |
| 53 | − st->duration = size / (16 * st->codecpar->channels) * 28; | |
| 54 | + st->duration = size / (16 * st->codecpar->ch_layout.nb_channels) * 28; | |
| 54 | 55 | align = avio_rl32(s->pb); |
| 55 | − if (align <= 0 || align > INT_MAX / st->codecpar->channels) | |
| 56 | + if (align <= 0 || align > INT_MAX / st->codecpar->ch_layout.nb_channels) | |
| 56 | 57 | return AVERROR_INVALIDDATA; |
| 57 | − st->codecpar->block_align = align * st->codecpar->channels; | |
| 58 | + st->codecpar->block_align = align * st->codecpar->ch_layout.nb_channels; | |
| 58 | 59 | avio_skip(s->pb, 0x800 - avio_tell(s->pb)); |
| 59 | 60 | avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); |
| 60 | 61 | |