diff options
author | Robert Henigan <robert.henigan@livio.io> | 2021-03-23 11:20:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 11:20:59 -0400 |
commit | d8a0fd1ae70937ba953612564089ce1c6569fbd7 (patch) | |
tree | 2a86d28181329b4179cb4b2fe137bbad2ae4bd77 | |
parent | c480dd42fd803ddce1ce3df852fca295291c3b95 (diff) | |
download | sdl_android-d8a0fd1ae70937ba953612564089ce1c6569fbd7.tar.gz |
Update VideoStream based on ranges (#1636)
* Update VideoStream based on ranges
* Remove unused import
* Fix getSupportedCapabilities for 7.0
* Remove unused Import
Co-authored-by: Henigan <rheniga1@MGC12Z921DLVCG.fbpld77.ford.com>
-rw-r--r-- | android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java | 43 |
1 files changed, 26 insertions, 17 deletions
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 fa2b99eeb..c7a7ca92c 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 @@ -430,6 +430,19 @@ public class VideoStreamManager extends BaseVideoStreamManager { if (dispCap != null) { params.setResolution(dispCap.getScreenParams().getImageResolution()); } + + VideoStreamingCapability videoStreamingCapability = new VideoStreamingCapability(); + videoStreamingCapability.setScale(params.getScale()) + .setPreferredResolution(params.getResolution()) + .setAdditionalVideoStreamingCapabilities(new ArrayList<VideoStreamingCapability>()); + //Compare the default params to the ranges set by the developer + List<VideoStreamingCapability> vscList = getSupportedCapabilities(videoStreamingCapability); + //If default params not within range the video will not stream + if (vscList == null || vscList.isEmpty()) { + stateMachine.transitionToState(StreamingStateMachine.STOPPED); + DebugTool.logError(TAG, "The Video stream was not started because there were no supported video streaming capabilities, please double check that the VideoStreamRanges provided are not disabled ranges"); + return; + } startStreaming(params, encrypted); } } @@ -794,15 +807,13 @@ public class VideoStreamManager extends BaseVideoStreamManager { return null; } - List<VideoStreamingCapability> allCapabilities = rootCapability.getAdditionalVideoStreamingCapabilities(); - if (allCapabilities == null){ - return null; - } - - if (allCapabilities != null){ - rootCapability.setAdditionalVideoStreamingCapabilities(null); - allCapabilities.add(rootCapability); + List<VideoStreamingCapability> allCapabilities = new ArrayList<>(); + List<VideoStreamingCapability> additionalCapabilities = rootCapability.getAdditionalVideoStreamingCapabilities(); + if (additionalCapabilities != null){ + allCapabilities.addAll(additionalCapabilities); } + rootCapability.setAdditionalVideoStreamingCapabilities(null); + allCapabilities.add(rootCapability); for (VideoStreamingCapability capability : allCapabilities) { ImageResolution imageResolution = capability.getPreferredResolution(); @@ -858,15 +869,13 @@ public class VideoStreamManager extends BaseVideoStreamManager { } } - double diagonal; - if (capability.getDiagonalScreenSize() == null) { - diagonal = parameters.getPreferredDiagonal(); - } else { - diagonal = capability.getDiagonalScreenSize(); - } - - if (range.getMinimumDiagonal() != null && range.getMinimumDiagonal() > diagonal) { - return false; + if (capability.getDiagonalScreenSize() != null) { + double diagonal = capability.getDiagonalScreenSize(); + if (range.getMinimumDiagonal() != null) { + if (range.getMinimumDiagonal() <= 0.0 || range.getMinimumDiagonal() > diagonal) { + return false; + } + } } return true; |