Hi, I’ve run into a regression with RawVideoSink frequently returning corrupt frames in GSDK 7.7.1. This issue does not exist in 7.7.0. It is obvious when you see it, flickering green or with blocks of the image incorrectly positioned, often multiple times per second. Most frames are accurate and the video is otherwise smooth. It appears to affect semi-planar YUV data but not fully planar data. The YUV format differs by Android device, though I don’t know how that is decided. The drone and connection method do not appear to make any difference.
Drones tested:
- Anafi 4k [HW_03, v1.8.2] with Sky Controller 3 [HW 2, v1.8.1]
- Anafi USA [HW_02, v1.10.2] with Sky Controller 3 [HW 3, v1.8.1]
- Sphinx 2.12.2 with anafi drone and anafi-pc firmware using Anafi 4k as wifi interface
Android devices tested:
- Galaxy Tab A7 with Android 12 - Receives semi-planar YUV and has the issue
- Pixel 7 Pro with Android 13 - Receives fully planar YUV and does not have the issue
I tested this with the HelloDrone example app modified to render to a SurfaceTexture using RawVideoSink. The issue is also experienced in another project that similarly uses RawVideoSink.
Logs are attached for the Tab A7 using GSDK 7.7.0 and 7.7.1.
Debug logging was enabled like so:
Os.setenv("ULOG_LEVEL" , "DEBUG", true)
ULog.redirectToLogcat()
In an effort to reduce messages unrelated to the issue, I used this logcat filter:
package:mine (tag:gsdk & -tag:gsdk.monitor & -tag:gsdk.http) | (tag:sdkcore & -tag:arsdkcore) | tag:pdraw | tag:rtp | tag:rtsp
logcat_gsdk_7.7.0_7.7.1.zip (14.4 KB)