ret = -E_MP4_TRACK;
if (f->track.channel_count == 0)
goto fail;
+ ret = -E_MP4_BAD_SAMPLERATE;
+ if (f->track.sample_rate == 0)
+ goto fail;
*result = f;
return 1;
fail:
int mp4_open_read(const struct mp4_callback *cb, struct mp4 **result)
{
- return open_file(cb, false, result);
+ struct mp4 *f;
+ int ret;
+
+ *result = NULL;
+ ret = open_file(cb, false, &f);
+ if (ret < 0)
+ return ret;
+ ret = -E_MP4_BAD_SAMPLE_COUNT;
+ if (f->track.stsz_sample_count == 0)
+ goto fail;
+ *result = f;
+ return 1;
+fail:
+ mp4_close(f);
+ return ret;
}
void mp4_close(struct mp4 *f)