summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinichi Watanabe <swatanabe@xevo.com>2020-12-04 13:45:10 +0900
committerShinichi Watanabe <swatanabe@xevo.com>2020-12-04 13:45:10 +0900
commita2a77b21ef90412ccfebc55c0371f8d3e7d5153f (patch)
tree4c4ff66489d491284136d36799225951de4d40bb
parent7bd29d944b9bc163f75d4bfa109be3a83cef8d05 (diff)
downloadsdl_ios-a2a77b21ef90412ccfebc55c0371f8d3e7d5153f.tar.gz
Implementing SDL 0323 (sdl_ios issue #1860): Align VideoStreamingParameters with VideoStreamingCapability.
-rw-r--r--SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m9
1 files changed, 6 insertions, 3 deletions
diff --git a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
index 7117f6799..107aaf5a2 100644
--- a/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
+++ b/SmartDeviceLink/private/SDLStreamingVideoLifecycleManager.m
@@ -419,10 +419,13 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions);
}
- // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings.
+ // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings
+ // (Exception: ExpectedFrameRate, AverageBitRate)
for (id key in self.customEncoderSettings.keyEnumerator) {
- if ([(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]) {
- // do NOT override framerate if custom setting is higher than current setting.
+ // do NOT override framerate or average bitreate if custom setting is higher than current setting.
+ // See SDL 0323 (https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0323-align-VideoStreamingParameter-with-capability.md) for details.
+ if ([(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] ||
+ [(NSString *)key isEqualToString:(__bridge NSString *)kVTCompressionPropertyKey_AverageBitRate]) {
if ([self.customEncoderSettings valueForKey:key] < self.videoEncoderSettings[key]) {
self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key];
}