Skip to content

Conversation

@ipavlidakis
Copy link
Contributor

🔗 Issue Links

Provide all JIRA tickets and/or GitHub issues related to this PR, if applicable.

🎯 Goal

Describe why we are making this change.

📝 Summary

Provide bullet points with the most important changes in the codebase.

🛠 Implementation

Provide a detailed description of the implementation and explain your decisions if you find them relevant.

TODO

  • Remove the SDP munging once StereoPlayout negotiation is enabled on backend.

🎨 Showcase

Add relevant screenshots and/or videos/gifs to easily see what this PR changes, if applicable.

Before After
img img

🧪 Manual Testing Notes

Explain how this change can be tested manually, if applicable.

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change follows zero ⚠️ policy (required)
  • This change should receive manual QA
  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (tutorial, CMS)

🎁 Meme

Provide a funny gif or image that relates to your work on this pull request. (Optional)

@ipavlidakis ipavlidakis self-assigned this Nov 11, 2025
@ipavlidakis ipavlidakis added the enhancement New feature or request label Nov 11, 2025
@github-actions
Copy link

1 Message
📖 Skipping Danger since the Pull Request is classed as Draft/Work In Progress

Generated by 🚫 Danger

@ipavlidakis ipavlidakis force-pushed the enhancement/hifi/stereo-playout-3 branch from e2db509 to e2b021e Compare November 13, 2025 17:26
@github-actions
Copy link

Public Interface

- public struct AudioSessionConfiguration: ReflectiveStringConvertible, Equatable, Sendable  
+ public struct AudioSessionConfiguration: CustomStringConvertible, Equatable, Sendable  
-   public static func ==(lhs: Self,rhs: Self)-> Bool
+   public var description: String
+   
+ 
+   public static func ==(lhs: Self,rhs: Self)-> Bool

@ipavlidakis ipavlidakis force-pushed the enhancement/hifi/stereo-playout-3 branch from 86c4c5f to 3b8bd28 Compare November 19, 2025 09:52
@ipavlidakis ipavlidakis force-pushed the enhancement/hifi/feature-implementation branch from ebfedd9 to 6b6c886 Compare November 20, 2025 01:46
@ipavlidakis ipavlidakis force-pushed the enhancement/hifi/stereo-playout-3 branch from cba83ea to c085841 Compare November 26, 2025 13:08
}
case .info:
log.info(trimmedMessage, subsystems: .webRTCInternal)
if Self.isMessageFromValidFile(trimmedMessage) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, why do we need this? It won't show other info logs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those logs are noise for most people (especially integrators). But your point is valid. Let me improve it.

import Foundation

/// A helper that retries synchronous operations a fixed number of times.
enum RetriableTask {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't we already have something like this? I believe it worked with policies.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do but it's for async operations. I tried using it but it required more changes that i wasn't really keen to do.

@ipavlidakis ipavlidakis force-pushed the enhancement/hifi/stereo-playout-3 branch from c085841 to 23ac124 Compare November 27, 2025 14:33
@ipavlidakis ipavlidakis marked this pull request as ready for review November 27, 2025 16:43
@ipavlidakis ipavlidakis requested a review from a team as a code owner November 27, 2025 16:43
@Stream-SDK-Bot
Copy link
Collaborator

SDK Size

title develop branch diff status
StreamVideo 8.79 MB 8.98 MB +196 KB 🟢
StreamVideoSwiftUI 2.4 MB 2.4 MB 0 KB 🟢
StreamVideoUIKit 2.52 MB 2.52 MB 0 KB 🟢
StreamWebRTC 11.01 MB 11.02 MB +17 KB 🟢

@Stream-SDK-Bot
Copy link
Collaborator

StreamVideo XCSize

Object Diff (bytes)
Errors.o +48183
SignalServerEvent.o -46530
RTCAudioStore+State.o +36763
AudioDeviceModule.o +26852
BatteryStore.o +16827
Show 104 more objects
Object Diff (bytes)
RTCAudioStore+Action.o +15101
ApplicationLifecycleVideoMuteAdapter.o -13118
RTCAudioStore.o -12881
StreamCallAudioRecorder.o +11607
CallParticipant.o +11138
AVAudioSessionObserver.o +9503
DisposableBag.o +9209
Logger+WebRTC.o +8726
RTCAudioStore+AVAudioSessionReducer.o +8501
RTCAudioStore+StereoPlayoutEffect.o +7355
RTCAudioStore+AudioDeviceModuleMiddleware.o +7348
WebRTCStatsCollecting.o -6658
RTCAudioStore+AVAudioSessionEffect.o +5924
StreamCallAudioRecorder+AVAudioRecorderMiddleware.o +5695
CallAudioSession.o +5399
RTCAudioSessionPublisher.o +5319
RTCAudioStore+InterruptionEffect.o -5207
RTCAudioSessionReducer.o -4269
StereoEnableVisitor.o +4254
CallKitService.o +3927
RTCAudioStore+InterruptionsEffect.o +3808
RTCAudioStore+Coordinator.o +3439
RTCAudioStore+DefaultReducer.o +3298
RTCAudioStore+RestartAudioSession.o -3257
WebRTCCoordinator+Joining.o +3212
Call.o +2914
AudioEngineLevelNodeAdapter.o +2805
WebRTCLogger.o -2598
RTCAudioStore+AVAudioSessionConfigurationValidator.o +2478
Logger.o -2339
StoreEffect.o +1970
RTCAudioStore+WebRTCAudioSessionReducer.o +1929
PeerConnectionFactory.o +1764
RTCAudioStore+CallKitReducer.o +1702
RTCAudioDeviceModuleControlling.o +1617
Models.o +1512
RTCPeerConnectionCoordinator.o +1401
CallKitPushNotificationAdapter.o +1316
UpdateCallResponse.o +1295
RTCAudioStore+Namespace.o +1233
NoiseCancellationSettingsRequest.o +1168
CallKitAudioSessionReducer.o -1159
CallTimeline.o +1144
Encodable+Retroactive.o +1108
RTCAudioStoreAction+AudioSession.o -1078
CallController.o +989
MicrophoneManager.o +947
RTCAudioStoreAction.o -782
WebRTCStateAdapter.o +775
RTCAudioStoreAction+CallKit.o -660
Protobuf+SelectiveEncodable.o -596
StoreCoordinator.o +582
AudioSessionConfiguration.o +509
RTCAudioStore+RouteChangeEffect.o -498
Logger+ThrowingExecution.o +496
AVAudioSessionRouteDescription+Convenience.o -460
StreamDeviceOrientationAdapter.o -436
StreamCallAudioRecorder+CategoryMiddleware.o -416
PermissionsStore.o +392
MediaAdapter.o -392
LivestreamAudioSessionPolicy.o +380
StreamCallAudioRecorder+InterruptionMiddleware.o -372
CallSettings.o +371
DefaultRTCMediaConstraints.o +369
Call+Stage.o +366
ICEConnectionStateAdapter.o -336
CallStatsReportSummaryResponse.o -332
RingSettingsRequest.o -320
ConnectionState.o -312
LayoutSettings.o +296
Store.o +288
RTCAudioStoreAction+Generic.o -263
CallModerationBlurEvent.o -242
StoreLogger.o +223
BatteryStore+ObservationMiddleware.o -220
StopHLSBroadcastingResponse.o -216
WebRTCPermissionsAdapter.o -185
BatteryStore+State.o -182
StreamCallAudioRecorder+ShouldRecordMiddleware.o -176
ReflectiveStringConvertible.o -170
UserEventPayload.o +168
StoreTask.o +166
LocalAudioMediaAdapter.o +159
CallParticipant+Convenience.o +144
RTCAudioStoreMiddleware.o -138
RTCAudioStoreReducer.o -134
Reducer.o +131
CameraInterruptionsHandler.o -116
AudioProcessingStore.o +106
WebRTCCoordinator.o +92
Foundation.tbd +88
AVFAudio.tbd +88
CallReactionEvent.o +76
WebRTCCoordinator+CleanUp.o +74
IncomingVideoQualitySettings.o -72
PermissionStore+DefaultReducer.o +68
BroadcastBufferReader.o -52
StreamCallAudioRecorder+Namespace.o +49
RawJSON.o -48
Middleware.o -46
StreamRTCPeerConnection.o +44
PublisherAggregateStats.o +44
CallKitMissingPermissionPolicy+EndCall.o -44
HTTPClient.o -42

@Stream-SDK-Bot
Copy link
Collaborator

StreamVideoSwiftUI XCSize

Object Diff (bytes)
CallControlsView.o -520
ModerationWarningViewModifier.o -332
CallContainer.o +272
CallViewModel.o -175
ToastView.o +60

@sonarqubecloud
Copy link

@ipavlidakis ipavlidakis merged commit 7eacbdb into enhancement/hifi/feature-implementation Nov 28, 2025
10 of 11 checks passed
@ipavlidakis ipavlidakis deleted the enhancement/hifi/stereo-playout-3 branch November 28, 2025 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants