Skip to content

Commit d8a0fd1

Browse files
Robert HeniganHenigan
andauthored
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>
1 parent c480dd4 commit d8a0fd1

1 file changed

Lines changed: 26 additions & 17 deletions

File tree

android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,19 @@ public void onError(String info) {
430430
if (dispCap != null) {
431431
params.setResolution(dispCap.getScreenParams().getImageResolution());
432432
}
433+
434+
VideoStreamingCapability videoStreamingCapability = new VideoStreamingCapability();
435+
videoStreamingCapability.setScale(params.getScale())
436+
.setPreferredResolution(params.getResolution())
437+
.setAdditionalVideoStreamingCapabilities(new ArrayList<VideoStreamingCapability>());
438+
//Compare the default params to the ranges set by the developer
439+
List<VideoStreamingCapability> vscList = getSupportedCapabilities(videoStreamingCapability);
440+
//If default params not within range the video will not stream
441+
if (vscList == null || vscList.isEmpty()) {
442+
stateMachine.transitionToState(StreamingStateMachine.STOPPED);
443+
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");
444+
return;
445+
}
433446
startStreaming(params, encrypted);
434447
}
435448
}
@@ -794,15 +807,13 @@ private List<VideoStreamingCapability> getSupportedCapabilities(VideoStreamingCa
794807
return null;
795808
}
796809

797-
List<VideoStreamingCapability> allCapabilities = rootCapability.getAdditionalVideoStreamingCapabilities();
798-
if (allCapabilities == null){
799-
return null;
800-
}
801-
802-
if (allCapabilities != null){
803-
rootCapability.setAdditionalVideoStreamingCapabilities(null);
804-
allCapabilities.add(rootCapability);
810+
List<VideoStreamingCapability> allCapabilities = new ArrayList<>();
811+
List<VideoStreamingCapability> additionalCapabilities = rootCapability.getAdditionalVideoStreamingCapabilities();
812+
if (additionalCapabilities != null){
813+
allCapabilities.addAll(additionalCapabilities);
805814
}
815+
rootCapability.setAdditionalVideoStreamingCapabilities(null);
816+
allCapabilities.add(rootCapability);
806817

807818
for (VideoStreamingCapability capability : allCapabilities) {
808819
ImageResolution imageResolution = capability.getPreferredResolution();
@@ -858,15 +869,13 @@ private Boolean inRange(VideoStreamingCapability capability, VideoStreamingRange
858869
}
859870
}
860871

861-
double diagonal;
862-
if (capability.getDiagonalScreenSize() == null) {
863-
diagonal = parameters.getPreferredDiagonal();
864-
} else {
865-
diagonal = capability.getDiagonalScreenSize();
866-
}
867-
868-
if (range.getMinimumDiagonal() != null && range.getMinimumDiagonal() > diagonal) {
869-
return false;
872+
if (capability.getDiagonalScreenSize() != null) {
873+
double diagonal = capability.getDiagonalScreenSize();
874+
if (range.getMinimumDiagonal() != null) {
875+
if (range.getMinimumDiagonal() <= 0.0 || range.getMinimumDiagonal() > diagonal) {
876+
return false;
877+
}
878+
}
870879
}
871880

872881
return true;

0 commit comments

Comments
 (0)