2011/03/07

[camera]OMXMaster::addPlugin()で落ちる

思い出しながら、USBカメラを動かそうとしている。
最後に動いたのは、froyoのとき。
gingerbreadでもそんなに変わらんだろうと思っている。
まあ、ディレクトリなんかは変わってたけど。

ドライバは、USBカメラを認識してくれた。
さて、とカメラアプリを起動させたのだが、いきなりアプリが落ちる。
logcatで見ると、

F/OMXMaster( 1088): frameworks/base/media/libstagefright/omx/OMXMaster.cpp:90 err != OMX_ErrorNoMore

などといわれている。
その後、mediaserverが落ちる。というよりも、mediaserverが落ちるのは上記のせいだろう。


よくわからないが、キーワードは「omx」「libstagefright」「openmax」というところか。
openmaxは、Android.mkに出てきてた。
libstagefrightは検索したけど、よくわからず。

出てきたのは、OpenMAX
これはKHRONOSがまとめてる?やつで、OpenGLとかあんなのと同じ感じがする。
ストリーミングのコーデックAPIをまとめているようだ。
omxは、これの略だろう。

カメラ画像はストリーミング的な扱いになっているのか?
フレームバッファにばんばん書き込んでるだけかと思っていたのだけど。
少なくとも、CameraHardwareはそんな風になってたな。

E/CameraHolder( 1098): fail to connect Camera

落ちた後は、こんなログが出ている。
android.hardware.Camera.open(id)が呼ばれているので、たどってみよう。
Cameraのコンストラクタが呼ばれ、native_setup()が呼ばれて。。。どこにいくんだ?
→frameworks/base/core/jni/android_hardware_Camera.cpp
→frameworks/base/libs/camera/Camera.cpp
・・・

疲れた。
全部追わなくていいのだけど、ログがこれくらいだとわからんなぁ。

まあ、Androidは久しぶりなので、リハビリがてら追っていくことにしよう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。