Unified · Split
| @@ -47,14 +47,15 @@ static int svag_read_header(AVFormatContext *s) · 46 unmodified lines | |||
| 47 | st->codecpar->sample_rate = avio_rl32(s->pb); | 47 | st->codecpar->sample_rate = avio_rl32(s->pb); |
| 48 | if (st->codecpar->sample_rate <= 0) | 48 | if (st->codecpar->sample_rate <= 0) |
| 49 | return AVERROR_INVALIDDATA; | 49 | return AVERROR_INVALIDDATA; |
| 50 | st->codecpar->channels = avio_rl32(s->pb); | 50 | st->codecpar->ch_layout.nb_channels = avio_rl32(s->pb); |
| 51 | if (st->codecpar->channels <= 0 || st->codecpar->channels > 8) | 51 | if (st->codecpar->ch_layout.nb_channels <= 0 || |
| 52 | st->codecpar->ch_layout.nb_channels > 8) | ||
| 52 | return AVERROR_INVALIDDATA; | 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 | align = avio_rl32(s->pb); | 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 | return AVERROR_INVALIDDATA; | 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 | avio_skip(s->pb, 0x800 - avio_tell(s->pb)); | 59 | avio_skip(s->pb, 0x800 - avio_tell(s->pb)); |
| 59 | avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); | 60 | avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); |
| 60 | 61 | ||