Start_video_streaming fails when connected through SkyController

I am using the Olympe SDK to connect to my Anafi Drone. When connecting directly to the Drone I can call start_video_streaming and get streaming callbacks, however when connecting through a SkyController I get an error in the logs:

14:51:28.440 Unable to enable legacy video streaming
14:51:28.440 Result ReturnTuple(OK=False, message='Unable to enable legacy video streaming', value=None, error_code=3) 

Other command such as startRecording and stopRecording works fine in both cases.

I am using Olympe SDK 1.2.0.

I’m also seeing this when trying to connect using the SkyController.

Hello,

Thank you for reporting this issue.
We’re currently working on a fix but in the meantime could you try the following workaround ?
Please try the following method to connect to your SkyCtrl3:
drone = olympe.Drone("192.168.53.1", is_skyctrl=True, drone_type=2324)
Thanks

Nicolas

I get the same problem using the suggested workaround.

Kind regards
Kristian

I think this is the line causing the problem:

If I understand things correctly this causes legacy streaming to be enabled for the Anafi drone when connected through the SkyController.

I am managed to workaround the problem by overriding the connect method and creating Pdraw with legacy set to False.

def connect(self):
    super().connect()
    # The legacy flag is set to True when connecting through
    # a SkyController in the original method.
    # This forces it to False to fix streadming video in this case.
    self._pdraw = Pdraw(
        name=self._name,
        device_name=self._device_name,
        legacy=False,
        buffer_queue_size=self.video_buffer_queue_size,
    )
2 Likes