summaryrefslogtreecommitdiff
path: root/libavformat/avr.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/avr.c')
-rw-r--r--libavformat/avr.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/libavformat/avr.c b/libavformat/avr.c
index e03f1a46f7..02edf451a8 100644
--- a/libavformat/avr.c
+++ b/libavformat/avr.c
@@ -69,16 +69,9 @@ static int avr_read_header(AVFormatContext *s)
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;
}