如何在java

时间:2018-05-16 06:57:07

标签: java android c android-studio dji-sdk

我正在安装Android工作室的DJI Mobile SDK。我想在幻像无人机摄像机上对视频实时馈送应用Opencv滤镜。视频实时馈送位于byte [] videoBuffer中,如代码所示。

mReceivedVideoDataCallBack = new VideoFeeder.VideoDataCallback() {
        @Override
        public void onReceive(byte[] videoBuffer, int size) {
            if (mCodecManager != null) {
                mCodecManager.sendDataToDecoder(videoBuffer, size);
            }
        }
    }; 

我认为一种方法是先在java中将byte [] videoBuffer转换为Mat,然后将Mat地址传递给extern C类。

其次是将byte [] videoBuffer作为jbyteArray传递给extern C,然后将此jbyteArray转换为C中的Mat。

我不知道int size在代码中的作用。

我两个都面临着问题。任何帮助将不胜感激。我被困在这个狗屎上一个多月了。 :(

1 个答案:

答案 0 :(得分:0)

videoBuffer可能包含无效字节,因此我们需要使用' size'表示有效部分,表示有效字节从videoBuffer [0]开始,以最后一个字节结束:videoBuffer [size-1]