アサリの砂抜きは不要?

アサリの砂抜きは常識ですが、実際は潮干狩りで取ったアサリを良く洗えば直ぐ食べれます??

OpenCVとFFmpeg(5)

2010-01-17 05:55:17 | iPhone開発
問題点を整理すると
1)OpenCVとの連携は後で考えるとして、FFmpeg単独でのiPhone移植を行う。
2)FFmpeg4iphone に実際のリブもあった
   http://code.google.com/p/ffmpeg4iphone/
  が、アプリにリンクすると ldr 12bit displacement out of range のエラーが出る。
3)上記のエラーはXcode3.1.xのバグのようだ。内容的にはjumpテーブルのオーバフロー
だろうから、全体コードを少なくすれば良いかも。。。アップルがBUGFIXするまで待て
ないので。
4)そのためには、FFmpegを自前でインストールして不要な部分を削除するなどの方法を
取る必要がある。

  なので、FFmpeg最新版のインストールからはじめる。

1.gas-preprocesser.pl のダウンロード
2.FFmpegのダウンロード
svnを利用して最新をダウンロードします。
3.ffmpeg環境でコンフィグを実行しますが、私の場合、動画作成したいので、動画再生
部分は作らない事にします。また、そのままインストールすると/usr/localの下になる
のでMacOS用ではないので、ローカルフォルダーinst_ffmpegに保存するようにします。
 毎回、./configure --xxxx xxxx と叩くのはいやなので、いかのようなスクリプトを
つくって実行します。

#/usr/bin/bash
# all iPhones
#./configure --disable-decoders --prefix=inst_ffmpeg --enable-cross-compile
--arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-
preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'
--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk
--cpu=arm1176jzf-s --extra-cflags='-arch armv6' --extra-ldflags='-arch armv6'

#
# iPhone 3GS
./configure --disable-decoders --prefix=inst_ffmpeg --enable-cross-compile
--arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
--as='gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'
--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk
--cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7'
--enable-pic

  上記を実行して、その後
 make install で、inst_ffmpeg フォルダー以下にlib includeなどが作製
されました。

 この結果、libcodec.aのサイズが27M程度から12Mになった。
4.このlibを使ってアプリにリンクしたら、4つほどcodec関連の関数が無いとのエラー
が出たので、ダミーで作っておきます。。。問題ないなら良いが。。。

/**************************************************************/
void ff_mpeg4_decode_picture_header() { printf("----") ;}
int ff_h264_decode_seq_parameter_set ;
void ff_h264_decode_picture_parameter_set() { printf("----") ;}
void ff_h264_decode_sei() { printf("----") ;}

5.これでリンクしたら、見事に ldr 12bit displacement out of range  エラーは
出なくなった。ライブラリィーサイズが半分になったのが効いたようですね。

6.これで一応はリンクまで出来たので後は動作実験。。。さて、無事ビデオ撮影できるか。。

(PS)
 なぜ、ビデオ撮影にFFmpegを使うかというと、3GS標準のビデオは外部から制御
できないので使えない。。。当然3Gも使えない。。。ので、性能は悪いが、
プログラム制御できる「ビデオもどき」を作るためです。 APP-STOREに同じような
プログラムが出ていました。。カメラ機能のみでTOP10以内になっています。。。
私は当然RunLogger機能の一部として考えており、「サーキットログとしてビデオ撮影
もするつもり」です。
 Appleがビデオ制御APIを公開してくれれば、こんな事しなくて済むのですが。。

旅行グルメ

にほんブログ村 旅行ブログ 旅行グルメへ
にほんブログ村