ffmpeg ライブラリを使用してビデオをデコードし、フレーム バッファー データを取得しました。
フレーム バッファを Android バイト配列 (フォーマットは RGB565) にコピーしたい。
フレームバッファデータをCからAndroidバイト配列にコピーするには?
例やアドバイスをくれる人はいますか?
ffmpeg ライブラリを使用してビデオをデコードし、フレーム バッファー データを取得しました。
フレーム バッファを Android バイト配列 (フォーマットは RGB565) にコピーしたい。
フレームバッファデータをCからAndroidバイト配列にコピーするには?
例やアドバイスをくれる人はいますか?
そのために使用できますjava.nio.ByteBuffer
:
ByteBuffer theVideoFrame = ByteBuffer.allocateDirect(frameSize);
...
CopyFrame(theVideoFrame);
ネイティブ コードは次のようになります。
JNIEXPORT void JNICALL Java_blah_blah_blah_CopyFrame(JNIEnv *ioEnv, jobject ioThis, jobject byteBuffer)
{
char *buffer;
buffer = (char*)(ioEnv->GetDirectBufferAddress(byteBuffer));
if (buffer == NULL) {
__android_log_write(ANDROID_LOG_VERBOSE, "foo", "failed to get NIO buffer address");
return;
}
memcpy(buffer, theNativeVideoFrame, frameSize);
}
から にデータをコピーするには、次のようなものを使用ByteBuffer
しbyte[]
ます。
theVideoFrame.get(byteArray);