こちらもはじめまして。yosといいます。
nrtさんご指摘の(1)の部分に関しては、データセクションの最後に各rowに対応したエンコードデータ
のオフセットテーブルがあると公式資料に書いています。
よって、自分は下記のような方法でこの部分の修正を行っています。
1. RAWデータのセクションの長さを格納するためのグローバル変数の追加
例)int rawdata_seclen;
2. 上記変数に代入:関数parse_foveon()内にrawデータのオフセット(data_offset)に代入している部分が
あるので、その直後に追加。
例)rawdata_seclen = len;
3. 各rowをデコードする際、適切な読み込み開始位置をテーブルから読み、ファイルポインタを移動
下記の2行の記述を「for(row=0;row<height;row++){」のループ内の最初の位置に挿入する。
例)fseek( ifp, data_offset - 24 + rawdata_seclen - 4*(height-row), SEEK_SET );
fseek( ifp, data_offset + 4 + 2*1024 + 4* 1024 + get4(), SEEK_SET );
4. テーブル使用で読み出し位置の問題はなくなるので、下記の1行を消す。場所は上記のループ内。
削除する部分)if (!bit && !fixed) get4();
dcrawがSD14への未対応の件、dpreviewでも話題になっていましたが、指摘していいものかどうかと迷っていま
した。まずは、DaveCoffin氏にメールを送って、とか...。ただ、ソースの中にFOVEONに関する部分はrestricted
となっており、わざと修正していない線もあるのかと思います。公式の資料に書かれているテーブルの存在を無視
するとは思えないからです。
自分は一応SD14ユーザになったばかりで、センサの吐き出すホントのRAWの情報が知りたくて、また、いつかは
オリジナルの現像ソフトも作れたら、と思って、dcrawにたどり着きました。
長文失礼しました。これを機によろしくお願い致します、nrtさん & 皆様。m(_ _)m