avio_skip(s->pb, 20);
avio_skip(s->pb, 64);
- if (!sign && bps == 8) {
- st->codec->codec_id = AV_CODEC_ID_PCM_U8;
- } else if (!sign && bps == 16) {
- st->codec->codec_id = AV_CODEC_ID_PCM_U16BE;
- } else if (sign == 0xFFFFu && bps == 8) {
- st->codec->codec_id = AV_CODEC_ID_PCM_S8;
- } else if (sign == 0xFFFFu && bps == 16) {
- st->codec->codec_id = AV_CODEC_ID_PCM_S16BE;
- } else {
- avpriv_request_sample(s, "bits per sample %d", bps);
+ st->codec->codec_id = ff_get_pcm_codec_id(bps, 0, 1, sign);
+ if (st->codec->codec_id == AV_CODEC_ID_NONE) {
+ avpriv_request_sample(s, "Bps %d and sign %d", bps, sign);
return AVERROR_PATCHWELCOME;
}