]> sigrok.org Git - libsigrok.git/commitdiff
input/wav: Now really correctly check supported sample size.
authorBert Vermeulen <redacted>
Tue, 2 Sep 2014 20:09:17 +0000 (22:09 +0200)
committerBert Vermeulen <redacted>
Tue, 2 Sep 2014 20:09:17 +0000 (22:09 +0200)
src/input/wav.c

index fe12a2f812647d4bc0d4b173ee65232d7d266983..edabd47ca95324a934d81ae9d39b30ecfe65a59f 100644 (file)
@@ -63,15 +63,15 @@ static int parse_wav_header(GString *buf, struct context *inc)
        samplerate = RL32(buf->str + 24);
 
        samplesize = RL16(buf->str + 32);
-       if (samplesize != 8 && samplesize != 16 && samplesize != 32) {
-               sr_err("Only 8, 16 or 32 bits per sample supported.");
-               return SR_ERR_DATA;
-       }
-
        num_channels = RL16(buf->str + 22);
        if (num_channels == 0)
                return SR_ERR;
        unitsize = samplesize / num_channels;
+       if (unitsize != 1 && unitsize != 2 && unitsize != 4) {
+               sr_err("Only 8, 16 or 32 bits per sample supported.");
+               return SR_ERR_DATA;
+       }
+
 
        if (fmt_code == WAVE_FORMAT_PCM) {
        } else if (fmt_code == WAVE_FORMAT_IEEE_FLOAT) {