Я работаю над DJI Mobile SDK в студии Android.Я хочу применить фильтры Opencv к видео в прямом эфире с камеры фантомного беспилотника.Прямая трансляция видео находится в байте [] videoBuffer, как показано в коде.
mReceivedVideoDataCallBack = new VideoFeeder.VideoDataCallback() {
@Override
public void onReceive(byte[] videoBuffer, int size) {
if (mCodecManager != null) {
mCodecManager.sendDataToDecoder(videoBuffer, size);
}
}
};
Один из способов, который я считаю, - сначала преобразовать byte [] videoBuffer в Mat в Java, а затем передать адрес Mat во внешний класс C.
Второй - передать byte [] videoBuffer в extern C как jbyteArray, а затем преобразовать этот jbyteArray в Mat в C.
Я не знаю роли размера int в коде.
Я столкнулся с проблемой в обоих.Любая помощь будет оценена.Я застрял на этом дерьме больше месяца.:(