summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authornoah-livio <95378272+noah-livio@users.noreply.github.com>2022-04-11 16:36:55 -0400
committerGitHub <noreply@github.com>2022-04-11 16:36:55 -0400
commit64ade94c811ae7eeb02c6e70a46321f50efbf5dc (patch)
tree92880cd2ea077997dc5cecd1e2604f1d86dc8a7a /android
parentc163c173e2b00c5e502b155d3a051c6f3bf4e6c5 (diff)
parenteea49e9854cefde3c4c2a8f95055410f6867640f (diff)
downloadsdl_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')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java7
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java13
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);
+ }
}
}
};