Wednesday, January 26, 2011

[x264] Revision 1878

久々にパッチを提出して採用されたのでブログのネタに。
しばらくx264を弄るのはやめると言ったにも関わらず…。
でも、今やってることと関係があるしってことで…(笑)

今回はlavf inputです。
なんか…今後もweightpとlavf/ffms関係しか弄らない気がしてきました(笑)
コードはこれ

このパッチのきっかけはDoom10のこのスレッド

ふと気になって、ffmpegでソースを作ってlavfで試してみたら、あら?lavfがファイルを開けない。
うちだけかなと色々試行錯誤していると、質問者の環境でも開けないとエラーが出たというポスト。
やっぱり何か原因があるらしい。

ffmpegで開けるのにlavfで駄目ならlavf側の問題だろうと推測してコードを覗いてみることに。
input/lavf.cのそれらしき箇所を覗いて、適当に弄って試行錯誤して動かすことに成功。
どうやら拡張子の問題らしい。
と、ここまで整理してからスレッドに書き込もうとしたら、J_Darnley氏が既に書き込んでいました…orz
さすがです…。

でも改善できるならこれはこれで有用かなーと思い、--input-fmtオプションとして#x264devに提出することに。
動作としては、lavf inputを使用する際に、ファイルフォーマットを指定できるようになります。

ffmpegで入力ファイルフォーマットを指定するには、`-i INPUTFILE`より前に`-f FILEFORMAT`で指定します。
例えば `ffmpeg -f rawvideo -i input.yuv`と入力すれば、input.yuvをrawvideoとしてopenします。
この`-f`に相当するのが今回の--input-fmt。
先の例と同等のことをx264でしたければ、`x264 --demuxer lavf --input-fmt rawvideo input.yuv`となります。

今回のパッチ提出では、コード面で猫さんに、英語面でJEEB氏に、テスト面でChikuzen氏に頼りました。
みんな大好き。
ペロペロ。

それにしても#x264devは相変わらず緊張する…。
特にラスボスが強敵すぐる。
今回もペンギン様のドリル嘴くらいましたorz
めっちゃ怖い…。
まあ今回はコードの修正ではなくて、コメントの修正だったので気が楽でしたが…。
それでも怖い…orz
1年分の緊張をした…。

No comments:

Post a Comment