Add 360p resolution support

This commit is contained in:
Cameron Gutman 2018-05-28 13:50:20 -07:00
parent e498736af6
commit 812f3f3717
3 changed files with 29 additions and 13 deletions

View File

@ -73,13 +73,16 @@ static NSString* bitrateFormat = @"Bitrate: %.1f Mbps";
_bitrate = [currentSettings.bitrate integerValue]; _bitrate = [currentSettings.bitrate integerValue];
NSInteger framerate = [currentSettings.framerate integerValue] == 30 ? 0 : 1; NSInteger framerate = [currentSettings.framerate integerValue] == 30 ? 0 : 1;
NSInteger resolution; NSInteger resolution;
if ([currentSettings.height integerValue] == 720) { if ([currentSettings.height integerValue] == 360) {
resolution = 0; resolution = 0;
} else if ([currentSettings.height integerValue] == 1080) { } else if ([currentSettings.height integerValue] == 720) {
resolution = 1; resolution = 1;
} else if ([currentSettings.height integerValue] == 1080) {
resolution = 2;
} else { } else {
resolution = 0; resolution = 1;
} }
NSInteger onscreenControls = [currentSettings.onscreenControls integerValue]; NSInteger onscreenControls = [currentSettings.onscreenControls integerValue];
NSInteger streamingRemotely = [currentSettings.streamingRemotely integerValue]; NSInteger streamingRemotely = [currentSettings.streamingRemotely integerValue];
[self.remoteSelector setSelectedSegmentIndex:streamingRemotely]; [self.remoteSelector setSelectedSegmentIndex:streamingRemotely];
@ -108,13 +111,22 @@ static NSString* bitrateFormat = @"Bitrate: %.1f Mbps";
defaultBitrate = 20000; defaultBitrate = 20000;
} }
// 720p60 and 1080p30 are 10 Mbps // 720p60 and 1080p30 are 10 Mbps
else if (frameRate == 60 || resHeight == 1080) { else if ((frameRate == 60 && resHeight == 720) ||
(frameRate == 30 && resHeight == 1080)) {
defaultBitrate = 10000; defaultBitrate = 10000;
} }
// 720p30 is 5 Mbps // 720p30 is 5 Mbps
else { else if (resHeight == 720) {
defaultBitrate = 5000; defaultBitrate = 5000;
} }
// 360p60 is 2 Mbps
else if (frameRate == 60 && resHeight == 360) {
defaultBitrate = 2000;
}
// 360p30 is 1 Mbps
else {
defaultBitrate = 1000;
}
_bitrate = defaultBitrate; _bitrate = defaultBitrate;
[self.bitrateSlider setValue:defaultBitrate / BITRATE_INTERVAL animated:YES]; [self.bitrateSlider setValue:defaultBitrate / BITRATE_INTERVAL animated:YES];
@ -141,11 +153,13 @@ static NSString* bitrateFormat = @"Bitrate: %.1f Mbps";
} }
- (NSInteger) getChosenStreamHeight { - (NSInteger) getChosenStreamHeight {
return [self.resolutionSelector selectedSegmentIndex] == 0 ? 720 : 1080; const int resolutionTable[] = { 360, 720, 1080 };
return resolutionTable[[self.resolutionSelector selectedSegmentIndex]];
} }
- (NSInteger) getChosenStreamWidth { - (NSInteger) getChosenStreamWidth {
return [self getChosenStreamHeight] == 720 ? 1280 : 1920; // Assumes fixed 16:9 aspect ratio
return ([self getChosenStreamHeight] * 16) / 9;
} }
- (void) saveSettings { - (void) saveSettings {

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" colorMatched="YES" initialViewController="EVd-wq-ego"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" colorMatched="YES" initialViewController="EVd-wq-ego">
<device id="ipad9_7" orientation="portrait"> <device id="ipad9_7" orientation="portrait">
<adaptation id="fullscreen"/> <adaptation id="fullscreen"/>
</device> </device>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<customFonts key="customFonts"> <customFonts key="customFonts">
@ -107,10 +107,11 @@
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="ckc-Dm-8ex"> <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="1" id="ckc-Dm-8ex">
<rect key="frame" x="16" y="200" width="209" height="29"/> <rect key="frame" x="16" y="200" width="209" height="29"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments> <segments>
<segment title="360p"/>
<segment title="720p"/> <segment title="720p"/>
<segment title="1080p"/> <segment title="1080p"/>
</segments> </segments>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES" initialViewController="DL0-L5-LOv"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES" initialViewController="DL0-L5-LOv">
<device id="retina4_7" orientation="portrait"> <device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/> <adaptation id="fullscreen"/>
</device> </device>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<customFonts key="customFonts"> <customFonts key="customFonts">
@ -132,10 +132,11 @@
<color key="textColor" red="0.9513210654258728" green="0.97490358352661133" blue="0.99987185001373291" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="textColor" red="0.9513210654258728" green="0.97490358352661133" blue="0.99987185001373291" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="PCM-t4-Sha"> <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="1" id="PCM-t4-Sha">
<rect key="frame" x="16" y="181" width="200" height="29"/> <rect key="frame" x="16" y="181" width="200" height="29"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments> <segments>
<segment title="360p"/>
<segment title="720p"/> <segment title="720p"/>
<segment title="1080p"/> <segment title="1080p"/>
</segments> </segments>