]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - mp4.c
mp4: Improve mp4_get_sample_size().
[paraslash.git] / mp4.c
diff --git a/mp4.c b/mp4.c
index 869b80fa966dbcef2d039935a4a44053d21f963b..205286a24de7498717a6a5ee4c7d0ed3f71577d3 100644 (file)
--- a/mp4.c
+++ b/mp4.c
@@ -680,13 +680,17 @@ int mp4_set_sample_position(struct mp4 *f, uint32_t sample)
        return 1;
 }
 
-int32_t mp4_get_sample_size(const struct mp4 *f, int sample)
+int mp4_get_sample_size(const struct mp4 *f, uint32_t sample, uint32_t *result)
 {
        const struct mp4_track *t = &f->track;
 
+       if (sample >= t->stsz_sample_count)
+               return -ERRNO_TO_PARA_ERROR(EINVAL);
        if (t->stsz_sample_size != 0)
-               return t->stsz_sample_size;
-       return t->stsz_table[sample];
+               *result = t->stsz_sample_size;
+       else
+               *result = t->stsz_table[sample];
+       return 1;
 }
 
 uint32_t mp4_get_sample_rate(const struct mp4 *f)