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

View File

@ -1,11 +1,11 @@
<?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">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<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"/>
</dependencies>
<customFonts key="customFonts">
@ -107,10 +107,11 @@
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</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"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments>
<segment title="360p"/>
<segment title="720p"/>
<segment title="1080p"/>
</segments>

View File

@ -1,11 +1,11 @@
<?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">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<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"/>
</dependencies>
<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"/>
<nil key="highlightedColor"/>
</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"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments>
<segment title="360p"/>
<segment title="720p"/>
<segment title="1080p"/>
</segments>