about mp4 parser

技術的な話題。
最近MP4のパーサを作ってみようと思い、
iPhone SDKを最近使ってるってのもあって、
APIを参考にしてみました。


iPhone SDKのパーサって、
基本はコールバックでデータを判断するんですが、
なんでこういう方式とってるのかずっと疑問で、
実装面からこの方式のメリットを考えてみました。

  1. パーサに渡すデータのサイズを意識しなくてよい
  2. 意図するデータが見つかるとすぐに判断できる

1については、
パーサにデータを渡すとき、
意図するデータを取得するためにどれだけ渡せばよいか
APIを使う側で意識する必要がないのはいい点ですね。

2については、
データの中にキーが見つかるとコールバックされるので、
それをハンドルするかはユーザが決めればいいんですね。
毎回データが見つかったか問い合わせる必要がないですね。


まぁ、デメリットもあると思うんですけどね。
取得したくもないデータが見つかってもコールバックされるとか。
そんなにデメリットでもないか。。。