diff options
author | noah-livio <95378272+noah-livio@users.noreply.github.com> | 2022-04-11 16:36:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-11 16:36:55 -0400 |
commit | 64ade94c811ae7eeb02c6e70a46321f50efbf5dc (patch) | |
tree | 92880cd2ea077997dc5cecd1e2604f1d86dc8a7a /android | |
parent | c163c173e2b00c5e502b155d3a051c6f3bf4e6c5 (diff) | |
parent | eea49e9854cefde3c4c2a8f95055410f6867640f (diff) | |
download | sdl_android-64ade94c811ae7eeb02c6e70a46321f50efbf5dc.tar.gz |
Merge pull request #1808 from smartdevicelink/video_streaming_restart_error
Fix auto restart video stream to ensure hmi level is streamable
Diffstat (limited to 'android')
2 files changed, 17 insertions, 3 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java index 79515b5ee..35fc87683 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java @@ -251,6 +251,10 @@ public class VirtualDisplayEncoder { inputSurface.release(); inputSurface = null; } + if (mEglCore != null) { + mEglCore.release(); + mEglCore = null; + } } catch (Exception ex) { DebugTool.logError(TAG, "shutDown() failed"); } @@ -262,6 +266,9 @@ public class VirtualDisplayEncoder { * @param Height */ private void setupGLES(int Width, int Height) { + if (mEglCore != null) { + mEglCore.release(); + } mEglCore = new EglCore(null, 0); // This 1x1 offscreen is created just to get the texture name (mTextureId). diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java index d51dbd094..9874c0d7c 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java @@ -163,12 +163,15 @@ public class VideoStreamManager extends BaseVideoStreamManager { public void onServiceEnded(SdlSession session, SessionType type) { if (SessionType.NAV.equals(type)) { if (remoteDisplay != null) { - stopStreaming(withPendingRestart); + if (withPendingRestart && isHMIStateVideoStreamCapable(currentOnHMIStatus)) { + stopStreaming(withPendingRestart); + } else { + stopStreaming(); + } } stateMachine.transitionToState(StreamingStateMachine.NONE); transitionToState(SETTING_UP); - - if (withPendingRestart) { + if (withPendingRestart && isHMIStateVideoStreamCapable(currentOnHMIStatus)) { VideoStreamManager manager = VideoStreamManager.this; manager.internalInterface.startVideoService(manager.getLastCachedStreamingParameters(), manager.isEncrypted, withPendingRestart); } @@ -207,6 +210,10 @@ public class VideoStreamManager extends BaseVideoStreamManager { if (hasStarted && (isHMIStateVideoStreamCapable(prevOnHMIStatus)) && (!isHMIStateVideoStreamCapable(currentOnHMIStatus))) { stopVideoStream(); } + if (withPendingRestart && hasStarted && (!isHMIStateVideoStreamCapable(prevOnHMIStatus)) && (isHMIStateVideoStreamCapable(currentOnHMIStatus))) { + VideoStreamManager manager = VideoStreamManager.this; + manager.internalInterface.startVideoService(manager.getLastCachedStreamingParameters(), manager.isEncrypted, withPendingRestart); + } } } }; |