sdl_core icon indicating copy to clipboard operation
sdl_core copied to clipboard

Video stream start service ACK payload randomly returns zero for height and width

Open NicoleYarroch opened this issue 5 years ago • 0 comments

Bug Report

When the video stream is resumed (by sending a start video service control frame) after being stopped (by sending an end video service control frame) sometimes the video start service ACK payload's width and height are both set to 0. This never happens the very first time the video start service ACKs and it also seems to be completely random.

I have seen this issue when streaming video over a TCP secondary transport and using iAP-Bluetooth as as primary transport on SYNC 4. Due to limitations with keeping a socket open on an iPhone while the app on the iPhone is backgrounded, the sdl_iOS library must send an end video service control frame and close the TCP socket when the app on the phone is backgrounded. The socket is reopened and a video start control frame is sent when the app on the device is foregrounded. When testing backgrounding and foregrounding the app on the device, sometimes the above bug occurs randomly.

Reproduction Steps
  1. Connect a navigation app using video streaming with secondary transports enabled to the module.
  2. Launch the SDL app and wait for video to start streaming.
  3. Put the app on the iPhone in the background. The sdl_iOS library sends a video end service control frame and closes the TCP socket. The primary transport over BT is still open.
  4. Bring the app on the iPhone to the foreground. The sdl_iOS library opens the TCP socket and sends a video start service control frame.
Expected Behavior

The video start service ACK payload's width and height should match the size of the screen.

Observed Behavior

The video start service ACK payload's width and height is sometimes {0, 0}.

OS & Version Information
  • OS/Version: n/a
  • SDL Core Version: SYNC 4
  • Testing Against: SYNC 4

NicoleYarroch avatar Mar 31 '20 13:03 NicoleYarroch