gpt4 book ai didi

android - 如何将解码帧从 C 复制到 Android

转载 作者:行者123 更新时间:2023-11-30 03:24:54 24 4
gpt4 key购买 nike

我使用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);

关于android - 如何将解码帧从 C 复制到 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com