
传送门:MP4 文档 P29页
这个 Box 也比较简单,里面给出每个 Sample 的 Size 的大小。关于这个 Box 的作用,这是我们在文件读取和解析 Sample 的关键可以找到任意 Sample 对应在文件中的位置。

这里对应 Sample count 就是总的 Sample 数量,里面对应的是每一个 Sample size,Sample Count 从1开始。

其中该 Box 是 Full Box,后面有四字节的 version 和 flag 字段,其中 flag 默认值用0,这里分析略过,这里就直接解析 Data 的字段。
| 字段 | 大小 | 实际值(16进制) | 含义 | 
|---|---|---|---|
| sample size | 4 | 00 00 00 00 | 0表示每一个sample大小不一样,不为0则每一个sample大小为当前值 | 
| sample count | 4 | 00 00 05 25 | 当前 Track 下有多少个 sample | 
| sample size | 4 | 对应每一个Sample的大小 | 
// BaseBox.h  
// ...
// 其他 Box 的定义
class TimeStszBox : public BaseBox {
public:
    Timebyte version = 0;
    Timebyte flags = 0;
    unsigned int sample_size = 0; // 指定默认的sample大小,如果每个sample大小不相等,则这个字段值为0,每个sample大小存在下表中。
    unsigned int sample_count = 0; // 该track中所有sample的数量
    unsigned int entry_size = 0; // 每个sample的大小
    TimeStszBox(BoxHeader h, Timebyte * d): BaseBox(h, d){};
};
实现
// TimeStszBox.cpp
 
                         
                        