サンプルの時間的長さ Time-to-sample atom(stts)

1個にゃサンプルがどのくらいの時間にゃのかを定義しているにゃのですにゃ。

ドキュメントよんだときにゃに、わかりづらかったですにゃ。*1

{ Sample count(4byte), Sample duration(4byte)} にゃ感じにゃのテーブルがにゅにゅ〜ってあるのですにゃ。
Sample countな個数が、Sample durationにゃんです。*2

たとえばですにゃ、time-to-sample tableが{4,3},{2,1},{3,2}にゃったら、

サンプル番号 サンプルの時間的にゃ長さ 説明
1 3 4回3が続く
2 3
3 3
4 3
5 1 2回1が続く
6 1
7 2 3回2が続く
8 2
9 2

って感じにゃににゃるのですにゃ。
サンプル3にゃの時間の長さにゃは、3で、サンプル8にゃは、2って感じですにゃ。

ランレングス圧縮みたいにゃ感じですにゃね。

サンプル毎にゃに、時間の長さを加算していけばにゃ、これを使って再生している時間から該当するにゃサンプルにゃがわかるのですにゃね。

サンプル番号 サンプルの時間的にゃ長さ 時間
1 3 0 始の時間にゃは、edit list atomで定義されるっぽいにゃ。
2 3 3
3 3 6
4 3 9
5 1 12
6 1 13
7 2 14
8 2 16
9 2 18

12の時間を再生しようにゃ〜って思ったら、このテーブルをみてにゃ、サンプル5を使うんにゃ〜ってのがわかるのですにゃ。*3

*1:英語苦手にゃので…(汗)

*2:いぁ、意味不明にゃから……

*3:実際にゃは、チャンクにゃ方も考慮しにゃいと駄目ですけどにゃ。