無駄に詰まった・・・
処理中に、フレームスピードを正常に取得できない不具合を見つけた。
いろいろ探したんだけど、結局かなり時間がかかって単純なミスを見つけた。
途中でなぜかは存しているメモがあったせいで、余計に時間がかかった。(アニメーションサイズがファイルサイズを超えているという笑える数値になっていた)
ここ。サウンド情報を読み込む前の場所。効果音テーブルの後のアドレスあわせを行うところです。
br.BaseStream.Seek(4 - (br.BaseStream.Position % 4), SeekOrigin.Current);
これは、4byteごとにキリがいいようにするんですが、ちょうどキリがいい場合に4ずらしちゃってました。
ということで、書き換え。
br.BaseStream.Seek((br.BaseStream.Position % 4) != 0 ? 4 - (br.BaseStream.Position % 4) : 0, SeekOrigin.Current);
3項演算子を使った雑な実装です。なんかもっといい方法があるのかな?
とりあえず、これで動いた。
Operaの[設定]=>[詳細設定]=>[ダウンロード]に「image/x-portable-pixmap」で拡張子を「ppm」を追加して、「他のアプリケーションで開く」をやって設定、「ウェブアドレスを直接アプリケーションに渡す」にすればその場で開ける。うごメモスクリプトを入れていれば、動画横の[ppm]のリンクを押すとその場再生できる!!