mplayerのバグ潰し

外国人の方から要望が届いたのですが、日本語で書かれていて感動したのでちょっとヤル気になり調べてみました。Realのストリーミング再生が出来ないので--enable-realしてくれって内容だったんですが、特に--disable-realしてるわけでもなし、ネイティブコーデックさえあれば再生出来るはずなんだけどな…と調査開始。

とりあえずmplayer-bvdd-1.1.5で問題のストリームの再生すると、未対応で弾かれるとかではなくdemuxerで落ちる。コーデックはCookなので問題無し。Windows版のMPlayerでは…問題無し。ということは、アレか。ARM特有のアラインメント問題。

ザウルスで使えるgdbを作っていなかったという関係の無いところで四苦八苦しつつもgdbserverを作ってバックトレースを採取。案の定、変数の値が異常になっているところがあったので、その変数に代入している部分にブレークポイントを設定して動きを眺めてみる。…あ、ポインタに奇数値を加算したあと、そのままldrしてる。

というわけでid:atty:20060403と同じように修正して完了しました。あー、そういえばasfの修正してからバイナリリリースしていないですね。すみません。近いうちになんとかしたいです。