#include "mov-internal.h" #include // 8.8.13 Level Assignment Box (p77) int mov_read_leva(struct mov_t* mov, const struct mov_box_t* box) { unsigned int i, level_count; unsigned int assignment_type; mov_buffer_r32(&mov->io); /* version & flags */ level_count = mov_buffer_r8(&mov->io); /* level_count */ for (i = 0; i < level_count; i++) { mov_buffer_r32(&mov->io); /* track_id */ assignment_type = mov_buffer_r8(&mov->io); /* padding_flag & assignment_type */ assignment_type &= 0x7F; // 7-bits if (0 == assignment_type) { mov_buffer_r32(&mov->io); /* grouping_type */ } else if (1 == assignment_type) { mov_buffer_r32(&mov->io); /* grouping_type */ mov_buffer_r32(&mov->io); /* grouping_type_parameter */ } else if (4 == assignment_type) { mov_buffer_r32(&mov->io); /* sub_track_id */ } } (void)box; return mov_buffer_error(&mov->io); }