ネイティブ関数を使用して MediaMetadataretriever から取得したフレームからビットマップを処理しようとしています。しかし、私は言った致命的なクラッシュを得ました
SIGNAL 11 (SIGSEGV) at 0x422d8f20 (code=2)
SIGNAL 11 (SIGSEGV) at 0x42311320 (code=2)
どこが悪いのかを確認するためにログを記録してみました。ネイティブ関数を呼び出すとクラッシュするようです。以下は、ネイティブ関数に対して呼び出した関数です。
protected Bitmap processFrame(Bitmap l_frame) {
WarnC='a';
int[] rgba = mRGBA;
byte[] src_array =stream;
ByteArrayOutputStream src_stream = new ByteArrayOutputStream();
l_frame.compress(Bitmap.CompressFormat.PNG, 0, src_stream);
src_array = src_stream.toByteArray();
Log.i("test", "ok");
WarnC= processcaller.LaneDetection(mFrameWidth, mFrameHeight, src_array, rgba);
Bitmap bmp = g_frame;
bmp.setPixels(rgba, 0/* offset */, mFrameWidth /* stride */, 0, 0, mFrameWidth,mFrameHeight);
rgba =null;
src_array=null;
return bmp;
}
クラッシュ信号は、ネットを検索した直後に出て、Log.i("test","ok");
ほとんどの人がセグメンテーション違反であり、初期化されていない関数または存在しない関数を呼び出すことが原因である可能性があると言っています。しかし、自分のコードをスキャンすると、何も見つかりません。ポインタはありますか?