- /* data_reference_index */ read_int16(f);
-
- read_int32(f); /* reserved */
- read_int32(f); /* reserved */
-
- t->channelCount = read_int16(f);
- read_int16(f);
-
- read_int16(f);
- read_int16(f);
-
- t->sampleRate = read_int16(f);
-
- read_int16(f);
-
- atom_read_header(f, &atom_type, &header_size);
- return 0;
-}
-
-static int32_t read_stsd(struct mp4 *f)
-{
- int32_t i, entry_count;
+ ret = read_int16(f, NULL); /* data_reference_index */
+ if (ret <= 0)
+ return ret;
+ ret = read_int32(f, NULL); /* reserved */
+ if (ret <= 0)
+ return ret;
+ ret = read_int32(f, NULL); /* reserved */
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, &t->channelCount);
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, NULL);
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, NULL);
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, NULL);
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, &t->sampleRate);
+ if (ret <= 0)
+ return ret;
+ ret = read_int16(f, NULL);
+ if (ret <= 0)
+ return ret;
+ return atom_read_header(f, &atom_type, &header_size, NULL);
+}
+
+static int read_stsd(struct mp4 *f)
+{
+ int ret;
+ uint32_t i, entry_count;