Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,38 +17,33 @@ import cx from 'classnames';

export function TwitchEditStreamInfo(p: IPlatformComponentParams<'twitch'>) {
const twSettings = p.value;
// We always pass this into TwitchEditStreamInfo
const enabledPlatformsCount = p.enabledPlatformsCount!;

function updateSettings(patch: Partial<ITwitchStartStreamOptions>) {
p.onChange({ ...twSettings, ...patch });
}
const enhancedBroadcastingEnabled = useMemo(() => {
if (twSettings?.display === 'both') {
return true;
}

const isDualStream = useMemo(() => {
return twSettings?.display === 'both' && p.isDualOutputMode;
}, [p.isDualOutputMode, twSettings?.display]);
if (enabledPlatformsCount > 1) {
return false;
}

const multiplePlatformEnabled = useMemo(() => {
if (!p.enabledPlatformsCount) return false;
return p.enabledPlatformsCount > 1;
}, [p.enabledPlatformsCount, isDualStream]);
return twSettings?.isEnhancedBroadcasting;
}, [twSettings, enabledPlatformsCount]);

const enhancedBroadcastingTooltipText = p.isDualOutputMode
? $t(
'Enhanced broadcasting in dual output mode is only available when streaming to both the horizontal and vertical displays in Twitch',
)
: $t(
'Enhanced broadcasting automatically optimizes your settings to encode and send multiple video qualities to Twitch. Selecting this option will send basic information about your computer and software setup.',
);
const bind = createBinding(twSettings, updatedSettings => updateSettings(updatedSettings));

const enhancedBroadcastingTooltipText = useMemo(() => {
return p.isDualOutputMode
? $t(
'Enhanced broadcasting in dual output mode is only available when streaming to both the horizontal and vertical displays in Twitch',
)
: $t(
'Enhanced broadcasting automatically optimizes your settings to encode and send multiple video qualities to Twitch. Selecting this option will send basic information about your computer and software setup.',
);
}, [p.isDualOutputMode]);

const enhancedBroadcastingEnabled = useMemo(() => {
if (isDualStream) return true;
if (multiplePlatformEnabled) return false;
return twSettings?.isEnhancedBroadcasting;
}, [isDualStream, multiplePlatformEnabled, twSettings?.isEnhancedBroadcasting]);

const optionalFields = (
<div key="optional">
<TwitchTagsInput label={$t('Twitch Tags')} {...bind.tags} layout={p.layout} />
Expand All @@ -69,7 +64,7 @@ export function TwitchEditStreamInfo(p: IPlatformComponentParams<'twitch'>) {
label={$t('Enhanced broadcasting')}
tooltip={enhancedBroadcastingTooltipText}
{...bind.isEnhancedBroadcasting}
disabled={isDualStream || multiplePlatformEnabled}
disabled={twSettings?.display === 'both' || enabledPlatformsCount > 1}
value={enhancedBroadcastingEnabled}
/>
<Badge
Expand Down
8 changes: 3 additions & 5 deletions app/services/platforms/twitch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,22 +233,20 @@ export class TwitchService
if (channelInfo) {
if (channelInfo?.display === 'both') {
try {
console.log('Has goLiveSettings, setting up dual stream for Twitch');
await this.setupDualStream(goLiveSettings);
} catch (e: unknown) {
console.error('Error setting up dual stream:', e);
}
} else {
// Update enhanced broadcasting setting based on go live settings
this.settingsService.setEnhancedBroadcasting(channelInfo.isEnhancedBroadcasting);
}

// Update enhanced broadcasting setting based on go live settings
this.settingsService.setEnhancedBroadcasting(channelInfo.isEnhancedBroadcasting);

await this.putChannelInfo(channelInfo);
}
} else if (this.streamingService.views.isTwitchDualStreaming) {
// Failsafe to guarantee that enhanced broadcasting is enabled if dual streaming is active
try {
console.log('Does not have goLiveSettings, setting up dual stream for Twitch');
await this.setupDualStream(goLiveSettings);
} catch (e: unknown) {
console.error('Error setting up dual stream:', e);
Expand Down
Loading