dji-sdk / Mobile-SDK-Android

DJI Mobile SDK for Android: http://developer.dji.com/mobile-sdk/
Other
983 stars 579 forks source link

Mavic Mini YUV data not received #592

Closed jeryini closed 2 years ago

jeryini commented 4 years ago

Hello!

I'm using Mobile SDK Android library version 4.13 which has official support for Mavic Mini. I'm getting all telemetry data and also video feed. But due to requirements to do some processing on the video feed, I'm setting YUV data callback:

codecManager.enabledYuvData(true);
codecManager.setYuvDataCallback(new DJICodecManager.YuvDataCallback() {
    @Override
    public void onYuvDataReceived(MediaFormat mediaFormat, ByteBuffer yuvFrame, int dataSize, int width, int height) 

Unfortunately I'm not receiving anything inside onYuvDataReceived method. I should say that I also own Mavic 2 Zoom and it works flawlessly. Is maybe YUVDataCallback not supported for Mavic Mini?

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #38329:

Dear jeryini,

Thank you for contacting DJI. I tested it with 4.13.1 and YUVfeature works well. Can you please upgrade to the latest 4.13.1 and test it again?

Thanks,

Luce Luo DJI Developer Support

jeryini commented 4 years ago

Hello! I just tried with 4.13.1 and there are still no yuvframes being received. But I'm seeing this in the console, I don't think I saw this with Mavic 2 Zoom:

2020-08-25 15:02:11.768 546-546/co.dronecontrol.app W/MediaPlayer: mediaplayer went away with unhandled events
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: ================================================================================
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog:                                    鉴权错误信息                                  
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: ================================================================================
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: |SHA1Package:80:3D:40:00:AE:2C:CE:87:EB:1E:6D:ED:97:5A:6A:4E:49:0A:F8:CC:co.dro|
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: |necontrol.app                                                                 |
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: |key:                                                                          |
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: |csid:1ac25ad91663428fade7e93dece31063                                         |
2020-08-25 15:02:11.935 546-2350/co.dronecontrol.app I/authErrLog: |gsid:011017133087159836053306500021717846954                                  |
2020-08-25 15:02:11.936 546-2350/co.dronecontrol.app I/authErrLog: |json:{"status":"0","info":"INVALID_USER_KEY","infocode":"10001"}              |
2020-08-25 15:02:11.936 546-2350/co.dronecontrol.app I/authErrLog:                                                                                
2020-08-25 15:02:11.936 546-2350/co.dronecontrol.app I/authErrLog: 请在高德开放平台官网中搜索"INVALID_USER_KEY"相关内容进行解决
2020-08-25 15:02:11.936 546-2350/co.dronecontrol.app I/authErrLog: ================================================================================
2020-08-25 15:02:11.940 546-546/co.dronecontrol.app W/amapsdk: Key验证失败:[INVALID_USER_KEY]

Also how can I access above linked Zendesk ticket? I've an account at djisdksupport but when I try to open the link I get the following message: The page you were looking for doesn't exist.

dji-dev commented 4 years ago

Agent comment from Luce Luo in Zendesk ticket #38329:

Dear jeryini,

Thank you for contacting DJI. The log seems something related to the GAODE map and missing the KEY. Please try to search if you are using the GAODE map.

Can you please show me some debug screenshots or videos like the following?

showToast("enabledYuvData");

codecManager.enabledYuvData(true);codecManager.setYuvDataCallback(new DJICodecManager.YuvDataCallback() { @Override public void onYuvDataReceived(MediaFormat mediaFormat, ByteBuffer yuvFrame, int dataSize, int width, int height) {

showToast( "onYuvDataReceived called");

}

Thanks,

Luce Luo DJI Developer Support

jeryini commented 4 years ago

Hello @dji-dev !

Even better, I've created an example gist that uses Mobile-UXSDK-Beta-Android as a base. I'm using latest master branch from that project. Basically I added a part fpvWidget.setCodecManagerCallback to set new codec manager and enable YUV data. Here is the log output when running the app and that main default layout activity and being connected to the drone. If you search for string you will be able to find entry for both Codec manager changed and YUV data enabled, but nothing for New YUV data received. Hope this will help you figure out the problem.

jeryini commented 4 years ago

Hello @dji-dev !

Did you maybe get back from support regarding my above example and log output?

jeryini commented 4 years ago

Bump @dji-dev